본문 바로가기

전체 글161

[JAVA] 심화 - Thread, JVM 0. 스레드 개요 학습 목표 스레드란 싱글 스레드 VS 멀티 스레드 스레드 생성 방법 스레드 실행 및 동기화 스레드 상태 및 제어 스레드란? 프로세스 운영체제가 할당한 메모리에 실행 중인 애플리케이션 데이터, 컴퓨터 자원, 스레드로 구성 스레드 프로세스 내 소스 코드의 실행 흐름 멀티 스레드로 동시 작업 실행 가능 메인 스레드(Main thread) 자바 애플리케이션에서 메인 메서드를 가장 먼저 실행 메인 메서드 안의 코드를 실행시키는 메인 스레드 메인 스레드만 사용하면 싱글 스레드 멀티 스레드(Multi thread) 여러 개의 스레드가 동시 작업 하나의 애플리케이션 내 여러 작업을 동시에 실행 스레드 생성과 실행 Runnable 인터페이스에서 run() 메서드를 구현하여 스레드 생성 public cl.. 2022. 9. 19.
[JAVA] 심화(Effective) 0. 열거형(Enum) 개요 학습 목표 Enum의 개념 이해 Enum의 등장 배경과 장점 Enum의 문법 요소 열거형(enum) 열거형이란? 관련 있는 상수들의 집합 상수들을 보다 간편하게 관리 Enum이 없던 이전 public static final 키워드를 사용하여 표현 ex) public static final double PI=d; 중복된 상수 이름으로 충돌 발생 가능 ex) public static final double PI=1.1; 인터페이스로 해결 가능하나 타입 안정성 문제 발생 interface Month{ int JAN=1; } interface Week { int MON=1; } //중복 상수명은 피할 수 있다 if(Month.JAN == Week.MON){ } // 관련 없는 개념을.. 2022. 9. 14.
[JAVA] 컬렉션(Collection) 0. 제네릭(Generic) 개요 인스턴스 변수에 다른 타입의 변수를 저장하려면 각기 다른 클래스를 저장 이러한 불편함을 해소하는 것이 제네릭 학습 목표 제네릭 장점 제네릭 클래스를 정의 활용 제네릭 메서드 정의 활용 제네릭(Generic)이란? class Example 클래스명 뒤에 라는 타입을 적어서 T를 활용 가 들어가면 T에 해당하는 부분을 int로 변환 Integer는 wrapper class, int는 primitive class primitive는 기본 자료형이고 wrapper는 매개변수로 객체를 필요로 할 때 사용 Character, Integer 제외하고 첫 문자만 대문자로 표현 타입을 구체적으로 지정하는 것이 아니라 일반화해두는 것 클래스와 메서드에 사용 가능 제네릭 클래스 제네릭 클래.. 2022. 9. 6.
[JAVA] 객체 지향 프로그래밍 심화 0. 상속(Inheritance) 개요 학습 목표 상위 클래스-하위 클래스의 상속 관계 이해 extends 키워드로 상속 관계 정의 포함관계 상속관계 차이 상속관계에서 메서드 오버 라이딩 super와 super() 차이 Object 클래스가 자바 클래스의 상속계층도에서 최상위 상속 상속 기존의 클래스를 재활용해 새로운 클래스 작성 상위 클래스와 하위 클래스로 나뉘어 멤버를 공유 하위 클래스 멤버 개수는 상위랑 같거나 크다 코드를 재사용하여 적은 양의 코드로 새로운 클래스 생성 하나의 객체가 여러 모양으로 표현되는 다형성이 가능 코드 예제 클래스명 extends 상위 클래스로 정의 단일 상속만 가능(인터페이스를 이용해 비슷한 효과 가능) 포함 관계 포함 관계 클래스 멤버로 다른 클래스 타입의 참조 변수를 .. 2022. 9. 6.