1. Java 파일은 JVM에 의해 바이트코드 파일, 즉 .class 파일로 컴파일됩니다. 바이트코드 파일은 기계어 코드 파일로 컴파일됩니다. 이것은 Java 크로스 플랫폼
2입니다. 먼저 Java의 GC 재활용이 완전히 자동이라는 점을 분명히 하세요. 모든 메모리 할당 및 재활용 권한에 대한 관련 API가 없습니다. 개발자의 손에 가비지 수집을 강제할 수 있는 절대적인 방법은 없지만 다음과 같이 할 수 있습니다.
1) 더 이상 참조되지 않는 객체의 경우 참조를 다음에 할당합니다. 적시에 null입니다. obj = null;
2) 메모리가 너무 부족하면 System.gc() 메서드를 호출하여 가비지 수집기가 가비지 수집을 시작하고 GC에 실행하도록 알리도록 제안하지만 Java 언어 사양은 GC가 반드시 구현된다는 보장은 없습니다.
3、Java 기본 유형의 기본값 및 값 범위
정수형 바이트(1바이트) short(2바이트) int(4바이트) long( 8바이트)
문자형 char(2바이트)
부동 소수점형 float(4바이트) double(8바이트)
#🎜🎜 #
기본 데이터 유형은 boxing을 통해 패키징 클래스로 변환됩니다(예: int --> Integer).
래퍼 클래스를 기본 데이터 유형으로 변환하는 것은 unboxing입니다(예: Integer --> int).
래퍼 클래스는 참조 유형이고 기본 데이터 유형은 값 유형입니다.
boxing 및 unboxing 작업을 통해 값 유형과 참조 유형 사이에 브리지를 구축할 수 있습니다. 즉, 값 유형과 참조 유형을 서로 쉽게 변환할 수 있고, boxing과 unboxing을 통해 시스템을 통일적으로 검사할 수 있으며, 궁극적으로 어떤 유형의 값이라도 객체로 처리할 수 있습니다.
8, 직렬화 및 역직렬화Java는 직렬화 중에 정적 변수와 임시 수정 변수를 인스턴스화하지 않습니다. 정적 변수는 멤버 클래스를 나타내고 임시는 임시를 나타내기 때문입니다. 객체의 데이터이며 이 두 가지 유형의 데이터 멤버는 직렬화할 수 없다고 선언됩니다
9. Java에는 값 전송과 참조 전송이라는 두 가지 전송 방법이 있습니다. 기본 유형과 문자열 str = "aaa";로 생성된 유형은 모두 값으로 전달됩니다. 객체 생성 및 배열은 모두 참조로 전달되므로 함수의 형식 매개변수를 판단할 때 특별한 주의가 필요합니다.가비지 수집은 스택 영역의 메모리가 스레드와 함께 해제되기 때문에 주로 힙 영역을 재활용하는 것을 목표로 합니다. . 힙은 Young Generation, Old Generation, Permanent Generation(메소드 영역)의 세 가지 영역으로 구분됩니다.
1) Young 세대: 객체가 생성(new)되면 일반적으로 Young에 배치되고(상대적으로 큰 메모리를 차지하는 일부 객체 제외), 일정량의 Minor GC( Young Generation을 위한 메모리 재활용) ) 아직 살아있는 객체는 Old Generation으로 이동됩니다(일부 구체적인 이동 세부 사항은 생략됨).
2) 구세대 : 위에서 언급한 젊은 세대가 이동한 것과 좀 더 큰 개체입니다. Major GC(FullGC)는 Old Generation을 수집하기 위한 것입니다.
3) 영구 생성: 최종 상수, 정적 변수, 상수 풀을 저장합니다.
11. 패키지 참조Import java.util.* ;
java/util 디렉토리의 모든 클래스에 액세스할 수 있습니다. java/util 하위 디렉터리의 모든 클래스에 액세스할 수 없습니다
12 생성자는 상속될 수 없으며 생성자는 명시적으로 또는 암시적으로만 호출할 수 있습니다. (이것은 인삼이 있든 없든 마찬가지입니다)13. 파일은 텍스트 파일과 바이너리 파일로 구분됩니다. 컴퓨터는 바이너리만 이해하므로 실제로는 바이너리를 해석하는 방식이 다릅니다. 텍스트 파일은 Ascii, Unicode 등과 같은 다양한 인코딩 형식으로 표시되는 문자입니다. 창에 표시되는 텍스트 파일의 접미사 이름에는 ".txt", ".log", 다양한 프로그래밍 언어의 소스 코드 파일 등이 포함됩니다. 바이너리 파일은 텍스트 문서를 열 때 왜곡된 문자를 읽을 수 없습니다. 텍스트로 열 수 있는 파일이라면 텍스트 파일로 간주할 수 있지만 표시되는 결과는 원하는 결과가 아닙니다. ".png", ".bmp" 등과 같은 특수 응용 프로그램으로 읽으면 컴퓨터에 있는 대부분의 파일은 여전히 바이너리 파일입니다
14 try는 런타임 예외 처리에만 적합하며 try+catch는 적합합니다. 런타임 예외 + 일반 예외 처리용. 즉, catch를 사용하지 않고 try만 사용하여 일반 예외를 처리하면 컴파일이 통과되지 않습니다. 왜냐하면 컴파일러는 일반 예외가 catch되는 경우 추가 처리를 위해 catch를 사용하여 명시적으로 선언해야 한다고 엄격하게 규정하기 때문입니다. 컴파일 타임에는 런타임 예외에 대한 조항이 없으므로 catch를 생략할 수 있습니다. 컴파일러가 catch를 추가하는 것은 이해할 수 있습니다.
15. 파이프
파이프에는 다음과 같은 유형이 있습니다.
① 일반 파이프(PIPE): 일반적으로 두 가지 제한 사항이 있습니다. 즉, 한 방향으로만 전송할 수 있습니다. 즉, 아버지와 아들 간의 과정(또는 혈연으로 연결된 과정 사이)에 자주 사용됩니다.
②스트림 파이프(s_pipe): 위에서 언급한 첫 번째 제한 사항이 제거되고 양방향 전송이 구현됩니다.
③ Named Pipe(name_pipe): 위에서 언급한 두 번째 제한 사항을 제거하고 혈연 관계가 없는 서로 다른 프로세스 간의 통신을 구현합니다.
요구 사항은 서로 다른 서버 간의 통신이 전이중 형식이어야 하며 파이프라인은 양방향일 수 있지만 동시에 한 방향으로만 전송할 수 있다는 것입니다. 이중과 반이중의 차이점은 다음과 같이 이해할 수 있습니다.
추천 튜토리얼: Java 소개 동영상
원본 주소: https://blog.csdn.net/qq_33945246 /기사/세부정보/ 90040041
위 내용은 Java 인터뷰 지식 포인트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!