Java 一次面试记录

2019-07-14 00:52发布

面试中常问到的问题还是要总结下,方面以后查询,做针对性的复习

文章目录

数据库

MVCC数据库如何实现

多版本并发控制,是通过保存数据在某个时间点的快照来实现的。也就是说不管需要执行多长的时间,每个事务看到的数据都是一致的

数据库隔离级别

未提交读
提交读
可重复读
可串行化

什么是幻读

指的是当某个事务在读取某个范围内的记录时,另一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行,MVCC解决了幻读问题

讲讲一致性hash

线程安全的几种做法

索引树的实现B树 原理,为什么选用

select poll和epoll的区别

慢查询,如何查看慢查询日志

设计模式

什么是策略模式?

java

Spring MVC的实现原理

HashMap的实现原理

数组+链表+红黑树
参考博文
https://blog.csdn.net/chenlushun12/article/details/79733051

动态代理有哪些

jdk动态代理
cglib动态代理

JVM内存模型

主内存,本地内存(又叫工作内存)

synchronized的原理

垃圾回收策略和算法

中间件

分布式环境下的事务如何保证?

https://github.com/yu199195/myth

RPC服务治理,消息中间件

DUBBO的实现原理

redis数据持久化

rdb
aof
参考文章
https://blog.csdn.net/chenlushun12/article/details/79577845

Zookeeper干什么的?

操作系统

找出最耗CPU的那个线程

The Java jstack command can find out a thread that taking a long time. Execute the jstack command will return about info of many thread, which have nid=0x446f . https://blog.csdn.net/qian_348840260/article/details/44244193

面试

1、自我介绍、自己做的项目和技术领域
2、项目中的监控:那个监控指标常见的有哪些?
3、微服务涉及到的技术以及需要注意的问题有哪些?
4、注册中心你了解了哪些?
5、consul 的可靠性你了解吗?
6、consul 的机制你有没有具体深入过?有没有和其他的注册中心对比过?
7、项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理
8、Spring Boot除了自动配置,相比传统的 Spring 有什么其他的区别?
9、Spring Cloud 有了解多少?
10、Spring Bean 的生命周期
11、HashMap 和 hashTable 区别?
12、Object 的 hashcode 方法重写了,equals 方法要不要改?
13、Hashmap 线程不安全的出现场景
14、线上服务 CPU 很高该怎么做?有哪些措施可以找到问题
15、JDK 中有哪几个线程池?顺带把线程池讲了个遍
16、SQL 优化的常见方法有哪些
17、SQL 索引的顺序,字段的顺序
18、查看 SQL 是不是使用了索引?(有什么工具)
19、TCP 和 UDP 的区别?TCP 数据传输过程中怎么做到可靠的?
20、说下你知道的排序算法吧
21、查找一个数组的中位数?
22、你有什么问题想问我的吗?
电话二面(85 分钟)
1、自我介绍、工作经历、技术栈
2、项目中你学到了什么技术?(把三项目具体描述了很久)
3、微服务划分的粒度
4、微服务的高可用怎么保证的?
5、常用的负载均衡,该怎么用,你能说下吗?
6、网关能够为后端服务带来哪些好处?
7、Spring Bean 的生命周期
8、xml 中配置的 init、destroy 方法怎么可以做到调用具体的方法?
9、反射的机制
10、Object 类中的方法
11、hashcode 和 equals 方法常用地方
12、对象比较是否相同
13、hashmap put 方法存放的时候怎么判断是否是重复的
14、Object toString 方法常用的地方,为什么要重写该方法

Set 和 List 区别?

  • Set 无序,不重复,实现:HashMap的Key
  • List 有序,可重复,实现:链表、数组

ArrayList 和 LinkedList

17、如果存取相同的数据,ArrayList 和 LinkedList 谁占用空间更大?
18、Set 存的顺序是有序的吗?
19、常见 Set 的实现有哪些?
20、TreeSet 对存入对数据有什么要求呢?
21、HashSet 的底层实现呢
22、TreeSet 底层源码有看过吗?
23、HashSet 是不是线程安全的?为什么不是线程安全的?
24、Java 中有哪些线程安全的 Map?
25、Concurrenthashmap 是怎么做到线程安全的?
26、HashTable 你了解过吗?
27、如何保证线程安全问题?
28、synchronized、lock
29、volatile 的原子性问题?为什么 i++ 这种不支持原子性?从计算机原理的设计来讲下不能保证原子性的原因
30、happens before 原理
31、cas 操作
32、lock 和 synchronized 的区别?
33、公平锁和非公平锁
34、Java 读写锁
35、读写锁设计主要解决什么问题?
36、你项目除了写 Java 代码,还有前端代码,那你知道前端有哪些框架吗?
37、MySQL 分页查询语句
38、MySQL 事务特性和隔离级别
39、不可重复读会出现在什么场景?
40、sql having 的使用场景
41、前端浏览器地址的一个 http 请求到后端整个流程是怎么样?能够说下吗?
42、http 默认端口,https 默认端口
43、DNS 你知道是干嘛的吗?
44、你们开发用的 ide 是啥?你能说下 idea 的常用几个快捷键吧?
45、代码版本管理你们用的是啥?
46、git rebase 和 merge 有什么区别?
47、你们公司加班多吗?