java面经

之前我一直都是在传统行业里工作,项目中一直用的是写了好多年的老项目,一直在维护之前的代码,不会有大改动,加班也很少,一直呆在舒适区里,导致自己很难保持学习的状态,有的时候需要逼自己一把,强迫自己从舒适区中跳出来,认真踏实提升自己。刚开始面试确实挺难,尤其今年,但是即使一直没有收到offer,但是还是需要给自己信心,静下心来,总结失败经验,补足自己的知识短板,相信自己一定可以的。
Jdk
有些面试官会直接问讲一下java的集合类
一般都会问到ArrayList,LinkedList的区别,主要答存储结构,增删改查效率

Set会问到hashSet,treeSet,以及Set和map的区别,list和set的区别

Map会问到HashMap,TreeMap,HashTable的区别

HashMap会问到底层数据结构,以及解决hash碰撞的方法
Hashmap底层涉及到红黑树,有些面试官会让解释一下红黑树

集合类怎么解决高并发问题

队列的使用问题

也有问到Exception的类型的,有的面试官会问到自定义异常的问题

Object类中的方法

我们用的是jdk1.8,有的面试官会问到1.8的新特性

笔试题会问到通过一段程序,写出打印语句
Spring
很多面试官会问到spring的底层代码,一般会问到bean的生命周期,有些会问到循环引用问题,以及spring中用到的设计模式

解释一下spring,springMVC,springBoot

说一下spring和springBoot的区别

spring的AOP

spring的事务是如何回滚的

Jvm
jvm内存模型,以及这些空间都存放什么东西

堆内存划分的空间,如何回收这些内存对象,有哪些回收算法

jvm调优,如何解决线上gc问题

class初始化过程

内存溢出的原因,如何排查线上问题

jvm有哪些垃圾回收器,少部分公司会让解释一下某个垃圾回收器,一般都是cms往后的

类加载模型
Mybatis
和hibernate的区别

mybatis的缓存,都缓存些什么,session缓存存在哪

mybatis的执行流程,需要了解源码

mybatis防止sql注入,jdbc防止sql注入

多线程
多线程之间是如何通信的

synchronized底层实现,和lock的区别

synchronized关键字加在静态方法和实例方法的区别,有的面试官会出一些题,让判断是否会发生争夺锁问题

稍大点的厂会出面试题,涉及到countdownlatch的用法

线程池的用法,Executor提供了几种线程池,大厂会问到线程池的参数,参数说明,拒绝策略有哪几种也需要说一下,任务放置的顺序过程,任务结束后会不会回收线程,未使用的线程池中的线程放在哪里,线程池线程存在哪,cache线程池会不会销毁核心线程等问题。

MySql
Mysql的索引类型,底层索引数据结构,用这个的好处,叶子节点存储的是什么,索引失效的原因

如何优化sql,查询计划的结果中看哪些些关键数据

innodb和myisam的区别

mysql默认隔离级别,

mysql的乐观锁和悲观锁,锁的种类

如何用sql实现乐观锁和悲观锁

mysql如何分库分表

Redis
几乎所有公司都用到redis,redis的问题还是比较多
redis的数据结构类型,一般都用在什么场景下

sortedSet的底层数据结构

利用redis实现分布式锁

redis使用单线程的好处

redis中如何控制多线程并发

redis删除key的策略

redis的主动缓存,被动缓存

如何保证数据一致性问题

集群环境下如何处理,解释一下一致性哈希

解释一下缓存击穿,缓存穿透,缓存雪崩,如何解决这些问题

MQ
mq的结构图,交换机的种类,如何保证消费者是否消费,ack返回的种类

请求过程服务宕机如何处理,钱已经转出,消费端服务处理不了

一般公司都会用到kafka

分布式事务
如何实现

SpringCloud
SpringCloud和dubbo的区别

项目中用到了哪些组件

eureka的原理,如何保证高可用性,和Zookeeper有什么区别

feign如何调用的

处理生产环境上配置生效问题

hystrix的降级策略有哪些

Dubbo
底层如何实现,画一下dubbo的架构图
可能我项目中没用到dubbo,问的相关问题比较少
设计模式
问的比较多的是单例模式,需要了解每种写法

项目中用到哪些设计模式,讲一下为什么要用,怎么用的?

其他一些少部分公司会问到的
多数据源问题

Tomcat启动原理

http协议

zookeeper 如何保证可用性

接口加密问题

epoll模型

方法缓存是什么

数据库路由

自己实现(dubbo)如何调用远程服务的接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值