액세스 제어의 장점(P5): 라이브러리 코드가 사용되는 프로그래머의 수정을 방지하고 라이브러리 작성자의 수정을 편리하게 한다
코드 복용은 대상 프로그램 설계 언어가 제공하는 가장 큰 장점 중 하나로 일반적으로 풍부한 경험과 날카로운 통찰력이 있어야만 복용 가능한 대상을 설계할 수 있다
다용도 조합으로 간단하고 유연하다.상속은 중요하지만 남용해서는 안 되고 적당한 곳에 써야 한다
단일 계승 구조: 모든 대상에 하나의 기본 Object가 있는데 이런 장점은 모든 대상이 기본 유형의 정보를 가지고 있기 때문에 대상의 유형을 확정할 수 없어 교착 상태에 빠지지 않는다는 것이다.이것은 시스템 수준의 조작(예를 들어 이상 처리)에 특히 중요하다
ArrayList와LinkedList의 차이(P12);패라메트릭 유형, 아래로 전환, eg: ArrayList
제2장: 모든 것이 대상이다
모든 것이 대상이지만 조작의 표지부호는 사실상 대상의'인용'이다.예를 들어 원격 조종(인용)과 텔레비전(대상).예를 들어 String s,이 때 s는 인용일 뿐입니다. 대상을 가리키지 않았기 때문에 s의 내용을 가져오면 오류가 발생할 수 있습니다. 일반적인 조언: 인용을 만드는 동시에 초기화
java의 저장(P22): 창고 - 기본 유형 데이터 저장;더미 - 모든 자바 대상을 저장하는 데 사용하기;상수 저장소 - 상수 값을 저장합니다.비램 메모리 - 저장 흐름 대상과 지구화 대상, 그 중에서 흐름 대상은 바이트 흐름으로 주로 다른 기계에 보내는 데 사용된다.지구화 대상은 디스크에 저장하는 것이다. 예를 들어 JDBC
작용역: 큰 괄호가 나오면 인용이 없어지지만 대상은 메모리에 있고 나중에 GC에서 회수될 것이다. 예를 들어 {String a = "a";String a = “b”;//여기에서 a 인용을 정의할 수 있습니다. 위의 a 인용이 작용역을 초과하여 존재하지 않기 때문입니다.
기본값: 클래스의 구성원 변수라면 기본 형식에 기본값이 있습니다.예를 들어 int=0,float=0.0,double=0.0;그러나 특정한 종류의 필드가 아니면 초기화할 수 없다. 예를 들어 어떤 방법 내부에서는 무작위 수가 되지만 직접 출력하면 이 변수가 초기화되지 않았다는 것을 알 수 있다.
제3장: 조작부호
java에는sizeof가 없다. C와C++의sizeof는 주로 이식을 위한 것이다. 어떤 기계는 32비트가 있고 다른 기계에는 16비트가 될 수 있지만 java에는 이런 상황이 존재하지 않는다. 데이터 유형은 모든 기계에서 크기가 같기 때문이다
제5장: 초기화와 정리
쓰레기 수거에 관해서는 자바 가상기가 메모리가 다 소모되는 상황에 직면하지 않았다면 쓰레기 수거를 실행하여 메모리를 회복하는 데 시간을 낭비하지 않을 것이다.쓰레기 회수 자체도 비용이 필요하기 때문이다
finalize() 방법:
이 방법은 쓸모없는 대상을 제거하는 데 쓰이지만 c++의 분석 함수와 달리 쓰레기 회수에 따라 호출되고 쓰레기 회수가 반드시 호출되는 것은 아니기 때문이다.
그리고 이 방법은 자주 사용되지 않고 자주 사용되지 않으며 단지 한 가지 경우에만 사용된다. 바로'로컬 방법'을 사용하는 경우이다.로컬 방법은 자바에서 비자바 코드를 호출하는 방식
매거:enum은 사실 클래스class와 유사한 구조이지만 주의해야 할 점이 있다. -1, 단독java 파일에서 enum을 정의해야 한다.2,enum은 switch에 사용 가능
제10장: 내부류
private와protected로 수식할 수 있으며 일반적인 클래스는public와 기본값friendly 패키지 접근 권한만 사용할 수 있습니다.
의 주요 역할은 다중 계승을 실현하기 위한 것이다.하나의 클래스는 하나의 추상류나 다른 클래스만 계승할 수 있기 때문에 인터페이스를 통해 여러 개의 하위 클래스를 실현할 수 있지만 모든 방법을 실현해야 하기 때문에 비교적 번거롭다. 이때 내부 클래스의 장점이 나타난다.예를 들어 하나의 클래스에 2개의 내부 클래스가 있는데 각각 계승 클래스 1과 클래스 2가 있다. 그러면 이 클래스는 다중 계승
을 실현했다.
인터페이스를 수정하여 같은 클래스에서 두 가지 동명 방법의 호출을 피한다. 예를 들어 하나의 클래스가 하나의 클래스를 계승하고 또 하나의 인터페이스를 실현했다. 이때 부류와 인터페이스 클래스가 이름이 무거운 방법이 있으면 오류가 발생하지만 내부 클래스가 생기면 내부 클래스를 통해 그 인터페이스를 실현할 수 있다
는 리셋에 많이 사용된다.new B(){public void test(){…} }
제11장: 소지 대상
ArrayList와 linkedList의 차이점:
무작위 접근(예를 들어 get과 set)에서ArrayList는LinkedList보다 낫다. 왜냐하면 후자는 바늘을 이동해야 하기 때문이다
교체기 Iterator: 용기를 훑어보는 데 사용되며foreach와 유사하지만 Iterator는 다음과 같은 두 가지 장점이 있다. - 훑어보는 동시에 용기 안의 대상인iterator와 유사한 인터페이스를 수정할 수 있고 용기의 밑바닥 정보에 관심이 없으며hashNext()와next()를 통해 용기를 훑어볼 수 있다.예를 들어 아래의 코드: 대상 용기를 받아들여 전달하고 모든 대상에서 조작을 한다. 이런 사상은 매우 강하고 자바의 전체 과정을 관통한다