java面试总结

一、java的集合框架

HashMap、HashTable、CurrentHashMap的底层数据结构与区别?

CurrentHashMap与HashTable是如何保证线程安全的?

ArrayList与LinkedList的底层数据结构与区别?

set、list、map有什么区别?他们的父类分别是什么?

http://blog.csdn.net/u011202334/article/details/51496381 HashMap的底层数据结构

https://www.cnblogs.com/xiaoxi/p/6170590.html LinkedHashMap的底层数据结构

https://www.cnblogs.com/java-zhao/p/5102342.html ArrayList的底层数据结构

https://www.cnblogs.com/leskang/p/6029780.html LinkedList的底层数据结构

http://blog.csdn.net/u012999869/article/details/51714290 ConcurrentHashMa底层数据结构

http://blog.csdn.net/baidu_28068985/article/details/78529246 相关数据结构的底层实现及比较

http://blog.csdn.net/LYW_lyw/article/details/78809809

二、字符串

String、StringBuffer、StringBuilder的区别?

String str = new String("abd);  String str = "abd";  执行这两句话后分别创建了几个对象?

三、线程池与多线程

什么是线程池?线程池的作用?

如何实现多线程同步?

创建线程的方式有哪几种?

ThreadLocal的作用?

synchronized关键字与Lock、ReentrantLock的区别?

常见的有哪些锁?

什么是分布式锁?如何实现分布式锁?

java中AQS与CAS是什么?

什么是原子性操作?

volatile关键字的作用与原理?

http://blog.csdn.net/gol_phing/article/details/49032055    线程池原理讲解

https://blog.csdn.net/a837199685/article/details/50619311  线程池种类以及排队策略

https://blog.csdn.net/wenwen091100304/article/details/48318699  多线程同步的方法

http://blog.51cto.com/lavasoft/51926 ThreadLocal讲解

https://www.cnblogs.com/xzwblog/p/7227509.html  彻底理解ThreadLocal

http://www.importnew.com/23511.html  深入分析synchronized的原理

https://blog.csdn.net/baidu_37107022/article/details/77016993  偏向锁、轻量级锁、重量级锁(讲的很有条理,易懂)

http://www.infoq.com/cn/articles/ftf-java-volatile 深入分析Volatile的实现原理

https://www.cnblogs.com/zhengbin/p/5654805.html   JavaVolatile关键字详解

https://www.cnblogs.com/waterystone/p/4920797.html  Java并发之AQS详解

https://blog.csdn.net/fighterandknight/article/details/54906293  JavaCAS详解

https://www.cnblogs.com/davidwang456/p/4662099.html  java原子操作的实现原理

https://blog.csdn.net/hejingyuan6/article/details/47053409  线程之间如何实现数据共享(举例说明,例子不错)

http://www.cnblogs.com/xrq730/p/5060921.html  关于线程的面试题(有时间可以看看)

https://www.cnblogs.com/baizhanshi/p/5437933.html 一个简单的死锁的例子

四、类加载器原理

https://www.cnblogs.com/fingerboy/p/5456371.html  java中的类加载器的原理

五、乐观锁和悲观锁的区别与应用场景

https://blog.csdn.net/claram/article/details/53959367  什么是乐观锁和悲观锁?他们有什么区别?如何实现乐观锁?  

六、设计模式

什么是单例模式?请写一个单例模式的例子。

什么是观察者模式?

https://www.cnblogs.com/zhaoyan001/p/6365064.html  常见的八种单例模式?

https://www.cnblogs.com/lthIU/p/6240128.html  防反射注入的单例模式

七、java的概念性问题

什么是java的面向对象?(一般从java的面向对象的特点来回答)

抽象类和接口的区别?

https://www.cnblogs.com/coprince/p/8603492.html   什么是泛型?为什么用泛型?

什么情况下使用基本类型的包装类?

八、垃圾回收器

jvm内存溢出?内存泄漏?jvm的内存结构?

年轻代、老年代、终生代中,垃圾回收器回收时都采用什么回收算法?

http://www.sohu.com/a/134512799_695350          各种java垃圾回收器的比较

https://www.cnblogs.com/firstdream/p/5763646.html   java GC系列,讲的比较好

https://www.cnblogs.com/cielosun/p/6674431.html     java垃圾回收算法讲解

九、java中的nio与io

https://segmentfault.com/a/1190000014932357?utm_source=tag-newest  什么是io?什么是nio?二者有什么区别?为什么nio非阻塞的?

https://blog.csdn.net/zcl_love_wx/article/details/52126876  java的序列化与反序列化? 

https://www.cnblogs.com/luoxn28/p/5641877.html 

https://www.cnblogs.com/yyy-blog/p/7003693.html 

十、网络协议

HTTP协议、TCP协议、IP协议分别工作在哪一层?

TCP协议的三次握手机制是什么?为什么采用这种机制?

HTTP协议与HTTPS协议的区别?

什么是restful风格? https://www.jianshu.com/p/43dae0b83755

rpc与rest的区别? https://baijiahao.baidu.com/s?id=1617168792520937104&wfr=spider&for=pc

http和rpc调用的优缺点? https://www.jianshu.com/p/b61695e6b473

十一、浏览器的常用状态码

200、400、500、403、404等状态码什么意思?

https://blog.csdn.net/wyhluckydog/article/details/84667323  http状态码详解

十二、数据库

什么是ACID?

Oracle和mysql的区别?(若都用过会问)https://blog.csdn.net/baidu_37107022/article/details/77043959 

oracle或mysql的底层数据结构?

Oracle或mysql的分页查询语句?

什么是索引?为什么会创建索引?什么是聚集索引?什么是组合索引?什么情况下会导致索引失效?创建索引需要注意的问题?

数据库的三范式?

sql优化?什么是存储过程?

创建表的时候需要注意的问题?

left join、right join、inner join的区别?

Oracle数据库如何实现自增?

https://www.cnblogs.com/yyjie/p/7788428.html  mysql数据库sql语句执行顺序

https://blog.csdn.net/zh15732621679/article/details/80409517   mysql索引优化

https://blog.csdn.net/u011504963/article/details/79727849  mysql索引优化实战(不错)

https://blog.csdn.net/qsfwy/article/details/83701246  执行了一条save语句但是没有提交事务,那么数据有没有存到库里面?

https://blog.csdn.net/qq_23217629/article/details/52516277  sql优化避免索引失效

https://blog.csdn.net/ybaog/article/details/53906300 (创建索引的优点和缺点)

https://www.cnblogs.com/xxiaoye/p/3679899.html 为何创建索引能提高查询效率

https://blog.csdn.net/zhangbo_0323/article/details/50156357  (对于B树、B+树的理解)

https://www.cnblogs.com/aspnethot/articles/1504082.html (聚集索引)

https://blog.csdn.net/litong09282039/article/details/46404139 (主键、外键、索引的关系

 https://www.cnblogs.com/Qian123/p/5669259.html sql语句的执行顺序?(不错)

https://www.cnblogs.com/augus007/articles/7999586.html  sql语句的执行原理(很好)

https://blog.csdn.net/wanghjbuf/article/details/50792970 (辅助理解

https://blog.csdn.net/zhangyuan19880606/article/details/51217952  (四中mysql的引擎,可能会问到)

 十三、spring框架

spring中事务的传播属性有哪几种?区别是什么?隔离级别有哪几种?

spring 事务默认的回滚异常时什么?

spring和springMVC的关系是什么?

spring中的bean是如何被加载到容器中的?

spring 控制器默认是单例的吗?若是单例的话可能会有什么后果?是线程安全的吗?

spring的IOC和AOP是什么?

https://blog.csdn.net/qq_34173549/article/details/79929071  spring ioc原理讲解

过滤器和拦截器的区别?

Spring AOP注解什么时候失效?如何解决?

springboot有了解过吗?

spring使用的两种代理jdk的动态代理和cglib动态代理的原理与区别分别是什么?

https://blog.csdn.net/trigl/article/details/50968079  (spring 事务管理,讲得好)

https://blog.csdn.net/liaohaojian/article/details/70139151  (spring 事务管理,讲的更具体)

 https://www.cnblogs.com/hafiz/p/5875740.html  (spring和springMVC的关系)

https://www.cnblogs.com/leeSmall/p/7653494.html  (spring各个注解的作用与使用)

http://www.jb51.net/article/137255.htm  Spring AOP注解失效及解决办法

https://www.cnblogs.com/hongwz/p/5764917.html  spring AOP原理透彻讲解(例子)

https://blog.csdn.net/u013126379/article/details/52121096  浅谈spring的两种代理的区别

https://blog.csdn.net/a745233700/article/details/80959716  spring面试题整理

https://blog.csdn.net/panhaigang123/article/details/79587612 spring boot与spring cloud面试题整理

 十三、servlet技术

什么是servlet?与CGI的区别是什么?

servlet的生命周期?什么时候创建?什么时候销毁?DispatcherServlet什么时候创建?servlet的创建方式?

https://www.cnblogs.com/disneyland/p/4692339.html  servlet什么时候被实例化

https://blog.csdn.net/u012129558/article/details/52329543  servlet单例理解

十四、AJAX

请求是同步请求还是异步请求?

十五、hibernate与mybatis

MyBatis了解吗?与hibernate有什么区别?

https://blog.csdn.net/eaphyy/article/details/71190441  mybatis常见面试题

https://blog.csdn.net/a745233700/article/details/80977133  mybatis面试题附答案

https://www.cnblogs.com/wang-meng/p/5701990.html (mybatis开发配置总结,总结好)

十六、算法题

整数的反转?

常用排序算法有哪些?冒泡排序算法思路?快速排序算法思路?

两个有序的整型数组如何合并成一个有序的数组?

如何判断一个链表有没有环?

如何实现字符串的反转?不准用String类自带的方法

如何判断一个数是否是2的n次方?

如何层序遍历二叉树并输出每个节点?

最短路径算法?(只被问到一次)

十七、redis(若用过redis缓存会问)

redis都有哪几种数据结构?有哪些优点?适用于什么场合?

与memache有什么区别?

https://www.cnblogs.com/kevingrace/p/5685332.html  redis主从复制原理总结(详细)

https://blog.csdn.net/chuanxincui/article/details/89306882  RDB与AOF的优缺点

https://www.cnblogs.com/miaozhihang/p/9517714.html   快照与aof的区别

十八、maven工具(若用到会问)

使用maven时的常用命令?

如何解决jar包冲突?

十九、开放题

进程之间如何通讯?(被问过一次)

什么是敏捷开发?

jdk8有什么新特性?(重要)

什么是restful风格?(重要)

tomcat服务器的启动参数都配置过哪些?

区域链了解不?(被问过一次)

几种加密算法了解吗?比如base64加密,md5加密?Unicode url加密?

都用过什么工具?比如画原型用的工具,设计流程用的工具。

https://blog.csdn.net/qinmengdeCluntan/article/details/77532883?locationNum=5&fps=1  集群环境下如何实现session共享?(说下思路会加分)

https://www.bilibili.com/video/av14372754/  jdk8新特性视频讲解

https://blog.csdn.net/xlgen157387/article/details/79036337  分布式锁简单入门以及三种实现方式(说下思路会加分)

二十、项目题

一般会问你项目中遇到过哪些问题,是怎么解决的?

你们系统的整体架构是什么?

posted @ 2018-05-12 11:58  A^_^Ran  阅读(946)  评论(0编辑  收藏  举报