develop/Java (43) 썸네일형 리스트형 멀티 쓰레드 싱글 쓰레드(Thread) - 하나의 쓰레드가 작업을 순차적으로 처리하기 때문에 특정 작업이 종료된 후에 다음 작업을 수행함 - 동시에 여러 작업을 수행할 수 없다. A작업 => B작업 => C작업 순서로 진행 멀티 쓰레드(Multi Thread) 하나의 프로세스(Process) 내에서 2개 이상의 쓰레드가 2개 이상의 작업을 동시에 수행할 수 있도록 하는 것. 실제 동시에 수행되는 것은 아니고 아주 빠른 속도로 2개 이상의 작업을 번갈아가며 수행하기 때문에 사용자 입장에서는 동시에 수행되는 것 처럼 보임. 채팅 메세지를 송수신하면서 파일을 송수신하는 것 처럼 java.lang.Tread 클래스 또는 java.lang.Runnable 인터페이스를 활용 1) Thread 클래스를 상속받는 서브클래스를 정의.. Wrapper 클래스 Wrapper 클래스 - 기본 데이터타입을 객체 형태로 관리해주는 클래스 - 기본 데이터타입과 1:1로 대응되는 8개의 클래스가 제공됨, => 대부분은 기본데이터타입 이름과 같고 첫글자가 대문자인데, char타입과 int 타입만 Character과 Integer로 다름 - Wrapper 클래스에서 제공하는 상수와 메서드를 활용하여 기본 데이터타입을 더 다양하게 처리할 수 있도록 도와줌 // Wrapper 클래스의 다양한 상수 System.out.println("byte 타입 메모리 크기(bit) : " + Byte.SIZE); System.out.println("byte 타입 최소값 : " + Byte.MIN_VALUE); System.out.println("byte 타입 최대값 : " + Byte.MA.. enum 타입 enum 타입 - 한정된 상수로 구성되는 데이터 타입 - 클래스와 유사한 형태로 정의 - 별도의 값을 지정하지 않고 상수 자체를 그대로 사용 = enum 상수 [제한자] enum 타입명 { // 클래스 정의와 유사함 상수1, 상수2, ..., 상수n} enum타입명.상수명 // enum 타입을 사용하여 변수 선언 가능(= 클래스 타입과 동일) Week today; // enum 타입인 Week 타입을 선언 // => Week 타입 변수 today 는 Week 타입 내의 enum 상수만 저장 가능 today = Week.FRIDAY; System.out.println(today); // toString() 오버라이딩 되어 있음 System.out.println(today instanceof Object);.. 예외(Exception) -개발자가 의도하지 않은 상황에서 발생하는 문제 -예외 발생 시 프로그램이 비정상적으로 종료된다. -오류는 시스템적인 문제 발생으로 개발자가 해결 불가능한 영역이지만 예외는 오류와 달리 심각도가 낮고, 예외 처리를 통해 프로그램의 비정상적인 종료를 막을 수 있다. => 예외가 발생하지 않도록 예외 발생 코드를 수정하는 것은 예외 처리가 아니며, 예외가 발생한다고 가정했을 때 해당 상화에서 수행할 작업을 기술하는 것이 예외 처리 -컴파일(번역) 시점에서 예외 발생 여부를 미리 파악하고 예외 처리를 검사하는 Compile checked Exception 계열이라고 함. => 이 계열의 경우 예외가 발생할 것으로 예상되는 코드에 예외 처리가 되어 있지 않으면 컴파일러에 의해 예외 처리 요청에 해당하는 오류를 .. 중첩 클래스 책에 따르면... 객체 지향 프로그래밍에서 클래스들은 서로 긴밀한 관계를 맺고 상호작용을 합니다. 어떤 클래스는 여러 클래스와 관계를 맺지만 어떤 클래스는 특정 클래스와 관계를 맺습니다. 특정 클래스와 관계를 맺을 경우에는 클래스 내부에 선언하는 것이 좋습니다. 중첩 클래스는 클래스 내부에 선언한 클래스이며 중첩클래스를 사용하면 두 클래스 멤버들을 서로 쉽게 접근할 수 있고, 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있습니다. 인터페이스 또한 마찬가지로 클래스 내부에 선언 가능하며 중첩 인터페이스라고 불림 => 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위해서 중첩 클래스 중첩 클래스는 클래스 내부에 선언되는 위치에 따라 두 가지로 분류된다. 1 - 클래스의 멤버로.. 제네릭(Generic, 일반화) 제네릭(Generic, 일반화) -객체에서 사용할 데이터타입을 클래스 정의 시점에서 미리 명시하지 않고, 객체를 실제 사용하는 시점에서 데이터타입을 지정하는 것. = 클래스 내의 데이터타입을 객체 생성 시 변경할 수 있도록 하는 것 -클래스 또는 인터페이스명 뒤에 기호를 붙이고 해당 기호 사이에 제네릭타입으로 사용할 데이터타입을 명시 => 주의! 참조 데이터타입만 지정 가능하다! (기본 데이터타입은 Wrapper 클래스 타입으로 대체) 클래스명 변수명 = new 클래스명(); ex) List list = new ArrayList(); => List 객체의 Object 타입 파라미터가 integer 타입으로 변경됨 제네릭 타입을 지정하지 않은 ArrayList 객체 사용 List list = new Arr.. Collection Framework(컬렉션 프레임워크) 빈센조 ㄸㅐ문에 못올렸다 ;; 최근 Collection Framework 컴퓨터에서 데이터를 효율적으로 저장 및 관리하는 방법 = 자료구조 => 자료구조를 자바에서 구현하여 제공하는 클래스 및 인터페이스 모음 => 3대 인터페이스 : Set, List, Map => Set과 List 인터페이스는 공통적으로 Collection 인터페이스를 상속받았으므로 제공되는 메서드가 거의 동일함. - java.util 패키지에 위치하며, 각 인터페이스를 구현한 구현체 클래스가 제공된다. ex) Set -> HashSet, TreeSet 클래스 등 사용 구현체 클래스 자체로 사용하거나 인터페이스 타입으로 업캐스팅 가능 toString() 메서드가 오버라이딩 되어 있어 저장된 데이터 확인이 편리함. 제네릭 타입 지정이 가.. java.lang / java.util java.lang.Math 클래스 - java.lang에서 기본 제공 되는 클래스 중에 수학 관련 상수 및 메서드를 제공하는 클래스 - String 클래스와 마찬가지로 상속 불가능한 클래스(final 클래스) - 인스턴스 생성이 불가능한 클래스 - Math 클래스의 모든 멤버는 static으로 선언되어 인스턴스 생성 없이도 클래스명만으로도 접근 가능. // Math 클래스의 다양한 멤버 System.out.println("PI 값 = " + Math.PI); System.out.println("-5 의 절대값 = " + Math.abs(-5)); System.out.println("4 의 제곱근 = " + Math.sqrt(4)); System.out.println("10 vs 5 의 최대값 = " + .. 이전 1 2 3 4 ··· 6 다음