프로그래밍 언어(23)
-
소켓 생성해서 보내고 받기
소켓이란? - 소켓에는 두 가지가 있다. - 서버 소켓과 클라이언트 소켓이 존재한다. (1) 서버 소켓 - 서버 소켓은 종업원과 같은 역할을 한다. - 요청을 처리한다. - 서버 소켓은 고객 측에서 서버 소켓에 요청을 보내면 통신할 수 있는 수단을 만들어주는 역할을 한다. - 클라이언트 측에서 요청을 하면 종업원이 통신수단을 만들어준다. - 서버 소켓은 소켓을 만들어주는 역할만 한다. - 서버 소켓을 가지고 통신을 하는 것이 아니다. import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class Ser..
2023.01.27 -
쓰레드(Thread)
쓰레드란? - 쓰레드는 일종의 일꾼을 뜻한다. - 쓰레드가 할 일은 메소드를 실행하는 것이다. !!여기서 잠깐!! 그렇다면 메인 쓰레드가 하는 일은? - 메인 메소드를 실행하는 것이다. 쓰레드를 생성해서 쓰레드에게 일거리를 줄 때 run()이라는 메소드를 실행하게끔 지정해준다. 하지만, 메소드를 만들 때 변수 하나에 메소드를 담아서 그 메소드를 전달해 줄 수 없다. 결국, 객체 하나를 생성해서 그 객체에 메소드 하나를 만들면 그 객체에 메소드가 하나 있는 것처럼 실행해줄 수 있다. runnable이라는 인터페이스로 객체를 만들어야 한다. runnable 인터페이스는 추상 메소드가 딱 한 개 run()인 인터페이스다. //Runnable 인터페이스를 구현한다 public class JonnyRunnable..
2023.01.27 -
String vs StringBuffer vs StringBuilder
공통점과 차이점 (1) 공통점 - 문자열을 만들 때 사용한다. (2) 차이점 1. String - 매번 객체를 생성하면서 문자열을 만들어야 한다. - 예를 들어, abc문자열에 zzz를 추가했을 때, 'abczzz'라는 객체가 하나 더 생성된다. 2. StringBuffer & StringBuilder - 객체를 한번만 생성한다. - 수정과 삭제가 빈번할 때는 StringBuffer나 StringBuilder를 사용한다. 3. StringBuffer와 StringBuilder의 차이 (1) StringBuffer는 쓰레드가 세이프하다. - 즉, 쓰레드는 실제로 프로그램을 실행해주는 일꾼이다. - 일꾼이 여러명일 경우, 같은 자원에 접근하는 경우가 생긴다. - 한 일꾼은 값을 출력하고 다른 일꾼은 x를 1..
2023.01.26 -
Wrapper 클래스
Wrapper 클래스란? - int, double 등은 기본형 데이터타입이다. - 기본 자료형을 Object 타입에 넣고 싶을 때 사용한다. - int는 Integer로 boolean은 Boolean으로 바꿔 사용하면 Object 타입에 넣어 사용할 수 있다. public class Main { public static void main(String[] args) { m01(100); //이렇게 해도 JVM이 알아서 자동으로 int를 Integer형으로 바꿔준다.그래서 에러가 나지 않는다. //이렇게 int를 Integer로 바꾸는 것을 '박싱'이라 한다. int temp = new Integer(100);//자동으로 JVM이 알아서 Integer형을 int로 바꿔준다. 이를 '언박싱' 이라 한다. } ..
2023.01.26 -
기본 API - 문자열 클래스
charAt(), length() ,replace() - 문자열의 한 글자만 가져오는 메소드다. public class Test { public static void main(String[] args) { String str = "abcd"; //charAt() 메소드 char x = str.charAt(0); System.out.println(x); //concat() 메소드 String result = str.concat("efg"); System.out.println(result);//abcdefg //length() 메소드 int x = str.length(); System.out.println(x);//4 //replace() 메소드 String answer = str.replace('a', '..
2023.01.26 -
FileOutputStream / PrintWriter
FileOutputStream이란? - 파일의 글자나 문자나 숫자를 보내주는 통로다. import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintWriter; public class Main { public static void main(String[] args) throws FileNotFoundException { //파일 객체 하나 만들기 File f = new File("abc.txt"); //통로 생성 FileOutputStream fos = new FileOutputStream(f); //통로 넓게 넓히기(보조스트림) PrintWriter pw = new..
2023.01.26