2年Java开发面试被问及的问题

一、Java基础

    static修饰变量、方法、类的区别;   final修饰变量、方法、类的区别; 内部类和静态内部类有什么区别;    内存溢出与内存泄漏的区别;  内存泄漏会造成什么样的影响;  OOM的几种常见形式和解决办法;  如何避免内存泄漏;  threadLocal会内存泄漏吗;    类加载器的作用,写自定义类加载器的意义是什么;  字符串翻转的几种方式;    ArrayList和LinkedList的区别,为什么会有这些区别,分别占用的内存空间是怎么样的;  线程的几种创建和启动方式;  死锁的发生,避免发生死锁的几种方式; synchronized和volatile的作用; 说一下读写锁;  什么时候用synchronized,什么时候用ReentrantLock; 说一下CAS和AQS;  为什么要序列化 

 

二、JVM

    锁的升级过程;  说一下偏向锁、自旋锁、轻量级锁、重量级锁;  synchronized实现原理;    Java内存模型; 内存屏障;  JVM运行时数据区;  对象的内存布局;   对象的生命周期;    GC算法;   CMS垃圾回收器和G1垃圾回收器的工作特点;   JIT与逃逸分析(这个绝壁问得超纲了)

 

三、数据库

    事务隔离级别和事务并发问题;    数据库优化[分库分表、建表、SQL优化];   InnoDB和MyISAM引擎的区别; B+树的结构;    查询时用到了某个普通索引,查询的流程是怎么样的[就是我们常说的回表];    组合索引“带头大哥”不能死的原因[从B+树的索引结构来说];   期望用到某个索引时,结果没有使用到该怎么处理

 

四、缓存

    缓存穿透、缓存击穿、缓存雪崩;  Redis与memcache的区别;   双写不一致问题;Redis分布式锁

 

五、MQ

    为什么使用消息队列、使用场景是什么;    为什么选用XX[即各个MQ间的对比];  消息重复消费问题;  消息的可靠性;  消息积压问题   

 

六、设计模式

    说一下日常开发中常见的设计模式;    说一下你用过的设计模式;   

 

七、架构

    画一下你项目的整体架构图;  springcloud/dubbo的负载均衡策略、容错方案、使用的协议;    各个组件的选型

 

八、框架

    基本不问

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值