JAVA

[자바의 신2] 정리해봅시다 [2장~ 11장]

경딩 2024. 11. 7. 12:26

2장. 가장 많이 쓰는 패키지는 자바랭

  1. 같은 패키지에 있는 클래스를 제외하고, 별도로 import 하지 않아도 되는 패키지는 무엇인가요?
    1. java.lang 패키지는 별도로 import 하지 않아도 됩니다.
  2. 자바의 메모리가 부족해서 발생하는 에러는 무엇인가요?
    1. 자바의 메모리가 부족하여 발생하는 에러는 OutOfMemoryError입니다.
  3. 메서드 호출관계가 너무 많아서 발생하는 에러는 무엇인가요?
    1. StackOverflowError
    2. 자기 자신의 메서드를 다시 부르는 재귀호출 메서드와 같은 것을 잘못 구현했을 때 발생합니다.
  4. java.lang 패키지에 선언되어 있는 3개의 어노테이션에는 어떤 것들이 있고, 각각의 역할은?
    1. Deprecated : 컴파일러에게 더 이상 사용하지 않는 메서드임을 알립니다.
    2. Override : 해당 메서드가 Override 되었다는 것을 명시해 줍니다.
    3. SuppressWaring : 컴파일러에게 경고를 무시하라고 알립니다.
  5. Double과 Integer 같은 숫자 타입에서 처리할 수 있는 최대, 최솟값을 알 수 있는 상수의 이름은?
    1. 기본 자료형을 참조자료형으로 만든 클래스들의 MIN_VALUE(최솟값)와 MAX_VALUE(최댓값)를 사용하면, 각 타입의 최대, 최솟값을 확인할 수 있습니다.
  6. Integer값을 2진법으로 표현하려면 어떤 메서드를 사용해야 하나요?
    1. Integer 클래스에서 toBinaryString() 메서드를 호출하면 매개변수의 값을 이진법으로 나타냅니다.
  7. Integer값을 16진법으로 표현하려면 어떤 메서드를 사용해야 하나요?
    1. Integer 클래스에서 toHexString() 메서드를 호출하면 매개변수의 값을 16진법으로 나타냅니다.
  8. 속성(Properties)과 환경(Environment) 값의 차이는 무엇인가요?
    1. Properties는 JVM에서 사용하는 속성 값을 제공하며, Enviromemt는 시스템(장비)에서 사용하는 환경값을 제공합니다.
  9. System.out과 System.err 에서 사용할 수 있는 메서드들은 어떤 클래스의 API를 봐야 하나요?
    1. System.out과 System.err 는 모두 java.io.PrintStream 클래스를 의미합니다.
  10. System 클래스에서 현재 시간을 조회하는 용도로 사용하는 메서드 이름은 무엇인가요?
    1. System.currentTimeMillis() 메서드를 호출하면 현재 시간을 밀리초(1/1000) 단위로 제공합니다.
    2. 시간은 1970년 1월 1일 00:00부터 현재까지의 시간이다.
  11. System 클래스에서 시간 측정 용도로 사용하는 메서드 이름은 무엇인가요?
    1. System.nanoTime() 메서드는 나노초 단위로 결과를 제공하며, 이 메서드에서 제공하는 시간은 오직 소요 시간을 측정하기 위해서 사용됩니다,
  12. System.out.print() 메서드와 System.out.println() 메서드의 차이는 무엇인가요? 줄 바꿈 지원 유무
  13. System.out.println() 메서드에 객체가 매개변수로 넘어왔을 때 String의 어떤 메서드가 호출되어 결과를 출력하나요? 그리고, 그 메서드를 사용하는 이유는 무엇인가요?
    1. System.out.pritnln() 메서드에서 출력을 할 때에는 String 클래스에 선언된 valueOf()가 수행된다. toString 이 수행되는 것이 아닙니다.
  14. 숫자 계산을 위해서 필요한 메서드들을 모아 놓은 클래스는 무엇인가요?
    1. 숫자 계산을 위해서 Math라는 클래스가 존재합니다.
  15. 위의 문제의 답인 클래스에 있는 메서드는 객체를 생성해서 사용해야 하나요?
    1. Math 클래스에 있는 상수와 메소드 모두 static으로 선언되어 있기 때문에 별도의 객체를 선언할 필요가 없습니다,
  16. 숫자의 절댓값을 구하는 메서드는 무엇인가요?
    1. 숫자의 절댓값은 Math 클래스의 abs() 메서드를 사용하면 됩니다.
  17. 숫자의 반올림을 하는 메서드는 무엇인가요?
    1. 반올림을 하는 Math 클래스의 메서드는 round()와 rint()이다.
  18. 각도를 라디안으로 변환하는 메서드와 라디안을 각도로 변환하는 메서드는 각각 무엇인가요?
    1. Math클래스에서 Radian으로 변환하는 메서드는 toRadians() 메서드이며, Degree로 변환하는 메서드는 toDegrees() 메서드입니다,
  19. 5의 4 제곱 값을 구하려고 하면 어떤 메서드를 사용해야 하나요?
    1. Math 클래스의 pow() 메서드는 제곱값을 구하는 데 사용한다. 5의 4 제곱은 Math.pow(5,4)과 같이 사용하면 됩니다.

3장. 실수를 방지하기 위한 제네릭이라는 것도 있어요

  1. 제네릭이 자바에 추가된 이유는 무엇인가요
    1. 타입 형 변환에서 발생할 수 있는 문제점을 사전에 없애기 위해서 만들어졌다.
  2. 제네릭 타입의 이름은 T나 E처럼 하나의 캐릭터로만 선언되어야 하나요?
    1. 제네락의 선언 시 타입 이름은 예약어만 아니면 어떤 단어도 사용할 수 있다. 단 일반적으로 대문자로 시작한다.
  3. 메서드에서 제네릭 타입을 명시적으로 지정하기 애매할 경우에는 < > 안에 어떤 기호를 넣어 주어야 하나요?
    1.  ? 를 제네릭 선언 꺽쇠 사이에 넣으면 Wildcard로 어떤 타입도 올 수 있다.
  4. 메서드에서 제네릭 타입을 명시적으로 지정하기에는 애매하지만, 어떤 클래스의 상속을 받은 특정 타입만 가능하다는 것은 나타내려면 < > 안에 어떤 기호를 넣어 주어야 하나요?
    1. 특정 타입으로 제네릭을 제한하고 싶은 때는 "? extends 타입"을 제네릭 선언 안에 않으면 된다,
  5. 제네릭 선언 시 wildcard라는 것을 선언했을 때 어떤 제약사항이 있나요?
    1. Whildcard 타입을 Object 타입으로만 사용해야 한다.
  6. 메서드를 제네릭하게 선언하려면 리턴타입 앞에 어떤 것을 추가해 주면 되나요?
    1.  꺽쇠 안에 원하는 제네릭 타입을 명시함으로써 제네릭 한 메서드를 선언할 수 있다.

 


4장. 자바랭 다음으로 많이 쓰는 애들은 컬렉션 - Part1(List)

  1. Collection 인터페이스를 구현하는 대표적인 3개의 자료구조에는 어떤 것들이 있나요?
    1. Collection 인터페이스르 구현하는 대표적인 타입은 List , Set, Queue이다.
  2. 배열과 같이 순서가 있는 목록형을 나타내는 대표 인터페이스는 무엇인가요?
    1. 배열과 같은 형태는 List 인터페이스에 선언되어 있다.
  3. ArrayList라는 클래스의 생성자 중 매개변수가 없는 기본 생성자를 사용하면 기본적으로 몇 개의 저장공간을 가지나요?
    1.  별도로 정하지 않을 경우 자바에서 제공하는 List를 구현한 클래스의 데이터 개수는 10개다.
  4. 만약 ArrayList 클래스의 저장 공간 개수를 처음부터 지정하려면 어떤 생성자를 사용하면 되나요?
    1. new ArrayList(int initialCapacity)를 사용하면 초기 데이터 개수를 생성과 동시에 지정할 수 있다.
  5. ArrayList 객체를 생성할 때 제네릭을 사용하는 이유는 무엇인가요?
    1. 제네릭을 사용하면 컴파일 시점에 타임을 잘못 지정한 부분을 걸러낼 수 있기 때문이다.
  6. ArrayList에 데이터를 담는 메서드 두 가지의 이름은 무엇인가요?
    1.  add(), addAll() 메서드를 사용하면 ArrayList에 데이터를 담을 수 있다.
  7. Collection 인터페이스를 구현한 클래스의 객체에서 사용할 수 있는 for 루프의 구조는 어떻게 되나요? 코드를 작성하세요.
    1. 만약 String 타입을 담는 list라는 ArrayList 가 만들었다면 for(String data:list){}와 같이 사용하면 된다.
  8. Collection 인터페이스를 구현한 클래스의 객체에 저장된 데이터의 개수를 확인하는 메서드 이름은 무엇인가요?
    1. size() 메서드를 사용하면 Collection을 구현한 클래스들에 들어있는 데이터 개수를 확인할 수 있다.
  9. ArrayList에서 특정 위치에 있는 데이터를 확인하는 메서드는 무엇인가요?
    1. get() 메서드를 사용하면 매개변수로 넘긴 index 번호에 있는 값을 리턴한다.
  10. ArrayList에서 특정 위치에 있는 데이터를 삭제하는 메서드는 무엇인가요?
    1. remove()  메서드를 사용하면 매개변수로 넘긴 index 번호에 있는 값을 삭제한다.
    2. 만약 매개변수로 객체를 넘기면, 동일한 첫 번째 객체를 찾아 삭제한다.
  11. ArrayList에서 특정 위치에 있는 데이터를 수정하는 메서드는 무엇인가요?
    1. set() 메서드를 사용하면 첫 번째 매개변수로 넘긴 위치에 있는 값은 두 번째 매개변수로 넘긴 값으로 대체한다.
  12. java.util 패키지에 있는 Stack이라는 클래스는 어떤 클래스를 확장한 것인가요?
    1. Stack 클래스는 List 인터페이스를 구현하였다.
  13. Stack 클래스에서 데이터를 담는 메서드는 무엇인가요?
    1. Stack 클래스에 데이터를 담을 때에는 push() 메서드를 사용한다.
  14. Stack 클래스에서 가장 위에 있는 데이터를 확인만 하는 메서드는 무엇인가요?
    1. Stack 클래스의 peek() 메서드는 가장 위에 있는 값을 리턴만 한다.
  15. Stack 클래스에서 가장 위에 있는 데이터를 삭제하고 리턴하는 메서드는 무엇인가요?
    1. Stack 클래스의 pop() 메서드는 가장 위에 있는 데이터를 지우고 리턴한다.

6장. 자바랭 다음으로 많이 쓰는 애들은 컬렉션 - Part3(Map)

  1. Map 형태의 자료구조는 무엇과 무엇으로 구성되어 있나요?
    1. Map은 키(Key)와 값(Value)으로 구성된다.
  2. Map에서 데이터를 저장하는 메서드는 무엇인가요
    1. Map에서 데이터를 저장하는 메서드는 put()이다. 이 메서드의 첫 매개변수는 키이고, 두 번째 매개변수는 값이다.
  3. Map에서 특정 키에 할당된 값을 가져오는 메서드는 무엇인가요?
    1. 특정 키에 할당된 값을 가져오는 메서드는 get()이다. 이 메서드의 매개변수로 찾고자 하는 키를 지정해 주면 된다.
  4. Map에서 특정 키와 관련된 키와 데이터를 지우는 메서드는 무엇인가요?
    1. 데이터를 지우는 메서드는 remove()이며, 매개변수에는 지우고자 하는 키를 지정해 주면 된다.
  5. Map에서 키의 목록을 가져오는 메서드는 무엇인가요?
    1. keySet() 메서드를 호출하면 키의 목록을 Set  구조로 리턴한다.
  6. Map에 저장되어 있는 데이터의 크기를 가져오는 메서드는 무엇인가요?
    1. size() 메서드는 저장되어 있는 데이터의 개수를 리턴한다.
  7. HashMap과 Hashtable 중에서 키나 값에 null을 저장할 수 있는 것은 무엇인가요?
    1. Hashtable 은 null을 저장할 수 없다.
  8. HashMap과 Hashtable 중에서 여러 스레드에서 동시에 접근해도 문제가 없는 것은 무엇인가요?
    1. Hashtable 은 Thread에 안전하게 만들어져 있다.
  9. HashMap에서 특정 키가 존재하는지 확인하는 메서드는 무엇인가요?
    1. containsKey() 메서드를 사용하면 해당 키를 갖는 값이 존재하는지 확인할 수 있다.
  10. 이 장에서 살펴본 클래스 중, 키가 저장되면서 정렬되는 Map에는 어떤 것이 있나요?
    1. TreeMap을 사용하면 키를 정렬하면서 데이터를 저장한다. 순서는 숫자, 대문자, 소문자, 한글 순이다.
  11. Properties 클래스는 어떤 클래스를 확장한 것인가요?
    1. Properites 클래스는 Hashtable을 확장한 클래스이다.
  12. Properties 클래스의 객체에 있는 데이터를 파일로 저장할 때에는 어떤 메서드들을 사용하면 되나요?
    1. Properties 클래스의 store() 메서드를 사용하면 데이터를 파일로 저장한다.

7장. 스레드는 개발자라면 알아두는 것이 좋아요

  1. 스레드와 프로세스의 차이를 이야기해 보세요.
    1. 프로세스는 실행 중인 프로그램을 말하며 적어도 하나의 스레드를 갖는다. 독립적이기 때문에 다른 프로세스와 메모리 영역을 공유하지 않는다. 
    2. 스레드는 프로세스 내에 존재하여 프로세스가 할당받은 자원 내에서 실행된다. 
    3. stack 영역만 할당받고 나머지 메모리 영역은 공유되어 다른 스레드의 실행 결과를 바로 알 수 있다.
  2. 스레드 클래스를 만들기 위해서는 어떤 인터페이스를 구현하면 될까요?
    1. 스레드를 구현하기 위해서 java.lang.Runnable 인터페이스를 구현하면 된다.
  3. 위의 문제에서 이야기한 인터페이스에 선언되어 있는 유일한 메서드는 무엇인가요?
    1. Runnable 인터페이스에는 public void run() 메서드만이 선언되어 있다.
  4. 스레드 클래스를 만들기 위해서 어떤 클래스를 확장하면 되나요?
    1. 만약 별도로 확장하는 클래스가 없어 확장이 가능하다면, java.lang.Thread 클래스를 확장하여 사용해도 된다.
  5. 스레드가 시작되는 메서드의 이름은 무엇인가요?
    1. 스레드가 시작되는 메서드는 run() 메서드이다.
  6. 스레드를 시작하는 메서드의 이름은 무엇인가요?
    1. 스레드를 시작하려면 run() 메서드가 아닌 start() 메서드를 호출해야만 한다.
  7. 스레드에 선언되어 있는 sleep() 메서드의 역할은 무엇인가요?
    1. Thread의 sleep 메서드는 매개변수로 넘겨준 시간만큼 해당 스레드를 멈춘다.
  8. sleep() 메서드를 사용할 때 try-catch로 감싸 주어야 하는 이유는 무엇인가요?
    1. sleep() 메서드로 대기하고 있는 중에 interrupt 가 될 수 있으므로, IntteruptedException 이 발생할 수 있다.
    2. 따라서 try-catch로 감싸주어야 한다.
  9. 데몬(Daemon) 스레드와 일반 스레드의 차이는 무엇인가요?
    1. 데몬 스레드는 만약 프로세스가 종료되는 상황이 되었을 때 해당 스레드가 종료되지 않아도 다른 실행 중인 일반 스레드가 없다면, 해당 프로세스는 중지된다.
  10. synchronized 구문은 왜 써 주며, 어디에 사용해야 하나요?
    1. synchronized 구문은 동시에 여러 스레드에서 하나의 값에 접근하려고 할 때 데이터의 정합성을 지키기 위해 사용한다.
    2. 그러므로, 여러 스레드에서 동시에 접근할 일이 있을 경우에만 써야 한다. 그렇지 않으면 성능상 큰 문제가 발생할 수 있다.
  11. synchronized를 사용하는 두 가지 방법은 어떤 것인가요?
    1. synchronized는 메서드 자체를 synchronized로 선언하는 방법과 메서드 내에 필요한 부분만 synchronized로 선언하는 두 가지 방법이 있다.
  12. 스레드의 상태에는 어떤 것들이 있나요?
    1. 스레드의 상태는 NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED로 나뉜다.
  13. 스레드에 선언되어 있는 join() 메서드의 용도는 무엇인가요?
    1. join() 메서드는 해당 스레드가 종료될 때까지 대기한다.
  14. 스레드에 선언되어 있는 interrupt() 메서드의 용도는 무엇인가요?
    1. intterupt() 메서드는 해당 스레드를 종료시킨다.
  15. interrupt() 메서드를 호출하면 해당 스레드는 어떤 상태에 있을 때 interrupt() 메서드가 호출된 효과가 발생되나요?
    1. sleep(), join(), wait() 메서드가 호출되어 대기 중인 상태에만 interrupt() 메서드가 처리된다.
  16. Object 클래스에 선언된 wait() 메서드의 용도는 무엇인가요?
    1. wait() 메서드는 다른 스레드가 Object 객체에 대한 notify() 메서드나 notifyAll() 메서드를 호출할 때까지 현재 스레드가 대기하고 있도록 한다. 만약 매개변수로 시간을 지정하면 wait() 메서드는 동일하지만, 해당 시간까지만 대기한다.
  17. Object 클래스에 선언된 notify() 메서드의 용도는 무엇인가요?
    1. notify() 메서드는 wait() 메서드로 대기 중인 스레드가 계속해서 작업을 하도록 깨우는 작업을 한다.
  18. ThreadGroup 클래스에 선언된 enumerate() 메서드의 용도는 무엇인가요?
    1. enumerate() 메서드는 해당 스레드그룹에 포함된 스레드나 스레드 그룹의 목록을 매개변수로 넘어온 배열에 담는다.

8장. 파일에 있는 것을 읽고 쓰려면 아이오를 알아야죠

  1. I/O는 각각 무엇의 약자인가요? 
    1. I/O는 Input과 Output을 의미한다.
  2. java.io.File 클래스는 파일만 지정할 수 있나요?
    1. java.io 패키지의 File 클래스는 파일과 경로를 나타낼 수 있다
  3. OS 마다 다른 경로 구분자를 처리하기 위해서는 File 클래스의 어떤 상수를 사용해야 하나요?
    1. File 클래스에 선언되어 있는 separator 상수는 현재 JVM 이 사용 중인 OS의 경로 구분자를 의미한다.
  4. File 클래스에서 디렉터리를 만드는 mkdir()과 mkdirs() 메서드의 차이는 무엇인가요?
    1. mkdir() 메서드는 현재 존재하는 경로의 하위 폴더만 생성가능하며 mkdirs 은 지정된 경로에 존재하지 않는 모든 폴더들을 생성한다.
  5. File 클래스의 list() 메서드와 listFiles() 메서드의 차이는 무엇인가요?
    1. 두 메서드 모두 현재 디렉터리에 있는 하위 목록을 나타내는데, list()  메서드는 String [] 타입으로, listFiles() 메서드는 File [] 타입으로 리턴한다.
  6. FileFilter와 FilenameFilter의 차이는 무엇인가요?
    1. 두 필터 인터페이스는 모두 넘어온 File과 관련된 정보를 이용하여 파일을 필터링할 목적으로 사용된다.
    2. FileFilter 인터페이스는 accept(File pathName)으로 선언되어 있는 메서드가 있고, FilenameFilter 인터페이스는 accept(File dir, String name)으로 선언되어 있는 메서드가 있다는 점이 다르다.
    3. 따라서 FilenameFilter는 가장 하위에 있는 대상의 이름만 넘어오기 때문에 가장 하위에 있는 것이 파일인지 경로인지 구분할 수 없다.
  7. InputStream이라는 abstract 클래스는 어떤 작업을 하기 위해서 만들어진 것인가요?
    1. InputStream 클래스는 입력된 byte 데이터를 다루기 위해서 만들어졌다.
  8. OutputStream이라는 abstract 클래스는 어떤 작업을 하기 위해서 만들어진 것인가요?
    1. OutputStream  클래스는 byte 테이터를 출력하기 위해 만들어졌다.
  9. Reader라는 abstract 클래스는 어떤 작업을 하기 위해서 만들어진 것인가요?
    1. Reader  클래스는 입력된 char 문자열(텍스트 데이터)을 다루기 위해 만들어졌다.
  10. Writer라는 abstract 클래스는 어떤 작업을 하기 위해서 만들어진 것인가요?
    1. Writer 클래스는 char 문자열을 출력하기 위해 만들어졌다.
  11. BufferedReader나 BufferedWriter를 사용하는 이유는 무엇인가요?
    1. java.io 패키지의 Buffered 가 붙은 클래스들은 버퍼라는 공간에 저장할 효율적인 데이터를 보관해 두었다가, 버퍼가 다 차게 되면 데이터를 저장하도록 도와준다. 따라서 효율적인 저장이 가능하다.
  12. 파일을 읽고, 문자열을 처리하기 위해서 필요한 Scanner 클래스가 속해있는 패키지는 무엇인가요?
    1. Scanner 클래스는 java.util 패키지에 선언되어 있다.

9장. Serializable과 NIO 도 살펴봅시다

  1. java.io.Serializable을 import 하는 이유는 무엇인가요?
    1. java.io 패키지에 Serializable 인터페이스는 선언되어 있는 메서드가 없다.
    2. 클래스를 파일에 읽거나 쓸 수 있도록 하거나, 다른 서버로 보내거나 받을 수 있도록 하려면 반드시 이 인터페이스를 구현(implements)해야만 한다.
  2. java.io.Serializable의 serialVersionUID를 지정하는 이유는 무엇인가요?
    1. serialVersionUID라는
    2. 저장되거나 전송되는 클래스의 버전을 관리해 주기 때문에 이 값이 다르면 다른  클래스로 인식된다.
    3. 따라서 클래스가 변경되었을 경우에는 이 값을 변경해 주는 것이 좋다.
  3. 자바에서 객체를 파일로 읽거나 쓸 때 사용하는 Stream 클래스 이름은 무엇인가요?
    1. 객체를 저장할 때에는 FileOutputStream 클래스를, 읽을 때에는 FileInputStream 클래스를 사용한다.
  4. transient 예약어의 용도는 무엇인가요?
    1. transient로 선언된 변수는 Serializable 한 클래스를 저장하거나 전송할 때 대상에서 제외된다.
  5. NIO가 생긴 이유는 무엇인가요?
    1. NIO는 java.io 패키지에서 제공하는 클래스들의 속모 및 성능이 느린 것을 보완하기 위해서 만들어졌다.
  6. NIO에서 Channel의 용도는 무엇인가요?
    1. NIO의 Channel 은 데이터를 처리하기 위한 통로로 볼 수 있다.
  7. NIO에서 Buffer의 용도는 무엇인가요?
    1. NIO Buffer는 데이터를 담기 위한 객체로 볼 수 있다.
  8. NIO에서 Buffer의 상태를 확인하기 위한 메서드들에는 어떤 것들이 있나요?
    1. Buffer에서 상태를 확인하기 위한 메서드는 capacity, limit, position 이 있다.
  9. NIO에서 Buffer의 position을 변경하기 위한 메서드들에는 어떤 것들이 있나요?
    1. Buffer에서 위치를 변경하는 메서드는 flip(), mark(), reset(), rewind(), remaining(), hasRemaining(), clear()가 있다.

10장. 다른 서버로 데이터를 보내려면 어떻게 하면 되나요?

  1. TCP 통신과 UDP 통신의 차이는 무엇인가요?
    1. TCP 연결형 서비스로 3-way handshaking 과정을 통해 연결을 설정하기 때문에 높은 신뢰성을 보장하지만 비교적 속도가 느리다는 단점이 있다.
    2. UDP 은 비연결형 서비스로  3-way handshaking을
  2. 네트워크 통신 시 포트 번호를 지정하는 이유는 무엇인가요?
    1. 통신시 port 가 지정된 않는 것은 주소를 알려줄 때 아파트 이름이나 동네 이름만 알려주는 것과 같다. 
    2. Port는 이와 같이 서버 내에서 여러 가지 프로그램에서 서로 다른 데 아토룰 처리해 주기 위해 사용한다.
  3. ServerSocket 클래스의 용도는 무엇인가요?
    1. ServerSocket 클래스는 TCP로 데이터를 통신하기 위해서 사용된다.
  4. ServerSocket 클래스의 accept() 메서드의 용도는 무엇인가요?
    1. ServerSocket 클래스의 accept() 메소드는 데이터를 받아 전달해 줄 Socket 객체를 생성하기 위해서 사용된다.
    2. 만약 다른 프로그램에서 아무런 데이터가 전송되지 않았을 때에는 accept() 메서드에서 지속적으로 대기한다.
  5. Socket 클래스의 용도는 무엇인가요?
    1. Socket 클래스는 TCP로 NIO의 Buffer 클래스와 같이 받은 데이터를 처리하거나, 데이터를 전송할 때 사용한다.
  6. DatagramSocket 클래스의 용도는 무엇인가요?
    1. DatagramSocket 클래스는 UDP 데이터를 통신하기 위해서 사용된다.
  7. DatagramPacket 클래스의 용도는 무엇인가요?
    1. DatagramPacket은 UDP로 데이터를 받거나 보낼 때 사용한다.

'JAVA' 카테고리의 다른 글

[JAVA] String + 연산과 비효율성 StringBuilder의 해결 원리  (0) 2024.11.10
[JAVA] 제네릭 (Generic)  (0) 2024.11.08
[JAVA] Grabage Collection Basics  (0) 2024.11.05
[JAVA] Error 와 Exception  (0) 2024.11.01
[JAVA] staic 과 final  (1) 2024.10.29