自定义一套java面试题

0.如果try 和 finally 代码中都写了return语句, 最后返回的是哪个?为什么

1.spring声明式事务失效的场景

2.spring事务传播机制有哪几种

3.要想主方法不受子方法的异常而回滚, 该怎么处理

4.MySQL索引数据结构

5.索引失效的场景

6.最左匹配,回表,覆盖索引的概念

7.线程池new ThreadPoolExecutor() 构造函数是哪几个参数? 以及 设置经验?

8.线程池默认的工作行为是怎样的

9.有没有办法优先开启更多的线程,而把队列当成一个后备方案呢?

10.如果不小心每次都创建了一个自定义的线程池(10 核心线程,50 最大线程,1 秒回收的),反复执行测试接口线程,最终可以被回收吗?会出现 OOM 问题吗?

11.讲一下项目里经常使用的设计模式(装饰器模式和代理模式的区别?)(举几个体现了开闭原则思想的设计模式?)(spring中遵循了哪些设计原则?)

12.单例模式有哪些写法? 经典的双检锁的写法为什么要加volatile关键字

13.搞定代码重复的方法有哪些

14.jvm内存模型

15.jvm垃圾回收 (对象在什么时候可以被回收, 回收算法类型有哪几种, 垃圾收集器有哪几种, 分代垃圾回收的过程)

16.java进程导致的cpu负载持续很高的排查思路, 有没有直接在Linux环境上直接观察过jvm垃圾回收的情况, 如果观察到老年代一直无法回收下来, 怎么进一步定位是什么业务造成的?

17.请求响应很慢的优化思路

18.平时喜欢看哪些技术书

19.除了java对其他语言有兴趣吗

20.如果学过其他语言, 能讲下学习一门新语言的心得方法吗

21.举一个工作中遇到过的挑战, 最后怎么解决的

22.如果要把一个单体应用扩展为集群的方式部署,有哪些地方需要注意(简单的tomcat应用, 这个应用包含了登录认证模块, 码表模块[本地内存实现], 文件上传下载模块, xxx资料库模块, 数据库用的mysql)

Linux相关

1.shell命令对空格敏感吗?

2.我们定义一个字符串常量时,如果含有空格,该怎么办, '' 和"" 有什么区别

3.ssh远程连接一个主机时,连接成功了,但返回的登录信息中含有'xxx command not found', 可能是什么原因?

4.怎么查看本机的mysql服务正被哪些客户端连接访问?

5.管道符后面怎样才能接一个非管道命令?

如果写了熟悉redis :

redis为什么快(单线程 IO多路复用 操作内存等)

redis持久化机制

redis事务怎么用的

redis中有几种数据结构

redis的淘汰策略

redis中的数据持久化和内存回收(过期key删除,数据淘汰)是在主线程中进行的吗

redis性能问题排查思路

其他:

hashMap底层结构

threadLocal用过吗?内存泄露的场景

mysql的sql执行过程

幻读是什么, mysql怎么实现幻读的

mysql是怎么保证数据不丢失的?

分布式事务的几种实现方式

你可能感兴趣的:(自定义一套java面试题)