일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Template Method Pattern
- Java8 in action
- 스트림
- Java8
- 자바의 신
- CQRS
- 자바
- Was
- 디자인 패턴
- ddd
- 클린코드
- 자바8
- Clean Code
- web
- Java in action
- Java 8 in action
- spring Batch
- spring
- head first
- Stream
- domain
- spring boot
- Java
- Design Pattern
- AWS101
- SERVLET
- 패스트캠퍼스
- jsp
- 자바8인액션
- facade pattern
- Today
- Total
주난v 개발 성장기
[자바의 신] 1 ~ 13장 본문
자바의 가장 단위는 '클래스'
'클래스'는 상태와 행동이 있어야만 한다.
* 자바 컴파일 및 실행 절차
(바이트 코드) (바이트 코드) (기계어)
소스(.java) ---------------> 컴파일러 ---------------> 디스크 ---------------> JVM ---------------> 운영체제
컴파일 : 내가 짠 코드는 컴퓨터가 이해할 수 있도록 엮어주는 작업
--> 컴파일을 마친 클래스 파일은 JVM에서 읽어들여 운영체제에서 실행한다.
* 클래스와 객체를 구분하자!
각각의 실제 사물을 만들기 위한 것을 객체(Object) 혹은 인스턴스라고 한다.
Car dogCar = new Car();
Car catCar = new Car();
--> dogCar, catCar 객체가 생성된다.
* 자바의 4가지 변수
- 지역 변수 : 중괄호내에 선언된 변수
- 매개 변수 : 메소드에 넘겨주는 변수 (메소드 호출시 생성, 메소드가 끝나면 소멸)
- 인스턴스 변수 : 메소드 밖에 and 클래스 안에 선언 and static이 안붙은 변수 (객체 생성 시 생성, 객체를 참조하는 곳이 없으면 소멸)
- 클래스 변수 : 메소드 밖에 and 클래스 안에 선언 and static이 붙은 변수 (클래스가 처음 호출 시 생성, 자바 종료시 소멸)
* 자바의 자료형
- 기본 자료형 : byte, short, int, long, char, boolean, float, double
- 참조 자료형 : String, new ~, 기본 자료형 외
* DTO, VO
- DTO : Data Transfer Object, 데이터를 다른 서버로 전달하기 위한 목적으로 사용
- VO : Value Object, 데이터를 담아두기 위한 목적으로 사용
* this
객체의 변수와 매개 변수의 이름이 동일 할 때, 인스턴스의 변수를 구분하기 위해서 사용한다.
VO에서 생성자 생성 시 매개 변수와 객체의 변수를 매핑할 때 많이 사용한다.
* 오버로딩, 오버라이딩
-
오버로딩 : 메소드 명이 같으면서 파라미터 갯수나, 순서, 리턴 타입이 다른 경우 (덮어씀)
-
오버라이딩 : 부분 상속 메소드 재정의하여 사용 (확장)
* static block
객체 생성 전 호출
* 접근 제어자
-
private : 해당 클래스 내에서만 접근
-
package-private : 같은 패키지 내에서만 접근 가능
-
protected : 같은 패키지나 상속받은 경우에만 접근 가능
-
public : 어디서나 접근 가능
* 모든 클래스의 부모는 java.lang.Object
clone(), toString(), equals(), finalize(), getClass(), hashCode() ~~
notify(), notifyAll(), wait(), wait(timeout) : 스레드 처리를 위한 메소드
hashCode() : 객체의 고유값, 객체의 메모리 주소를 16진수로 리턴
만약 2개의 객체가 동일하다면, hashCode()값은 무조건 동일해야 한다.
* 인터페이스, 추상 클래스, 클래스 비교
인터페이스 | abstract 클래스 | 클래스 | |
구현 안 된 메소드 포함 | O | O | X |
구현 된 메소드 포함 | X | O | O |
static 메소드 선언 여부 | X | O | O |
final 메소드, 클래스는 오버라이딩 불가
final 변수는 변경 불가
인스턴스 변수, 클래스 변수는 선언과 함께 값을 지정해야 한다.
'개발 성장기 > JAVA' 카테고리의 다른 글
[자바 8인 액션] 4장. 스트림 소개 (0) | 2020.07.05 |
---|---|
[자바 8인 액션] 3장. 람다 표현식 (0) | 2020.07.01 |
[자바 8 인 액션] 2장. 동작 파라미터화 코드 전달 (0) | 2020.06.17 |
[자바 8 인 액션] 1장. 자바 8을 눈여겨봐야 하는 이유 (0) | 2020.06.13 |
String, StringBuilder, StringBuffer 차이 (0) | 2019.11.14 |