2021年最新Java高级面试和答案

本文总结了2021年Java高级面试的重点,涵盖JVM、线程、设计模式、缓存、三大框架、负载均衡、项目优化、并发安全等方面的问题及答案,帮助Java开发者准备面试。
摘要由CSDN通过智能技术生成

基础是java初学者的起步,都会帮助你从小白入门到精通必学基础课程!

 为初学者应该会有很大帮助! 入门到入狱,赶紧拿走!

Java基础板块知识:

  1. 职业规划
  2. 学习方法
  3. 泛型、容器
  4. 数据结构和算法
  5. 智能电话本实战
  6. IO流
  7. Java介绍
  8. 变量、数据类型、运算符
  9. IDEA
  10. 控制语句、方法、递归算法
  11. 面向对象
  12. JVM
  13. 数组和数据储存
  14. JDK
  15. 异常机制、可视化
  16. 飞机大战项目

一、面试题基础总结

1、 JVM结构原理、GC工作机制详解?

答:具体参照:JVM结构、GC工作机制详解,说到GC,记住两点:

  • GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身
  • GC回收机制的两种算法,a、引用计数法  b、可达性分析算法

2、Java对象的生命周期

答:创建阶段 、 应用阶段 、不可见阶段 、不可达阶段 、收集阶段 、终结阶段、 对象空间重新分配阶段等等,具体参照: 

Java 对象的生命周期

3、Map或者HashMap的存储原理

答:HashMap是由数组+链表的一个结构组成,具体参照:HashMap的实现原理

4、当数据表中A、B字段做了组合索引,那么单独使用A或单独使用B会有索引效果吗?(使用like查询如何有索引效果)

答:看A、B两字段做组合索引的时候,谁在前面,谁在后面,如果A在前,那么单独使用A会有索引效果,单独使用B则没有,反之亦然。同理,使用like模糊查询时,如果只是使用前面%,那么有索引效果,如果使用双%号匹配,那么则无索引效果

5、数据库存储日期格式时,如何考虑时区转换问题?

答:使用TimeStamp ,  原因参照:Java编程中遇到的时区转换问题

6、Java Object类中有哪些方法?
答:Object有哪些方法

7、HTTP协议,GET和POST 的区别
答:浅谈HTTP中GET和POST的区别

二、线程、设计模式、缓存方面

1、SimpleDataFormat是非线程安全的,如何更好的使用而避免风险呢

答:关于SimpleDateFormat安全的时间格式化线程安全问题

2、如何看待设计模式,并简单说说你对观察者模式的理解

答:

  • 设计模式有神马用
  • 观察者模式类图及实现

3、集群环境中,session如何实现共享

答:

  • Java集群之session共享    
  • session多服务器共享方案,还有一种方案就是使用一个固定的服务器专门保持session,其他服务器共享

4、分布式、集群环境中,缓存如何刷新,如何保持同步?

答:A、缓存如何刷新?

  • 定时刷新 
  • 主动刷新覆盖   ,每个缓存框架都有自带的刷新机制,或者说缓存失效机制,就拿Redis和 Ehcache举例, 他们都有自带的过期机制,另外主动刷新覆盖时,只需获取对应的key进行数据的覆盖即可

B、缓存如何保持同步?  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值