good_da22 's devLog

Java 17

컬렉션 프레임워크(Collection Framework)

Collection Framework 자료구조 (data structure) 컴퓨터 과학에서 효율적인 접근 및 수정을 가능하게 하는 자료의 조직, 관리, 저장을 의미 데이터 값의 모임, 데이터 간의 관계, 데이터에 적용 가능한 함수나 명령을 의미 배열 homogeneous collection : 동일한 데이터 타입만 관리 타입이 다른 객체를 관리하기 위해서는 매번 다른 배열이 필요 컬렉션 데이터 군(Collection)을 저장하는 클래스들을 표준화한 설계(Framework) 다형성 (Polymorphism) Object을 이용하면 모든 객체 참조 가능 -> Collection Framework 담을 때는 편리, 빼낼 때는 Object로만 가져올 수 있다. 런타임에 실제 객체 타입을 확인 후 사용해야하는 ..

Java 2022.07.28

예외(Exception) 2

Exception handling try - catch - finally finally 블록은 예외 발생 여부와 상관 없이 실행되어야 하는 코드를 포함 try - catch 블록에 선택적으로 추가하여 사용 중간에 return을 만나는 경우에도 finally 블록을 수행 후 리턴 try { // exception이 발생할 만한 코드 - System 자원 사용 } catch (Exception e) { // 예외 발생 시 처리 코드 } finally { // try block에서 접근했던 System자원의 안전한 원상 복구 // try 블록 또는 catch 블록에 return이 존재해도 finally 블록 수행 후 종료 } finally 블록을 통해 예외 발생 여부와 상관 없이 자원 정리 가능 try 블록에..

Java 2022.07.28

예외(Exception) 1

Exception handling 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우 프로그램 에러 또는 오류 컴파일 에러 컴파일 시 발생하는 에러 런타임 에러 실행 시 발생하는 에러 논리적 에러 실행은 되나, 의도와 다르게 동작 실행 시(runtime) 발생하는 프로그램 오류를 심각도에 따라 두 가지로 구분 에러(error) 프로그램 코드에 의해 수습될 수 없는 심각한 오류 메모리 부족, stack overflow 와 같이 발생하면 복구할 수 없다 디버깅 필요 예외(exception) 프로그램 코드에 의해서 수습될 수 있는 미약한 오류 발생하더라도 수습 가능 예외 처리(exception handling) 예외 발생 시 프로그램의 비 정상 종료를 막고 정상적인..

Java 2022.07.26

제네릭(Generics)

Generics 다양한 타입의 객체를 다루는 메서드, 컬렉션 클래스에서 컴파일 시에 타입 체크 Compile - 컴파일시 타입체크가 안전하다. Runtime - 동작 중에 오류 발생 가능 ex) instanceof미리 사용할 타입을 명시해 형 변환을 하지 않아도 된다. 객체 타입에 대한 안전성 향상 및 형 변환의 번거로움 감소 표현 클래스 또는 인터페이스 선언 시 에 타입 파라미터 표시 public class 클래스 이름 {} public interface 인터페이스 이름 {} 타입 파라미터 (Type Parameter) 단순히 임의의 참조형 타입 컴파일 시 타입 파라미터들은 대입된 타입으로 대체된다. T : reference Type E : Element K : Key V : Value 객체 생성 변수..

Java 2022.07.26

인터페이스(interface)

인터페이스(interface) 일종의 추상클래스 최고 수준의 추상화 단계로 모든 메서드는 추상 메서드이다. JDK 8 에서 default method 와 static method 추가 추상 클래스 사용 보단 인터페이스를 주로 사용오직 추상 메서드와 상수만을 멤버로 가질 수 있다. 밑그림만 그려진 기본 설계도 다른 클래스를 작성하는데 도움을 주기위해 작성 인터페이스 작성 interfac 인터페이스이름 { public static final 타입 멤버이름 = 값; public abstract 메서드이름(매개변수); } 모든 멤버변수는 public static final 상수, 접근제한자 생략 가능 모든 메서드는 public abstract 추상 메서드, 접근제한자 생략 가능 인터페이스 상속 인터페이스는 인터..

Java 2022.07.25

추상 클래스(abstract class)

추상 클래스(abstract class) 클래스가 설계도라면, 추상 클래스 는 미완성 설계도 멤버의 개수와 상관 없이 미완성 메서드(추상 메서드) 를 포함하고 있다. 추상 클래스는 구현이 없는 추상 메서드를 가지고 있기 때문에 객체, 인스턴스를 생성할 수 없으며 상속을 통해서 자식 클래스에서 완성될 수 있다. 하지만 상위 클래스 타입으로써 자식을 참조하는 것은 가능하다. (다형성) 새로운 클래스를 작성에 바탕이 되는 조상 클래스로서 중요한 의미를 가진다. 추상 클래스 선언 abstract class 클래스 이름 { ... } 추상 메서드가 없어도 abstract 키워드를 통해 추상 클래스 선언이 가능하다. 상속 받는 자식 클래스에서 구현을 강제한다. 생성자, 멤버변수, 일반 메서드 모두 가질 수 있다. ..

Java 2022.07.25