2022년 면접 상한선이라 할 수 있는 자바 정형 면접 질문 요약

머리말

요즘 자바 면접의 진수는 정형화된 에세이인데, 정형화된 에세이의 면접 질문을 외워야만 면접을 잘 볼 수 있다. 황금빛 9월, 은, 10월 모집 황금기가 도래했습니다! 대학원 입시와 취업 활동에 어려움을 겪고 있을 때 면접 문제를 먼저 읽고 싶을 수도 있습니다. 결국 우리의 궁극적인 목표는 원하는 직업을 찾는 것입니다! 좋은 일자리는 일찍 오기 때문에 학생들은 일찍 준비해야 합니다!

1. JDK, JRE, JVM의 차이점

  • JDK: Java 컴파일러, Java 런타임 환경, 일반적으로 사용되는 Java 클래스 라이브러리 등 Java 프로그램을 컴파일하고 실행하는 데 필요한 다양한 도구와 리소스를 제공하는 Java Standard Development Kit.

  • JRE: Java 바이트코드 파일을 실행하는 데 사용되는 Java 런타임 환경. JRE에는 JVM 작업에 필요한 JVM과 클래스 라이브러리가 포함되어 있으며 일반 사용자는 JRE만 설치하면 Java 프로그램을 실행할 수 있지만 프로그램 개발자는 JDK를 설치하여 프로그램을 컴파일하고 디버깅해야 합니다.

  • JVM: JRE의 일부인 Java 가상 머신은 전체 Java 크로스 플랫폼 구현의 핵심 부분이며 바이트 코드 파일 실행을 담당합니다.

2. hashCode()와 equals()의 관계

Java에서는 각 객체가 자신의 hashCode() 메서드를 호출하여 객체의 지문 정보에 해당하는 고유한 해시 값(hashCode)을 얻을 수 있습니다.일반적으로 세상에 동일한 지문은 두 개 없습니다.하지만 Java에서는 , 너무 절대적일 수는 없지만 hashCode를 사용하여 다음과 같은 초기 판단을 내릴 수 있습니다.

  • 두 개체의 hashCode가 동일하지 않은 경우 두 개체는 다른 개체여야 합니다.

  • 두 개체의 hashCode가 같다고 해서 두 개체가 반드시 같은 개체여야 하거나 두 개체일 수 있음을 의미하지는 않습니다.

  • 두 개체가 같으면 해당 hashCode가 동일해야 합니다.

3. String.StringBuffer.StringBuilder의 차이점

  • String은 immutable이므로 수정을 시도하면 새로운 string 객체가 생성되며 StringBuffer와 StringBuilder는 mutable이다.

  • StringBuffer는 스레드로부터 안전하고 StringBuilder는 스레드로부터 안전하지 않으므로 단일 스레드 환경에서 StringBuilder가 더 효율적입니다.

4. 제네릭에서 extends와 super의 차이점

  • <? extends T>는 T를 포함하는 T의 하위 클래스를 의미합니다.

  • <? super T>는 T를 포함한 모든 T의 상위 클래스를 의미합니다.

5. ==와 equals 메소드의 차이점

  • ==: 기본 데이터 타입이면 비교 대상은 값, 참조 타입이면 비교 대상은 참조 주소

  • equals: equals 메서드를 다시 작성한 후 각 클래스의 비교 논리를 살펴봅니다.예를 들어 String 클래스는 참조 형식이지만 equals 메서드는 String 클래스에서 다시 작성합니다. 메서드의 내부 비교는 문자열에서 문자열입니다. . 문자가 모두 같은지 여부.

6. 오버로딩과 리라이팅의 차이점

7. 리스트와 세트의 차이점

8. ArrayList와 LinkedList의 차이점

9. ConcurrentHashMap의 확장 메커니즘에 대해 이야기하십시오.

10. Jdk1.7에서 Jdk1.8 HashMap(하단 레이어)으로 변경된 사항은 무엇입니까?

11. HashMap의 Put 메소드에 대해 이야기하기

12. 깊은 복사와 얕은 복사

13. HashMap 확장 메커니즘의 원리

14. CopyOnWriteArrayList의 기본 원리는 무엇입니까

15. 바이트코드란 무엇이며 바이트코드를 사용하면 어떤 이점이 있습니까?

16. Java의 예외 시스템은 무엇입니까?

17. Java의 예외 처리 메커니즘에서 예외가 발생해야 하는 경우와 예외를 포착해야 하는 경우는 언제입니까?

18. Java에는 어떤 클래스 로더가 있습니까?

19. 클래스 로더 상위 위임 모델에 대해 이야기하십시오.

20. JVM의 스레드 공유 영역은 무엇입니까

21. 프로젝트에서 JVM 문제를 해결하는 방법

22. 객체가 JVM에 로드된 후 GC에 의해 지워지기까지 어떤 프로세스를 거치나요?

23. 결정하는 방법 - 개체 쓰레기입니까?

24. JVM에는 어떤 가비지 수집 알고리즘이 있습니까?

25. STW란 무엇입니까?

26. JVM 매개변수는 무엇입니까?

27. 스레드 안전에 대한 이해에 대해 이야기하기

28. 데몬 쓰레드의 이해

29. ThreadLocal의 기본 원칙

30. 동시성과 병렬성. 직렬의 차이점

31. Java 교착 상태를 피하는 방법은 무엇입니까?

32. 스레드 풀의 기본 작동 원리

33. 스레드 풀이 가장 큰 스레드를 먼저 만드는 대신 대기열을 먼저 추가하는 이유는 무엇입니까?

34. ReentrantL 0ock에서 공정한 잠금 및 불공정한 잠금의 기본 구현

35. ReentrantL.ock에서 tryLock)과 lock) 메서드의 차이점

36. CountDownLatch와 Semaphore의 차이점과 기본 원리

37. 동기화된 바이어스 잠금, 경량 잠금 및 중량 잠금

38. 동기화와 ReentrantLock의 차이점

39. AQS에 대한 이해에 대해 이야기하십시오. AQS는 재진입 잠금을 어떻게 구현합니까?

40. I0C에 대한 귀하의 이해에 대해 이야기하십시오.

41. 싱글톤 빈과 싱글톤 패턴

42. 스프링 트랜잭션 전파 메커니즘

43. Spring 트랜잭션은 언제 실패합니까?

44. Spring에서 Bean 생성의 라이프 사이클 단계는 무엇입니까

45. Spring의 Bean은 스레드로부터 안전합니까?

46. ​​ApplicationContext와 BeanFactory의 차이점은 무엇입니까

47. Spring에서 트랜잭션은 어떻게 구현됩니까?

48. Spring에서 @Transactional은 언제 실패합니까?

49. Spring 컨테이너의 시작 프로세스는 무엇입니까

50. Spring이 사용하는 디자인 패턴

51. Spring Boot에서 일반적으로 사용되는 주석과 기본 구현

52. Spring Boot는 어떻게 Tomcat을 시작합니까?

53. 마이바티스의 장단점

54. #0과 $0의 차이점은 무엇입니까?

55. 인덱싱의 기본 원칙

56. 인덱스 디자인의 원칙은 무엇입니까?

57. 트랜잭션의 기본 특성 및 격리 수준

58. MVCC란?

59. MyISAM과 InnoDB의 차이점을 간략히 설명하십시오.

60. Explain 문의 결과에서 각 필드 하위 테이블은 무엇을 나타냅니까?

61. 인덱스 커버리지란?

62. 가장 왼쪽의 전제 원리는 무엇입니까?

63. Innodb는 트랜잭션을 어떻게 구현합니까?

64. B-tree와 B+ tree의 차이점, Mysq가 B+ tree를 사용하는 이유

65. Mysql 잠금이란 무엇이며 이를 이해하는 방법

66. Mysq | 쿼리를 최적화하는 방법은 무엇입니까?

67. RDB와 AOF란?

68. Redis 만료 키의 삭제 전략

69. Redis 트랜잭션 구현을 간략하게 설명하십시오.

70. Redis 마스터-슬레이브 복제의 핵심 원칙

71. Redis는 어떤 데이터 구조를 가지고 있으며 일반적인 애플리케이션 시나리오는 무엇입니까?

72. Redis 분산 잠금의 최하위 계층은 어떻게 구현됩니까?

73. Redis 마스터-슬레이브 복제의 핵심 원칙

74. Redis 클러스터 전략

75. 캐시 침투. 캐시 고장 및 캐시 사태란 무엇입니까?

76. Redis와 Mysql이 데이터를 보장하는 방법

77. Redis의 문화 메커니즘

78. Redis 단일 스레드가 왜 그렇게 빠릅니까?

80. CAP 이론이란 무엇인가

81. BASE 이론이란?

82. RPC란?

83. 데이터 일관성 모델은 무엇입니까?

84. 분산D란 무엇이며 어떤 솔루션이 있나요?

85. 분산 잠금의 가장 많이 사용되는 분야는 무엇이며 구현 계획은 무엇입니까?

86. 분산 트랜잭션이란 무엇이며 구현 계획은 무엇입니까?

87. ZAB 프로토콜이란 무엇입니까?

88. Zookeeper를 등록 센터로 사용할 수 있는 이유

89. Zookeeper에서 리더 선출 과정은 어떻게 되나요?

90. Zookeeper 클러스터의 노드 간에 데이터를 동기화하는 방법

91. Dubbo는 어떤 로드 밸런싱 전략을 지원합니까?

92. Dubbo는 어떻게 서비스 내보내기를 완료합니까?

93. Dubbo는 서비스 도입을 어떻게 완료합니까?

94. Dubo의 아키텍처 디자인은 무엇입니까?

95. 로드 밸런싱 알고리즘은 무엇입니까?

96. 분산 아키텍처에서 세션 공유를 위한 솔루션은 무엇입니까?

97. 인터페이스의 멱등성을 실현하는 방법

98. zk의 네이밍 서비스에 대해 간단히 설명해주세요. 구성 관리, 클러스터 관리

99. Zookeeper의 시계 메커니즘에 대해 이야기해 주세요.

100. 주키퍼와 유레카의 차이점

101. 스토리지 분할 후 고유한 기본 키 문제를 해결하는 방법

102. 눈송이 알고리즘의 원리

103. 파티션 키 없이 쿼리 문제를 해결하는 방법

104. Spring Cloud의 공통 구성 요소는 무엇이며 각각의 기능은 무엇입니까?

105. 캐시 침투 및 캐시 고장을 방지하는 방법. 캐시 사태?

106. 분산 시스템에서 일반적으로 사용되는 캐싱 체계는 무엇입니까

107. 캐시 만료 전략은 무엇입니까?

108. 일반적인 캐시 제거 알고리즘

109. 블룸 필터 원리, 장단점

110. 분산 캐시 주소 지정 알고리즘

111. Spring Cloud와 Dubbo의 차이점은 무엇입니까?

112. 서비스 Xuegang이란 무엇입니까?서비스 전류 제한이란 무엇입니까?

113. 서비스 회로 차단기란 무엇이며 서비스 다운그레이드란 무엇이며 차이점은 무엇입니까?

114. SOA, 분산 및 마이크로서비스 간의 관계와 차이점은 무엇입니까?

115. 마이크로서비스를 분할하는 방법은 무엇입니까?

116. 응집력이 높고 결합도가 낮은 마이크로서비스를 설계하는 방법은 무엇입니까?

117. DDD 도메인 기반 디자인에 대해 배운 적이 있습니까?

118. 중태란?

119. 프로젝트에서 마이크로서비스의 민첩한 개발을 어떻게 보장합니까?

120. 메시지 큐 유형을 선택하는 방법은 무엇입니까?

121. RocketMQ의 트랜잭션 메시지는 어떻게 실현됩니까?

122. RocketMO는 왜 okeeper를 등록 센터로 사용하지 않습니까?

123. RocketMQ의 구현 원리

124. RocketMQ가 빠른 이유는 무엇입니까?

125. 메시지 큐는 어떻게 신뢰할 수 있는 메시지 전송을 보장합니까?

126. 메시지 대기열의 기능은 무엇입니까?

127. 배달 못한 편지 대기열이란 무엇이며 지연 대기열이란 무엇입니까?

128. 효율적인 메시지 읽기 및 쓰기를 보장하는 방법은 무엇입니까?

129. epoll과 poll의 차이점

130. TCP의 3방향 핸드셰이크 및 4방향 웨이브

131. 요청을 보내고 응답을 받을 때까지 브라우저는 어떤 단계를 거치나요?

132. 도메인 간 요청이란 무엇이며 문제는 무엇이며 해결 방법은 무엇입니까?

133. 제로카피란?

읽기 경험에 영향을 주지 않기 위해 이 Java 고정형 에세이의 실제 인터뷰 질문을 정리했습니다 .

추천

출처blog.csdn.net/l688899886/article/details/126631127