Java 面试题

2019年8月份面试总结:

一、简单介绍自己

二、说说最近做过的一个项目(项目中有哪些特色, 用到哪些技术)

三、Redis 部分
① redis 支持的数据类型
   Sting list hash set zset
② redis 持久化方式
   rdb (特点和执行流程)
   aof (特点和执行流程)
③ redis 如何保证高可用
   哨兵(sentinel)
④ redis 集群
   节点握手,分配槽,根据key进行取余算法确定保存在那台机器上
⑤ 分布式锁实现
   zset命令,过期时间设置
⑥ redis 为什么快
   数据放在内存
   IO多路复用
   
四、多线程部分
① 多线程实现方式
   实现Runnable
   继承Thread
② 多线程的安全问题
   不同线程操作共享变量
③ 线程池初始化参数介绍
   corePoolSize
   MaxnumSize
   WorkQueue
   handler(有几种饱和策略,各自涵义)
④ 任务进入线程池的执行流程
⑤ Threadlocal 介绍
⑥ WAIT 和 sleep 区别
   WAIT是Object的方法,sleep是Thread的方法
   wait释放锁,需要notify进行唤醒等等....
⑦ 线程状态

五、static 关键字
   修饰变量和方法,不需要依赖对象实例可以通过对象名称直接访问
   静态代码块,类加载时调用

六、final 关键字
   修饰类, 不能被继承
   修饰方法,不能被重写
   修饰变量,不能被修改
七、泛型
   编译后泛型擦除机制带来的影响
八、消息队列部分
① 消息对列在项目中有哪些作用
   解耦,异步消息, 流量销峰
② 如何保证消息不丢失
   confirm机制, 持久化机制
③ 如何确认消息消费成功
   自动确认和手动ACK
④ 消息幂等问题
   全局ID,消费成功后记录日志,再消费时判断
九、集合部分
① HashMap 和 HashTable区别
   HashMap线程不安全,HashTable线程安全(因为使用了synchronize关键字,所以效率低下)
   HashTable key-value 都不能为null
② ConcurrentHashMap 底层实现
  底层维护了segement 分段锁,每一个锁锁住部分数据,所以效率很高
③ jdk7 和 jdk8 HashMap区别
④ HashMap底层数据结构和源码分析

十、设计模式
   工厂模式, 单例模式(多种),模板方法模式, 策略模式, 外观模式...
十一、Spring部分
① AOP
② IOC
   依赖注入时,如果接口有多个实现怎么确定注入哪个
③ 事务
④ bean的生命周期和作用域

十二、Mysql部分
① 数据库锁
   全局锁,表锁,行锁
② 数据库事务
   原子性,一致,隔离(脏读,不可重复读,幻读), 持久
③ SQL优化
   用explain进行SQL分析
   加索引,多利用覆盖索引,查询字段用函数或者进行计算,左边用like等导致索引失效问题
   不要用select * 
④ 索引
   底层B+树,聚族索引,组合索引,覆盖索引,最左前缀原则
⑤ InnoDB和MyIsam的区别
   InnoDB支持行锁,支持事务,有redolog
⑥ 分库分表

十三、HTTP协议
① 协议理解
② HTTPS
  证书,公钥私钥,对称加密和非对称加密
十四、SpringBoot

十五、SpringMVC
① 一个请求过来的执行流程
② 过滤器和拦截器的实现

十六、JVM部分
① jvm内存划分
  程序计数器,本地方法栈,虚拟机栈,堆,方法区
  各个内存区域的作用....
② 类加载机制
  加载,验证,准备,解析,初始化,使用,卸载
  启动类加载器-扩展类加载器-应用程序类加载器-自定义类加载器
  双亲委派机制
③ GC
  可达性分析算法(分析对象地址是否被其他对象引用)
  标记清除算法-复制算法-标记整理算法-分代收集算法
  年轻代:刚创建的对象实例,回收重灾区(用复制算法),大对象直接放入老年代
  老年代:对象相对稳定,回收较少(用标记清除算法)
  垃圾收集器:CMS G1
④ 优化

十七、DUBBO
① zookeeper(服务治理)
  接口提供者启动后,以接口全路径为key节点保存在zookeeper上,同时在key节点下生成子节点provider
  保存接口提供机器具体信息,IP+端口,消费者启动后,在key节点下生成Consumer节点,这样消费者就
  可以拿到提供者信息,进行本地RPC调用
② 负载均衡
  默认消费端根据策略做负载均衡,提供方也可以做
③ 支持的协议
  Dubbo支持多种协议,默认dubbo协议还有redis协议,http协议,hessian协议等等...
  
十八、SpringCloud
① 对微服务的理解
② config组件,zull组件,Eruka组件,feign组件....

十九、锁
① 底层实现
  底层通过AQS(队列同步器)实现
② 可重入锁实现机制
③ 排它锁(独占锁)和读写锁
   排它锁:同一时刻只能有一个线程获取到锁
   在读比较多的场景,用读写锁可以显著提高性能
④ 乐观锁和悲观锁
  乐观锁 开始不上锁,修改时通过CAS算法
⑤ lock 和 synchronize区别
二十、分布式事务
  用MQ 消息最终一致性解决方案

二十一、IO\NIO
  输入输出流,字符字节流
二十二、防止重复性提交
  前端页面控制(置灰或者给出提示)
  后端:页面刚进入时,生成随机ID, 放在redis,请求成功后,
  删除ID,再次请求判断前端传入的ID是否和redis中相等,如果已经删除,则不再处理
  
二十三、jdk8新特性
① 行为参数化
② lambda 表达式
③ 流(Stream)和 并行流(parallelStream)

二十四、内部类
普通内部类,局部内部类,匿名内部类,静态内部类
内部类可作为单继承的一种扩展
二十五、二叉树
平衡二叉树
二十六、tomcat优化

开放性问题
最近读过哪些技术相关的书,
职业规划,长期有什么打算


 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值