Этот список интервью собирался с тех пор, как я стал TeamLeader в 2015 году. С одной стороны, он используется для подбора персонала в компании, а с другой стороны, я хочу использовать его, чтобы раскопать свои технические белые пятна в стеке технологий Java, а затем исправлять и улучшать его, дабы повысить свой технический уровень. Хотя я занимаюсь программированием с 2009 года, я все еще чувствую, что еще многому предстоит научиться.Конечно, процесс обучения также принес мне чувство выполненного долга, и это чувство выполненного долга также подтолкнуло меня к обучению. больше технических знаний.
Что касается вопросов для собеседования, то этот список для собеседования изначально использовался внутри нашей компании, но позже многие друзья связались со мной в WeChat и попросили помочь им найти какую-то информацию для интервью, и эти отношения не очень хорошие, это такой отказ. , это потому, что люди, которые ищут меня для интервью, являются либо младшими братьями и сестрами моих хороших друзей, либо моими младшими братьями и сестрами. Во-вторых, я не могу относиться к этому небрежно, и я буду верен другим. предать это доверие. Постепенно у меня появилась идея, следует ли мне поделиться более чем 200 вопросами для интервью, которые я собрал, чтобы помочь большему количеству нуждающихся.
Честно говоря, я поначалу колебался, во-первых, думал, что это будет немного заподозрено в помощи людям в «обмане», но в конце концов понял, что этим стоит заниматься.
- Во-первых: это здорово, что благодаря этому большему количеству людей можно получить больше знаний.
- Во-вторых: это просто очень отточенный опыт, чтобы те, кто освоил технологию, но не знает, как выразить себя, научились подавать себя в интервью.
- В-третьих: если вы просто заучите эти вопросы интервью наизусть, пока интервьюер задает и исправляет их в деталях, вы можете получить точное представление об этом человеке, и вышеупомянутая вещь «помощь людям обманывать» существует.
- Четвертое: Есть много способов учиться, но только хорошие ученые придут в бассейн, чтобы учить книги. Если это люди, которые не хотят учиться, они закроют глаза, если предоставят им больше и лучше материалов.
Как я уже слышал, почему некоторые компании в Соединенных Штатах прямо принимают вас только потому, что у вас есть диплом Гарварда? Дело не в том, насколько силен Гарвард. Конечно, качество преподавания также является одной из причин, но важнее то, что поступить в колледж в Соединенных Штатах довольно дорого. Прежде всего, если вы можете поступить в Гарвард, это означает, что у вас неплохая семья. Она должна быть у вас с детства. Есть много возможностей участвовать в лучшем образовании; во-вторых, если вы можете поступить в Гарвард, это также показывает, что вы не глупы и можете быть приняты в Гарвард ; наконец, Гарвард действительно может предоставить вам относительно хорошую образовательную среду. Сочетая в себе вышеперечисленные характеристики, эти компании осмеливаются напрямую нанимать тех, кто имеет гарвардское образование.
Что касается наших вопросов на собеседовании, то же самое: во-первых, если вы можете вспомнить большую часть ответов, это означает, что вы, во-первых, умны и обладаете хорошей памятью, во-вторых, вы мотивированы и готовы учиться ; В-третьих, при теоретической поддержке этого вопроса собеседования, даже если у вас нет такого большого практического опыта, вы, понимающие принципы, убедитесь, что программа будет не так уж и плоха.
Так что, если вы интервьюер и случайно увидите это здесь снова, если позволяют условия, пожалуйста, дайте больше возможностей таким молодым людям, которые хотят учиться и очень умны.
Введение в модуль вопросов для интервью
Сказав так много, давайте перейдем к теме нашей статьи Наш вопрос для интервью содержит девятнадцать модулей: основа Java, контейнер, многопоточность, отражение, копирование объекта, веб-модуль Java, исключение, сеть, шаблон проектирования, Spring/Spring MVC, Spring Boot /Spring Cloud, Hibernate, Mybatis, RabbitMQ, Kafka, Zookeeper, MySql, Redis, JVM. Как показано ниже:
Возможно, новичкам не нужно смотреть на знание следующих фреймворков и модулей JVM.Читатели и друзья могут выбрать соответствующий модуль для чтения в соответствии со своей ситуацией.
Подходит для чтения толпы
- Начинающие/средние/продвинутые Java-программисты, которым нужны собеседования
- Те, кто хочет заполнить пробелы
- Тем, кто хочет постоянно улучшать и расширять свой стек технологий Java
- Java-интервьюер
конкретные вопросы интервью
Давайте посмотрим на 208 вопросов интервью, конкретное содержание.
1. Основы Java
1. В чем разница между JDK и JRE?
2. В чем разница между == и equals?
3. Hashcode() двух объектов, equals() тоже должен быть истинным, верно?
4. Какова роль final в java?
5. Что такое Math.round(-1.5) в Java?
6. Является ли String фундаментальным типом данных?
7. Какие есть классы для работы со строками в Java? В чем разница между ними?
8. Является ли строка str="i" такой же, как строка str=new String("i")?
9. Как перевернуть строку?
10.Каковы общие методы класса String?
11. Должен ли абстрактный класс иметь абстрактные методы?
12. В чем разница между обычным классом и абстрактным классом?
13. Можно ли абстрактные классы украшать окончательными?
14. В чем разница между интерфейсом и абстрактным классом?
15.java поток IO делится на несколько?
16.БИО, НИО, АИО В чем разница?
17.Каковы общие методы работы с файлами?
2. Контейнеры
18. Что такое java-контейнеры?
19. В чем разница между Collection и Collections?
20. В чем разница между списком, набором и картой?
21. В чем разница между HashMap и Hashtable?
22. Как решить, использовать HashMap или TreeMap?
23. Расскажите о принципе реализации HashMap?
24. Расскажите о принципе реализации HashSet?
25. В чем разница между ArrayList и LinkedList?
26. Как реализовать преобразование между массивом и списком?
27. В чем разница между ArrayList и Vector?
28. В чем разница между Array и ArrayList?
29. В чем разница между poll() и remove() в Queue?
30. Какие классы коллекций являются потокобезопасными?
31. Что такое итератор?
32. Как использовать итератор? Каковы характеристики?
33. В чем разница между Iterator и ListIterator?
34. Как сделать так, чтобы коллекция не могла быть изменена?
3. Многопоточность
35. В чем разница между параллелизмом и параллелизмом?
36. В чем разница между потоком и процессом?
37. Что такое поток демона?
38. Какие существуют способы создания темы?
39. В чем разница между runnable и callable?
40. Каковы состояния потока?
41. В чем разница между sleep() и wait()?
42.В чем разница между notify() и notifyAll()?
43. В чем разница между run() и start() потока?
44. Какие существуют способы создания пула потоков?
45. В каком состоянии находится пул потоков?
46. В чем разница между методами submit() и execute() в пуле потоков?
47. Как обеспечить безопасность многопоточности в java-программе?
48. Что такое принцип обновления многопоточных замков?
49. Что такое тупик?
50. Как предотвратить взаимоблокировку?
51.Что такое ThreadLocal? Каковы сценарии использования?
52. Расскажите мне об основном принципе реализации synchronized?
53.В чем разница между синхронизированным и изменчивым?
54.В чем разница между синхронизацией и блокировкой?
55.В чем разница между синхронизированной и реентерантной блокировкой?
56. Расскажите о принципе атомарности?
4. Отражение
57. Что такое отражение?
58. Что такое сериализация Java? Когда требуется сериализация?
59. Что такое динамический прокси? Какие приложения есть?
60. Как реализовать динамический прокси?
5. Копирование объектов
61. Зачем использовать клон?
62. Как реализовать клонирование объектов?
63. В чем разница между глубоким и поверхностным копированием?
6. Веб-сайт Java
64. В чем разница между jsp и сервлетом?
Которые имеют встроенные объекты 65.jsp? Какая роль?
66. Расскажите мне о 4-х областях jsp?
67. В чем разница между сеансом и файлом cookie?
68. Расскажите о принципе работы сеанса?
69. Можно ли по-прежнему использовать сеанс, если клиент запрещает использование файлов cookie?
70. В чем разница между Spring MVC и распорками?
71. Как избежать внедрения sql?
72. Что такое атака XSS, как избежать?
73. Что такое атака CSRF и как его избежать?
7. Ненормальный
74. В чем разница между бросками и бросками?
75. В чем разница между final, finally и finalize?
76. Какую часть try-catch-finally можно опустить?
77. В try-catch-finally, если в catch будет return, будет ли finally выполнен?
78. Каковы общие классы исключений?
8. Сеть
79. Что представляют собой коды ответа HTTP 301 и 302? Какая разница?
80. В чем разница между переадресацией и переадресацией?
81. Кратко опишите разницу между tcp и udp?
82. Почему tcp нужно жать руку три раза, а не два? Зачем?
83. Подскажите, как формируется липкий пакет tcp?
84. Что представляют собой семиуровневые модели OSI?
85. В чем разница между запросами get и post?
86. Как добиться кросс-доменности?
87. Расскажите о принципе реализации JSONP?
9. Шаблоны проектирования
88. Расскажите мне о шаблонах проектирования, с которыми вы знакомы?
89. В чем разница между простой фабрикой и абстрактной фабрикой?
10. Весна/весна MVC
90. Зачем использовать пружину?
91. Объясните, что такое аоп?
92. Объясните, что такое ioc?
93.Какие основные модули весны?
94. Какие методы инъекций обычно используются весной?
95. Являются ли bean-компоненты в Spring потокобезопасными?
96. Сколько областей действия bean-компонентов поддерживает Spring?
97. Каковы способы автосвязывания бобов Spring?
98. Каковы методы реализации весенних транзакций?
99. Говорите об изоляции транзакций Spring?
100. Расскажите мне о запущенном процессе Spring MVC?
101. Каковы компоненты Spring MVC?
102. Какова роль @RequestMapping?
103. Какова роль @Autowired?
Одиннадцать, Spring Boot/Spring Cloud
104. Что такое весенний ботинок?
105. Зачем использовать весеннюю загрузку?
106. Что такое файл конфигурации ядра весенней загрузки?
107.Каковы типы файлов конфигурации весенней загрузки? В чем разница между ними?
108. Как Spring Boot может реализовать горячее развертывание?
109. В чем разница между jpa и hibernate?
110. Что такое весеннее облако?
111. Какова роль автоматического выключателя весеннего облака?
112. Каковы основные компоненты весеннего облака?
12. Спящий режим
113. Зачем использовать спящий режим?
114. Что такое структура ORM?
115. Как просмотреть распечатанный оператор sql в консоли в спящем режиме?
116.Сколько методов запроса есть у hibernate?
117. Можно ли определить спящие классы сущностей как окончательные?
118. В чем разница между использованием Integer и int для отображения в спящем режиме?
119.Как работает спящий режим?
120. В чем разница между get() и load()?
121. Расскажите о механизме кэширования спящего режима?
122.Каковы состояния объекта гибернации?
123. В чем разница между getCurrentSession и openSession в спящем режиме?
124. Должен ли класс сущностей hibernate иметь конструктор без параметров? Зачем?
13. Мибатис
125. В чем разница между #{} и ${} в mybatis?
126. Сколько методов пейджинга есть у mybatis?
127. Является ли RowBounds одноразовым запросом для всех результатов? Зачем?
128. В чем разница между логическим пейджингом mybatis и физическим пейджингом?
129. Поддерживает ли mybatis ленивую загрузку? Каков принцип ленивой загрузки?
130. Расскажите о кеше первого уровня и кеше второго уровня mybatis?
131.В чем разница между mybatis и hibernate?
132. Какие исполнители есть у mybatis?
133.Каков принцип реализации плагина подкачки mybatis?
134. Как mybatis пишет собственный плагин?
14. КроликMQ
135. Каковы сценарии использования rabbitmq?
136. Какова важная роль rabbitmq?
137.Каковы важные компоненты rabbitmq?
138. Какова роль vhost в rabbitmq?
139.Как отправляется сообщение rabbitmq?
140. Как rabbitmq обеспечивает стабильность сообщения?
141. Как rabbitmq предотвращает потерю сообщений?
142. Каковы условия обеспечения успеха сохранения сообщения?
143. Каковы недостатки постоянства rabbitmq?
144. Сколько типов вещания есть у rabbitmq?
145. Как в rabbitmq реализована очередь отложенных сообщений?
146. Какая польза от кластера rabbitmq?
147.Какие бывают типы узлов rabbitmq?
148. На какие проблемы следует обратить внимание при построении кластера rabbitmq?
149.Является ли каждый узел rabbitmq полной копией других узлов? Зачем?
150. Что происходит, когда единственный дисковый узел в кластере rabbitmq выходит из строя?
151. Есть ли у rabbitmq требования к порядку остановки узлов кластера?
15. Кафка
152. Можно ли использовать kafka независимо от zookeeper? Зачем?
153. Сколько стратегий хранения данных у kafka?
154. kafka устанавливает 7 дней и 10G для одновременной очистки данных.К пятому дню сообщение достигает 10G.Как kafka будет обрабатывать это время?
155. Что бы заставить Кафка запустить медленнее?
156. На что следует обратить внимание при использовании кластера kafka?
16. Зоопарк
157.Что такое смотритель зоопарка?
158. Какие функции выполняет смотритель зоопарка?
159. Сколько режимов развертывания есть у zookeeper?
160. Как zookeeper обеспечивает синхронизацию состояния главных и подчиненных узлов?
161. Почему в кластере есть главный узел?
162. В кластере 3 сервера, и один из узлов не работает, можно ли в это время использовать zookeeper?
163. Расскажите мне о механизме уведомлений zookeeper?
17. MySQL
164. Каковы три парадигмы базы данных?
165. Всего в таблице автоинкремента 7 фрагментов данных, последние 2 фрагмента данных удаляются, база данных mysql перезапускается и вставляется еще один фрагмент данных, какой id на данный момент?
166. Как получить текущую версию базы данных?
167. Что такое КИСЛОТА?
168. В чем разница между char и varchar?
169. В чем разница между float и double?
170. В чем разница между внутренним соединением, левым соединением и правым соединением в mysql?
171. Как реализован индекс mysql?
172. Как проверить, соответствует ли индекс mysql требованиям?
173. Говорите об изоляции транзакций базы данных?
174. Расскажите мне о механизмах, обычно используемых mysql?
175. Расскажите мне о блокировках строк и таблиц MySQL?
176. Говорите об оптимистичной и пессимистичной блокировке?
177. Каковы методы устранения неполадок MySQL?
178. Как оптимизировать производительность mysql?
Восемнадцать, Редис
179. Что такое редис? Каковы сценарии использования?
180. Каковы функции Redis?
181. В чем разница между Redis и Memecache?
182. Почему Redis однопоточный?
183. Что такое проникновение в кеш? Как с этим бороться?
184. Какие типы данных поддерживает Redis?
185. Какие Java-клиенты поддерживаются Redis?
186. В чем разница между джедаями и редиссонами?
187. Как обеспечить согласованность данных кеша и базы данных?
188. Сколько существует способов сохранения Redis?
189. Как Redis реализует распределенные блокировки?
190. Каковы дефекты распределенных блокировок redis?
191. Как Redis оптимизирует память?
192. Каковы стратегии устранения Redis?
193. Каковы общие проблемы с производительностью Redis? Как это решить?
Девятнадцать, JVM
194. Расскажите об основных компонентах jvm? и его роль?
195. Расскажите мне об области данных среды выполнения jvm?
196. Расскажите о разнице между стеками?
197. Что такое очереди и стеки? Какая разница?
198. Что такое модель родительского делегирования?
199. Расскажите о процессе выполнения загрузки класса?
200. Как определить, можно ли переработать объект?
201. Какие ссылочные типы есть в java?
202. Подскажите, какие алгоритмы сборки мусора есть у jvm?
203. Подскажите, какие сборщики мусора есть в JVM?
204. Подробно опишите сборщик мусора CMS?
205. Что такое сборщики мусора нового поколения и сборщики мусора старого поколения? Какая разница?
206. Кратко опишите, как работает сборщик мусора поколений?
207. Расскажите про инструменты для настройки jvm?
208. Какие параметры обычно используются для настройки jvm?
ответы на интервью
Отсканируйте QR-код ниже, чтобы получить ответ + анализ вопроса + код дела ↓↓↓