Java面试题

Java面试题

基础篇

1、接口和抽象类的区别?
2、Java的三大特性,多态的具体表现形式?
3、String、StringBuffer和StringBuilder的区别?
4、Collections和Collection的区别?
5、List、Set和Map的区别?
6、HashMap是否线程安全,底层实现?
7、final、finally和finalsize的区别?
8、异常分类以及处理机制?
9、wait和sleep的区别?
10、数组在内存中如何分配?
11、Java反射
12、Arrays.sort 实现原理和 Collection 实现原理?
13、设计模式
14、基本数据类型和引用类型有哪些?
15、强引用 、软引用、 弱引用、虚引用
16、&和&&的区别,==和equal的区别?
17、String为什么要设计成不可变的?

并发

1、JVM垃圾回收机制,哪些对象会被垃圾回收机制处理掉?
2、volatile 的实现原理?
3、synchronized 在静态方法和普通方法的区别?
4、synchronized 和 lock 有什么区别?
5、怎么实现所有线程在等待某个事件的发生才会去执行?
6、Hashtable 是怎么加锁的 ?
7、HashMap 的并发问题?
8、ConcurrenHashMap 介绍?1.8 中为什么要用红黑树?
9、如何保证多线程下 i++ 结果正确?
10、线程池的种类,区别和使用场景?
11、分析线程池的实现原理和线程的调度过程?
12、ThreadLocal原理,用的时候需要注意什么?
13、八种阻塞队列以及各个阻塞队列的特性

Spring

1、BeanFactory 和 FactoryBean?
2、Spring IOC和AOP的理解,其初始化过程和实现?
3、String、StringBuffer和StringBuilder的区别?
4、Spring Bean 的生命周期,如何被管理的?
5、Spring Bean 的加载过程是怎样的?
6、Spring 是如何管理事务的,事务管理机制?
7、Spring 的不同事务传播行为有哪些,干什么用的?
8、Spring 中用到了那些设计模式?
9、Spring MVC 的工作原理?
10、数组在内存中如何分配?
11、Spring 如何保证 Controller 并发的安全?
12、Spring Boot
13、Spring Cloud

Netty

1、BIO、NIO和AIO
2、Netty 的各大组件
3、Netty的线程模型
4、TCP 粘包/拆包的原因及解决方法
5、了解哪几种序列化协议?包括使用场景和如何去选择
6、Netty的零拷贝实现
7、Netty的高性能表现在哪些方面

分布式相关

1、Dubbo的底层实现原理和机制
2、描述一个服务从发布到被消费的详细过程
3、分布式系统怎么做服务治理
4、接口的幂等性的概念
5、消息中间件如何解决消息丢失问题
6、Dubbo的服务请求失败怎么处理
7、重连机制会不会造成错误
8、对分布式事务的理解
9、如何实现负载均衡,有哪些算法可以实现?
10、Zookeeper的用途,选举的原理是什么?
11、数据的垂直拆分水平拆分。
12、zookeeper原理和适用场景
13、zookeeper watch机制
14、redis/zk节点宕机如何处理
15、分布式集群下如何做到唯一序列号
16、如何做一个分布式锁
17、用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗
18、MQ系统的数据如何保证不丢失
19、列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题
20、zookeeper的选举策略
21、全局ID
22、如何实现路由

数据库

1、mysql分页有什么优化
2、悲观锁、乐观锁
3、组合索引,最左原则
4、mysql 的表锁、行锁
5、mysql 性能优化
6、mysql的索引分类:B+,hash;什么情况用什么索引
7、事务的特性和隔离级别
8、数据索引有哪些?是不是使用越多越好?

缓存

1、Redis用过哪些数据数据,以及Redis底层怎么实现
2、Redis缓存穿透,缓存雪崩
3、如何使用Redis来实现分布式锁
4、Redis的并发竞争问题如何解决
5、Redis持久化的几种方式,优缺点是什么,怎么实现的
6、Redis的缓存失效策略
7、Redis集群,高可用,原理
8、Redis缓存分片
9、Redis的数据淘汰策略

JVM

1、详细jvm内存模型
2、讲讲什么情况下回出现内存溢出,内存泄漏?
3、说说Java线程栈
4、JVM 年轻代到年老代的晋升过程的判断条件是什么呢?
5、JVM 出现 fullGC 很频繁,怎么去线上排查问题?
6、类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式?
7、类的实例化顺序
8、JVM垃圾回收机制,何时触发MinorGC等操作
9、JVM 中一次完整的 GC 流程(从 ygc 到 fgc)是怎样的
10、各种回收器,各自优缺点,重点CMS、G1
11、各种回收算法
12、OOM错误,stackoverflow错误,permgen space错误
13、JVM垃圾回收机制,哪些对象会被垃圾回收机制处理掉?

书籍推荐

分布式系统概念与设计(第五版)

《分布式系统概念与设计》旨在全面介绍因特网及其他常用分布式系统的原理、体系结构、算法和设计,内容涵盖分布式系统的相关概念、安全、数据复制、组通信、分布式文件系统、分布式事务等,以及相关的前沿主题,包括web服务、网格、移动系统和无处不在系统等。

算法导论(第三版)

在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。
全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。

离散数学及其应用(第7版)

《计算机科学丛书:离散数学及其应用(原书第7版)》是介绍离散数学理论和方法的经典教材,已经成为采用率高的离散数学教材,被美国众多名校用作教材,获得了极大的成功。中文版也已被国内大学广泛采用为教材。作者参考使用教师和学生的反馈,并结合自身对教育的洞察,对第7版做了大量的改进,使其成为更有效的教学工具。《计算机科学丛书:离散数学及其应用(原书第7版)》可作为1至2个学期的离散数学课入门教材,适用于数学、计算机科学、计算机工程、信息技术等专业的学生。

高等数学

《高等数学(第七版 上册)》是同济大学数学系编的《高等数学》第七版,从整体上说与第六版没有大的变化,内容深广度符合“工科类本科数学基础课程教学基本要求”,适合高等院校工科类各专业学生使用。
本次修订遵循“坚持改革、不断锤炼、打造精品”的要求,对第六版中个别概念的定义,少量定理、公式的证明及定理的假设条件作了一些重要修改;对全书的文字表达、记号的采用进行了仔细推敲;个别内容的安排作了一些调整,习题配置予以进一步充实、丰富,对少量习题作了更换,所有这些修订都是为了使书更加完善,满足教学需要。
《高等数学(第七版 上册)》分上、下两册出版,上册包括函数与极限、导数与微分、微分中值定理与导数的应用、不定积分、定积分及其应用、微分方程等内容,书末还附有二阶和三阶行列式简介、基本初等函数的图形、几种常用的曲线、积分表、习题答案与提示。

概率论与数理统计

本书根据作者多年的教学改革实践修订而成,内容包括随机事件与概率、离散型随机变量及其分布、连续型随机变量及其分布、随机变量的数学特征、随机变量序列的极限、现代概率论基础简介、数理统计的基本概念、参数估计、假设检验、回归分析与方差分析。书中各章附有相当数量的习题,书末附有习题的参考答案,供读者查阅。本书在教育部制定的教学大纲的基础上,紧扣硕士研究生入学考试大纲,并以此规范概率统计中的术语与记号。

工程数学:线性代数(第6版)

《工程数学:线性代数(第6版)》内容包括行列式、矩阵及其运算、矩阵的初等变换与线性方程组、向量组的线性相关性、相似矩阵及二次型、线性空间与线性变换六章,各章均配有相当数量的习题,书未附有习题答案。第1至5章(除用小字排印的内容外)完全满足教学基本要求,教学时数约34学时。第1至5章中用小字排印的内容供读者选学,第六章带有较多的理科色彩,供对数学要求较高的专业选用。
《工程数学:线性代数(第6版)》由同济大学数学系多位教师历经近两年时间反复修订而成。此次修订依据工科类本科线性代数课程教学基本要求(以下简称教学基本要求),参照近年来线性代数课程及教材建设的经验和成果,在内容的编排、概念的叙述、方法的应用等诸多方面作了修订,使全书结构更趋流畅,主次更加分明,论述更通俗易懂,因而更易教易学,也更适应当前的本科线性代数课程的教学。
《工程数学:线性代数(第6版)》可供高等院校各工程类专业使用,包括诸如管理工程、生物工程等新兴工程类专业,也可供自学者、考研者和科技工作者阅读。

数学之美(第2版)

几年前,“数学之美”系列文章原刊载于谷歌黑板报,获得上百万次点击,得到读者高度评价。读者说,读了“数学之美”,才发现大学时学的数学知识,比如马尔可夫链、矩阵计算,甚至余弦函数原来都如此亲切,并且栩栩如生,才发现自然语言和信息处理这么有趣。
在纸本书的创作中,作者吴军博士几乎把所有文章都重写了一遍,为的是把高深的数学原理讲得更加通俗易懂,让非专业读者也能领略数学的魅力。读者通过具体的例子学到的是思考问题的方式 —— 如何化繁为简,如何用数学去解决工程问题,如何跳出固有思维不断去思考创新。
第二版增加了针对大数据和机器学习的内容,以便满足人们对当下技术的学习需求;同时,根据专家和读者的反馈更正了一些错漏,并更新了部分内容。
《数学之美》第一版荣获国家图书馆第八届文津图书奖;
入选广电总局“2014年向全国青少年推荐百种优秀图书书目”;
荣获2012-2013年度全行业优秀畅销书;
《浪潮之巅》、《文明之光》作者吴军博士最新力作,李开复作序推荐,Google黑板报百万点击!
新版增加了大数据和机器学习等最新内容,以满足人们对当下技术的学习需求;同时,根据专家和读者的反馈更正了错漏,并更新了部分内容

招聘网站

  • 前程无忧:https://www.51job.com

  • 智联招聘:https://www.zhaopin.com

  • Boss直聘:https://www.zhipin.com

  • 100offer:https://www.100offer.com

  • indeed:https://www.indeed.com

  • 猎聘网:https://www.liepin.com

  • 拉勾网:https://www.lagou.com
  • More info: Deployment

    Author: Zac
    Link: http://www.zacsite.com/2018/06/23/Java-interview/
    Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.