中高级Java面试题目汇总

11月月底,由于各种原因裸辞了。更新完了简历以后,接下来就是不停的面试、面试、面试

从12月11号开始,到今天,一共面试了30多家,都说今年是互联网寒冬,因为有3年多没有面试过,所以对于寒冬一说不太相信,哈哈哈,然而事实确实如此。面试单位有大厂,有创业型公司,有移动医疗,有互联网教育,有大数据,有短视频,有门户网,有P2P,总之,最近真的是心累,一言难尽。听说寒冬才是自我提升的最佳时机,所以我今天就整理了一下最近面试的内容,和大家分享一下,

 

1、java虚拟机内存模型,各个区域在什么情况下存储什么类的数据

2、new一个对象的过程,回收一个对象的过程

3、垃圾回收算法,各个算法优缺点及适用在内存模型的哪个区域

4、垃圾收集器CMS和G1,分别有哪几个过程,它们的优缺点

5、HashMap原理,put和get操作如何实现的,put/get操作时如何根据key计算在数组中的位置,各个jdk版本中有何区别,为何它非线程安全,为何使用单链表不用双链表,单双链表有什么区别优缺点,单双链表在jdk中还有哪些地方使用到,为何使用红黑树,红黑树是什么,红黑树和B+树有什么区别,红黑树需要比较大小才能插入,HashMap中是如何比较大小的。get操作时间复杂度是多少

6、concurrentHashmap原理,put和get操作如何实现,为何使用分段锁,分段锁还用在jdk哪些地方,如果使用其他锁如何实现(读写锁、共享锁等),和hashTable有什么区别

7、thread有哪些方法,如何实现多线程通讯,如何实现多进程通讯。wait,sleep,yield,join,notify、notifyAll等有什么区别

8、线程池有哪几种,threadPoolExecutor参数有哪些,各个参数如何作用,拒绝策略有哪几种,如何自定义拒绝策略,workQueue有哪几种,各个分别适用什么场景

9、锁有哪几种,锁的原理是什么

10、分布式锁有哪几种实现方式,写出至少两种

11、synchronized、volatile、atomic、lock有什么区别,实现原理是什么

12、java.util.concurrent包下有哪些类

13、如何加载一个class类,classLoader加载过程,每一步分别做了什么事,双亲委派是什么,有什么用途,如何自定义一个classLoader

14、红黑树,B+树,B树有什么区别及优缺点,分别用在什么场景下

15、静态代理、动态代理是如何实现的,jdk动态代理和cglib动态代理有什么区别,分别用在什么场景

16、BIO、NIO、AIO,分别如何使用,主要涉及哪几个类,分别用在什么场景

17、spring IOC如何实现的,@AutoWared原理是什么

18、spring AOP如何实现的,实现自定义AOP功能涉及到哪几个类

19、spring bean的生命周期,作用域有哪几种,各自适用什么场景

20、spring中用到了哪些设计模式,代码举例说明

21、jdk中用到了哪些设计模式,代码举例说明

22、http和https有什么区别

23、TCP三次握手和四次挥手过程

24、spring如何管理的事务,如何实现的

25、事务ACID,传播机制,隔离特性,幻读和不可重复读如何通过传播机制避免

26、分布式事务解决方案,各个优缺点及适用场景

27、mysql 索引类型,各个类型分别采用什么算法,存储引擎有哪几种,分别适用什么场景

28、mysql建立索引需要遵循什么规则,联合索引和单索引有什么区别和优缺点,联合索引a_b_c_d,对于mysql来说,一共建了几个索引

29、如何优化慢查询

30、如何根据explain的结果进行分析

31、spring如何创建applicationContext

32、排序算法,冒泡排序,快速排序,插入排序,选择排序,堆排序的思想、稳定性,至少写出三种

33、nginx中使用的算法,dubbo中使用到的算法,zookeeper中使用的算法,redis中使用的算法

34、二分查找法(代码实现),B树,B+树分别适用什么场景,时间复杂度分别是多少

35、如何解决hash冲突

36、定时任务框架有哪些?如何实现一个分布式定时任务框架,需要注意哪些。Elastic-job原理是什么

37、RPC框架有哪些,如何实现一个RPC框架

38、dubbo原理是什么

39、spring cloud和dubbo有什么区别和联系

40、springBoot如何实现零配置的

41、一主多从时读写分离如何实现

42、shareding-jdbc中间件原理是什么

43、rocketMQ、ribbtMQ等消息队列中间件有什么优缺点

44、linux的常规操作,文件查找,行数/字符统计,查看栈信息,线程信息

45、jvm调优

 

这些都是面试过程中问到的,至于笔试题上机题没有写下来,笔试题有基础的,有架构的,有编程的,编程题大都是一些多线程和基础排序算法,当然还有很多抽象的算法题目,更有一些很底层的,比如给一大段字节码,反编译成Java代码等等。

 

最后,希望大家来年想辞职一定先找到工作(大神除外,大神除外,大神除外),面试千万不要死记硬背,一定要看源码,看懂源码,理解其中的思想,切记切记

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值