본문 바로가기

반응형

생각하는자바

(4)
Thinking in JAVA 7. 클래스 재사용하기 컴포지션(composition) : 새 클래스에 기존 클래스의 객체를 생성 이를(composition)이라 하며, 형식이나 개념이 아닌 코드의 기능을 재사용하는 것이다. lazy 초기화 : 그 객체를 실제로 사용하기 바로 직전에 초기화 한다. 이를 늦은 초기화라고 하며, 객체 생성에 시간이 많이 소요되거나, 객체가 매번 생성될 필요가 없는 경우에 부담을 줄일 수 있다. 상속(inheritance) : 새 클래스를 기존 클래스의 한 타입으로 만든다. 즉, 기존 클래스의 형태를 가져온 후 그것을 수정하지 않고 그 곳에 코드를 추가 한다. 자바의 root 클래스인 Object를 암암리 상속 받음 extends시 상속받는 클래스의 베이스 클래스의 모든 필드와, 메소드를 자동으로 갖는다. 생성자오버로드, supe..
Thinking in JAVA 5. 초기화와 클린업 객체를 생성할 때 초기화를 위하여, 생성자 라 부르는 특별한 메소드를 제공하여 모든 객체의 초기활르 보장할 수 있다. 인자가 없는 생성자를 디폴트 생성자라 한다. 아무런 생성자를 정의 하지 않으면 컴파일러는 자동으로 디폴트 생성자를 만들어준다. 메소드 오버로딩 인자의 순서만 달라져도 두 메소드의 식별이 가능하다. 하지만 그렇게 하면 유지보수가 어려워지기 때문에 보통은 하지않는다. this 키워드 메소드 호출과 필드 앞에 지나치게 this,를 붙이는 경우가 있다. 그렇게 하는 것이 더 확실하고 명시적이라는 이유에서다. 그러나 그렇게 하지 말자, 우리가 높은 수준의 언어를 사용하는 이유가 있다. 그런 것을 언어에서 해 주기 때문이다. 만일 필요하지도 않는데 this를 붙인다면, 우리 코드를 읽는 모든 사람들..
Thinking in JAVA 4. 프로그램 실행 제어 if-else 문 반복문 while, do-while(적어도 한번은 실행됨) , for(초기화 수식; Boolean - 조건식 ; 증가식) foreach 문 자바se5 버전 이상 return 메소드의 실행을 끝내고 값을 반환할 때, 메소드 실행을 중단 하고 그 시점의 값을 반환 할때 break 나머지 명령문을 실행하지 않고 루프를 종료 continue 나머지 명령문을 실행하지 않고 루프로 다시 가서 반복 수행 goto switch
Thinking in JAVA 2. 모든 것이 객체다. 객체는 참조(reference)하는 식별자(identifier)로 조작한다. 객체는 생성한 후 사용한다. 참조(변수)를 지정하면서 새로운 객체에 연결하려고 할때는 new 키워드를 사용한다. 데이터 저장소 레지스터 : 프로세스(CPU)에 있으며 가장 처리속도가 빠르다. 개수가 한정적이며, 컴파일러가 필요할때 할당된다. 스택 : 램 메모리 영역에 있으며, 스택 포인터를 이용하여 프로세스가 직접 관리한다. 레지스터 다음으로 처리 속도가 빠르고 효율적인 장소이다. 컴파일러는 스택에 저장할 데이터의 크기와 생명주기를 알아야 한다. 그러기때문에 유연성에 제한이 있다. 힙 : 램 메모리 영역에 있으며, 자바의 모든 객체는 여기에 위치한다. 컴파일러는 스택과 달리 이영역이 얼마동안 사용하는지 알 필요가 없다. 이 때문..

반응형