02 자바와 절차적/ 구조적 프로그래밍
자바 프로그램의 개발과 구동
객체지향 프로그램에서는 데이터 저장 영역을(T 메모리 구조) 다시 세개의 영역으로(static, stack , heap) 분할 해서 사용한다.
다시 보는 main() 메서드 : 메서드 스택 프레임
스태틱 영역 : 클래스들의 놀이터
스택 영역 : 메서드들의 놀이터
힙 영역 : 객체들의 놀이터
변수와 메모리: 넌 어디서 왔니?
블록 구문과 메모리: 블록 스택 프레임
지역변수와 메모리 : 스택 프레임에 갇혔어요!
지역변수는 스택영역에서 일생을 보낸다. 그것도 스택 프레임 안에서 일생을 보내게 된다.
클래스 멤버 변수는 스태틱 영역에서 일생을 보낸다. 스태틱 영역에서 한 번 자리 잡으면 jvm이 종료될때까지 고정된 (static) 상태로 그 자리를 지킨다.
메서드 호출과 메모리: 스택 프레임2
전역 변수와 메모리 : 전역변수 쓰지 말라니깐요
멀티 쓰레드/ 멀티 프로세서의 이해
멀티 쓰레드의 T 메모리 모델은 스택영역을 쓰레드 갯수만큼 분할해서 쓰는 것이다.
멀티 프로세서는 다수의 저장영역, 즉 다수의 T 메모리를 갖는 구조다
STS 또는 이클립스를 이용해 T 메모리 영역 엿보기
03 자바와 객체 지향
객체지향은 인간지향이다.
사물을 하나하나 이해하기 보다는 사물을 분류(class)해서 이해하는 것이 인간의 인지법이다.
객체지향의 4개 특성 - 캡! 상추다
캡 - 캡슐화
상 - 상속
추 - 추상화
다 - 다형성
클래스 vs 객체 = 붕어빵틀 vs 붕어 빵
추상화: 모델링
클래스 멤버 vs 객체 멤버 = static 멤버 vs 인스턴스 멤버
상속 : 재사용 + 확장
상속의 강력함
상속은 is a 관계를 만족해야 한다?
-> 하위 클래스는 하나의 상위 클래스이다.
is a kind of
다중 상속과 자바
상속과 인터페이스
인터페이스는 be alble to, 즉 " 무엇을 할 수 있는"이라는 형태로 표현하는 것이 좋다.
상속과 T 메모리
명시적 형변화 (Casting) 암묵적 형변환(Promotion)
다형성 : 편의성
오버라이딩? 오버로딩?
다형성과 T 메모리
다형성이 지원되지 않는 언어
얼마나 사용하기 편리한지..
캡슐화 정보 은닉
객체 멤버의 접근 제어자
- : private
~: default
#: protected
+:public
참조변수의 복사
04 자바가 확장한 객체지향
abstract 키워드 - 추상 메서드와 추상클래스
생성자
클래스의 인스턴스 즉 객체를 만들 때마다 new 키워드를 사용한다.
클래스 생성 시의 실행 블록, static 블록
static 블록 : 클래스가 스태틱 영역에 배치될 때 실행되는 코드블록
클래스 정보는 해당 클래스가 코드에서 맨처음 사용될 때 T 메모리의 스태틱 영역에 로딩되며, 이 때 단 한번 해당 클래스의 static 블록이 실행된다. 여기서 클래스가 제일 처음 사용될 때는 다음 세 가지 경우 중 하나이다.
- 클래스의 정적 속성을 사용할 때
- 클래스의 정적 메소드를 사용할 때
- 클래스의 인스턴스를 만들 때
05 객체 지향 설계 5원칙 - SOLID
S (Single Responsibility Principle)
O (Open Closed Principle)
L (Liskov Subsitution Principle)
I (Interface Segregation Principle)
D (Dependency Inversion Principle)
'WEB' 카테고리의 다른 글
언더스코어-정리 (0) | 2017.12.29 |
---|---|
자바스크립트+제이쿼리 (0) | 2016.05.21 |
크롬에서 request, response header 확인하기. (0) | 2016.04.14 |