Java

· Java
1. 빌더 패턴 (Builder Pattern)객체 생성 시 단계별로 생성 가능하게 도와주는 디자인 패턴객체의 생성 과정을 분리함 ⇒ 다양한 구성요소를 조합하여 객체 생성ex) 이름, 나이, 학년, 과목, 학점 등을 가지는 Person 클래스 ⇒ 이름, 나이만 갖는 객체 / 이름, 나이, 학년만 갖는 객체 등주로 매개변수가 많은 생성자, 불변객체 등을 만들때 유용함 1-1. 빌더 패턴 예제Person.java@ToStringpublic class Person { private String name; private int age; private double grade; // 빌더 사용 생성자 public Person(PersonBuilder builder) { thi..
· Java
1. 예외 종류Checked 예외컴파일 시점에 체크 ⇒ 컴파일 에러가 가장 안전한 에러임!명시적인 예외 처리 필요Unchecked 예외런타임 시점에 체크 ⇒ 다소 위험함명시적인 예외 처리 강제 x 1-1. 대표적인 예외Checked 예외IOException입출력 작업 중에 문제가 생겼을 때 발생ex) 파일을 읽거나 쓸 때 파일 시스템에 접근할 수 없거나 네트워크 연결이 끊어졌을 때FileNotFoundException특정 파일을 찾을 수 없을 때 발생ex) 파일 경로가 잘못되었거나, 파일이 존재하지 않을 때ClassNotFoundException특정 클래스를 찾을 수 없을 때 발생ex) Class.forName() 메서드를 사용하여 클래스를 동적으로 로드할 때 클래스 경로에 해당 클래스가 존재하지 않을 ..
· Java
1. 제네릭스 (Generics)결정되지 않은 타입을 타입 변수로 처리실제 사용할 때는 구체적인 타입으로 대체예시) 커피에서 컵은 커피 담는 용도 / 내가 따로 구매한 컵은 물을 담을 수도, 연필을 꽂을 수도 있음 ⇒ 제네릭 타입 사용하면 그때그때 필요한 타입을 개발자가 정해서 생성 가능!컴파일 단계에서 자료형을 체크해주는 도구 ⇒ 코드 안정성 더해줌!public class GenericClass { T ob; public GenericClass(T ob) { this.ob = ob; } public void printType() { System.out.println(ob.getClass().getName()); }}class GenericCl..
· Java
1. Java 입출력자바 ⇒ 모든 I/O가 스트림(Stream)을 통해 이루어짐스트림 : “데이터의 흐름” (데이터 입출력 시 데이터가 이동하는 통로)📌  java.io 패키지 ⇒ 다양한 입출력 스트림 클래스 제공                                  크게 바이트 기반 스트림과 문자 기반 스트림으로 나눌 수 있음바이트 기반 입출력 스트림 : 그림, 멀티미디어, 문자 등 모든 종류의 데이터들을 주고받을 수 있음 문자 기반 입출력 스트림 : 오로지 문자만 주고받을 수 있게 특화 1-1. 바이트 기반 스트림최상위 클래스InputStream, OutputStream 존재둘 다 추상 클래스 ⇒ 상속받는 하위 클래스 통해서 구현하위 클래스 : XXXInputStream, XXXOutputSt..
· Java
1. 자바 메모리 구조메서드 영역, 스택 영역, 힙 영역 3가지로 구분메서드 영역클래스 정보를 보관스택 영역실제 프로그램이 실행되는 영역메서드 실행마다 메서드가 스택 영역에 한 개씩 쌓임힙 영역new 키워드로 생성한 객체(인스턴스)가 생성되는 영역 (배열 포함) 1-1. 메서드 영역 (Method Area)프로그램 실행에 필요한 공통 데이터 관리프로그램의 모든 영역에서 공유됨 클래스 정보 : 클래스의 실행 코드, 필드, 메서드, 생성자 코드 등 모든 실행 코드 존재static 영역 : static 변수 보관런타임 상수 풀 (참고) : 공통 리터럴 묶어서 관리  1-2. 스택 영역 (Stack Area)자바 실행 ⇒ 하나의 실행 스택 (스택 영역)생성됨 스택 영역 : 스택 프레임이 쌓임스택 프레임 : 메서..
· Java
1. finalfinal 키워드가 붙으면 더 이상 변경 불가능 함!클래스, 메서드 포함 여러곳에 사용 가능 1-1. final 변수1-1-1. final 지역 변수 (매개변수)public static void main(String[] args) { // final 지역 변수 final int data1; data1 = 10; ~~data1 = 20;~~ // final 변수 값을 변경하면 컴파일 오류 발생! // final 지역 변수 final int data2 = 10; ~~data2 = 20;~~ // final 변수 값을 변경하면 컴파일 오류 발생! } // final 매개 변수static void method(final int parameter) { ~~pa..
· Java
1. static주로 멤버 변수와 메서드에 사용 1-1. static 변수특정 클래스에서 공용으로 사용할 수 있는 변수static 변수 / 정적 변수 / 클래스 변수 라고 함 1-1-1. static 변수 예시 (몇 개의 객체가 생성되었는지 count하고 싶음)잘못된 예시 (static 사용 x)public class Person { public String name; public int count; public Person(String name) { this.name = name; count ++; }}public class Main { public static void main(String[] args) { // 객체 생성 - 1 Person person1 = new Person("A"); ..
· Java
1. 추상화클래스 간 공통 속성을 찾아내서 공통 조상을 만드는 것 1-1. 추상화 예시 - 시작public class Animal { public void sound() { System.out.println("동물 울음 소리"); }}public class Dog extends Animal { @Override public void sound() { System.out.println("월월"); }}// Cat, Cow 클래스 구현 ...개, 고양이, 소 ⇒ 실존 o동물 ⇒ 추상적인 개념일 뿐, 실존 x             직접 인스턴스 생성(사용) 하지는 않음!!개, 고양이, 소 클래스에서 메서드 오버라이딩 하지 않으면 동물 클래스의 메서드가 실행됨📌 위의 예시와 같이1. Animal 인스턴스 ..
공대생안씨
'Java' 카테고리의 글 목록