写在最前面
在网上看到了一份面试题,不过没有面试答案,于是为了阅读方便,整理了一下方案,下面附上原文地址。
如有侵权,请联系我,立马删除。
面试题
https://juejin.im/post/5c788d986fb9a049f154e479?utm_source=gold_browser_extension
JDK和JRE的区别
https://www.zhihu.com/question/20317448
== 和 equals 的区别是什么?
https://www.zhihu.com/question/26872848
两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
https://www.cnblogs.com/skywang12345/p/3324958.html
final 在 java 中有什么作用?
http://www.importnew.com/7553.html
java 中的 Math.round(-1.5) 等于多少?
这个答案好神奇
Math.round(-1.5) = -1
Math.round(-1.51) = -2
String 属于基础的数据类型吗?
https://www.jianshu.com/p/1184a2e5929f
java 中操作字符串都有哪些类?它们之间有什么区别?
http://wiki.jikexueyuan.com/project/java-enhancement/java-fourteen.html
String str="i"与 String str=new String("i")一样吗?
https://blog.csdn.net/zcl_love_wx/article/details/51504224
如何将字符串反转?
http://www.importnew.com/30579.html
String 类的常用方法都有那些?
https://www.jianshu.com/p/b0d0cc411265
抽象类必须要有抽象方法吗?
https://liuxinglanyue.iteye.com/blog/811179
普通类和抽象类有哪些区别?
https://blog.csdn.net/baidu_34626715/article/details/78370306
抽象类能使用 final 修饰吗?
这个我自己来写吧
abstract修饰一个类,这个类肯定可以被继承,但是final类是不能继承的,所以有矛盾,肯定不能同时用。
接口和抽象类有什么区别?
https://www.zhihu.com/question/20149818
java 中 IO 流分为几种?
https://blog.csdn.net/zhaoyanjun6/article/details/54292148
BIO、NIO、AIO 有什么区别?
https://juejin.im/entry/598da7d16fb9a03c42431ed3
Files的常用方法都有哪些?
https://blog.csdn.net/AsheAndWine/article/details/78171580
java 容器都有哪些?
https://zhuanlan.zhihu.com/p/29421226
Collection 和 Collections 有什么区别?
https://www.cnblogs.com/guweiwei/p/6637053.html
List、Set、Map 之间的区别是什么?
https://zhuanlan.zhihu.com/p/34518772
HashMap 和 Hashtable 有什么区别?
https://www.zhihu.com/question/20581065
如何决定使用 HashMap 还是 TreeMap?
简单一句话 HashMap性能高,TreeMap能排序
说一下 HashMap 的实现原理?
https://yikun.github.io/2015/04/01/Java-HashMap%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE%9E%E7%8E%B0/
https://juejin.im/post/5a7592f4f265da4e8d42ded2
https://zhuanlan.zhihu.com/p/28501879
说一下 HashSet 的实现原理?
https://zhuanlan.zhihu.com/p/29021276
ArrayList 和 LinkedList 的区别是什么?
https://blog.csdn.net/x541211190/article/details/79597236
Iterator 怎么使用?有什么特点?
https://www.cnblogs.com/amboyna/archive/2007/09/25/904804.html
Iterator 和 ListIterator 有什么区别?
迭代器指向的位置是元素之前的位置
http://www.kaops.com/ivquest/9258
怎么确保一个集合不能被修改?
在作为参数传递之前,我们可以使用Collections.unmodifiableCollection(Collection c)方法创建一个只读集合,这将确保改变集合的任何操作都会抛出UnsupportedOperationException。
并行和并发有什么区别?
https://www.zhihu.com/question/33515481
线程和进程的区别?
https://www.zhihu.com/question/25532384
守护线程是什么?
典型应用:GC(垃圾回收器)
https://www.twle.cn/c/yufei/javatm/javatm-basic-daemon-thread.html
创建线程有哪几种方式?
https://www.cnblogs.com/felixzh/p/6036074.html
说一下 runnable 和 callable 有什么区别?
- Runnable没有返回值;Callable可以返回执行结果,是个泛型,和Future、FutureTask配合可以用来获取异步执行的结果
- Callable接口的call()方法允许抛出异常;Runnable的run()方法异常只能在内部消化,不能往上继续抛
- 注:Callalbe接口支持返回执行结果,需要调用FutureTask.get()得到,此方法会阻塞主进程的继续往下执行,如果不调用不会阻塞。
https://blog.csdn.net/hzw19920329/article/details/52383287
线程有哪些状态?
https://my.oschina.net/mingdongcheng/blog/139263
sleep() 和 wait() 有什么区别?
https://www.zhihu.com/question/23328075
notify()和 notifyAll()有什么区别?
https://www.zhihu.com/question/37601861
线程的 run()和 start()有什么区别?
https://zhuanlan.zhihu.co
m/p/49533352
创建线程池有哪几种方式?
https://blog.csdn.net/u011974987/article/details/51027795
线程池都有哪些状态?
码上后看系列
https://juejin.im/entry/58fada5d570c350058d3aaad
线程池中 submit()和 execute()方法有什么区别?
上面的看完了,这个问题就随便总结一下吧
- 接受参数不一样
- submit有返回值,execute没有
- submit能做异常处理
在 java 程序中怎么保证多线程的运行安全?
https://blog.csdn.net/xiangxianghehe/article/details/51135299
多线程锁的升级原理是什么?
https://juejin.im/post/5b4eec7df265da0fa00a118f
什么是死锁?
https://juejin.im/post/5aaf6ee76fb9a028d3753534
怎么防止死锁?
https://www.cnblogs.com/wuchanming/p/4345243.html
ThreadLocal 是什么?有哪些使用场景?
https://www.zhihu.com/question/21709953
说一下 synchronized 底层实现原理?
https://juejin.im/post/5b4eec7df265da0fa00a118f
synchronized 和 volatile 的区别是什么?
https://juejin.im/post/5ae134e76fb9a07acb3c8ea7
synchronized 和 Lock 有什么区别?
https://juejin.im/post/5a43ad786fb9a0450909cb5f
synchronized 和 ReentrantLock 区别是什么?
https://juejin.im/post/5bc87409f265da0ad701da35
说一下 atomic 的原理?
https://www.zhihu.com/question/39130725
什么是反射?
https://www.zhihu.com/question/24304289
https://www.sczyh30.com/posts/Java/java-reflection-1/#%E4%B8%80%E3%80%81%E5%9B%9E%E9%A1%BE%EF%BC%9A%E4%BB%80%E4%B9%88%E6%98%AF%E5%8F%8D%E5%B0%84%EF%BC%9F
什么是 java 序列化?什么情况下需要序列化?
https://juejin.im/post/5a7111535188257350518592
动态代理是什么?有哪些应用?
https://juejin.im/post/5b69aa63f265da0f4a4e97e0
https://juejin.im/post/5a99048a6fb9a028d5668e62
怎么实现动态代理?
https://blog.csdn.net/ljphhj/article/details/20483171
为什么要使用克隆?
简单一句话就是我们不想克隆一个对象之后,被克隆的对象修改之后,克隆的对象也被修改了
如何实现对象克隆?
https://www.cnblogs.com/Qian123/p/5710533.html
深拷贝和浅拷贝区别是什么?
https://segmentfault.com/a/1190000010648514
jsp 和 servlet 有什么区别?
https://www.zhihu.com/question/37962386
jsp 有哪些内置对象?作用分别是什么?
https://www.cnblogs.com/dqh94/p/6062703.html
说一下 jsp 的 4 种作用域?
https://blog.csdn.net/koches/article/details/7785438
session 和 cookie 有什么区别?
https://juejin.im/entry/5766c29d6be3ff006a31b84e
说一下 session 的工作原理?
https://cloud.tencent.com/developer/article/1333916
如果客户端禁止 cookie 能实现 session 还能用吗?
https://cloud.tencent.com/developer/article/1097641
spring mvc 和 struts 的区别是什么?
https://www.zhihu.com/question/31565442
如何避免 sql 注入?
https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/09.4.md
https://www.zhihu.com/question/22953267
什么是 XSS 攻击,如何避免?
https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/09.3.md
https://tech.meituan.com/2018/09/27/fe-security.html
什么是 CSRF 攻击,如何避免?
https://juejin.im/post/5bc009996fb9a05d0a055192
throw 和 throws 的区别?
https://juejin.im/post/5ad5a7cb6fb9a028cd459884
final、finally、finalize 有什么区别?
https://juejin.im/post/5ca8a7de6fb9a05e746f8557
try-catch-finally 中哪个部分可以省略?
catch和finally语句不能同时省略!!!
try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
无论如何都是会执行的
但是return 值会保存下来,执行完finally再返回
finally 中最好不要有return,有的话可能会提前结束
常见的异常类有哪些?
https://www.cnblogs.com/ITtangtang/archive/2012/04/22/2465382.html
http 响应码 301 和 302 代表的是什么?有什么区别?
https://blog.51cto.com/oldboy/1774260
forward 和 redirect 的区别?
https://zhuanlan.zhihu.com/p/30439141
简述 tcp 和 udp的区别?
https://zhuanlan.zhihu.com/p/24860273
tcp 为什么要三次握手,两次不行吗?为什么?
既能保证数据的可靠性传输,又能提高传输的消息
https://www.zhihu.com/question/24853633
说一下 tcp 粘包是怎么产生的?
https://zhuanlan.zhihu.com/p/41709589
https://juejin.im/post/5b67902f6fb9a04fc67c1a24
OSI 的七层模型都有哪些?
https://juejin.im/post/59eb06b1f265da430f313c7f
get 和 post 请求有哪些区别?
https://juejin.im/entry/597ca6caf265da3e301e64db
如何实现跨域?
https://juejin.im/entry/57d21eadbf22ec005f9c7d76
https://juejin.im/post/5c23993de51d457b8c1f4ee1
说一下 JSONP 实现原理?
https://juejin.im/post/5b62642b5188251aa30c80e0
说一下你熟悉的设计模式?
https://wiki.jikexueyuan.com/project/java-interview-bible/design-pattern.html
https://wiki.jikexueyuan.com/project/java-interview-bible/design-pattern.html
简单工厂和抽象工厂有什么区别?
https://www.jianshu.com/p/6d447cea14c7
为什么要使用 spring?
https://my.oschina.net/zmixed/blog/719597
解释一下什么是 aop?
https://juejin.im/entry/5976f8af6fb9a06bbc4b3214
https://www.zhihu.com/question/24863332
解释一下什么是 ioc?
https://juejin.im/post/5a1cd072f265da432240ef18
https://juejin.im/post/5a1cd072f265da432240ef18
spring 有哪些主要模块?
https://www.ibm.com/developerworks/cn/java/wa-spring1/index.html
spring 常用的注入方式有哪些?
https://my.oschina.net/garyun/blog/633660
spring 中的 bean 是线程安全的吗?
https://juejin.im/post/5a0045ef5188254de169968e
spring 支持几种 bean 的作用域?
https://zhuanlan.zhihu.com/p/44875302
spring 自动装配 bean 有哪些方式?
https://juejin.im/post/5c84b5285188257c5b477177
spring 事务实现方式有哪些?
- 基于 TransactionProxyFactoryBean的声明式事务管理
- 基于 @Transactional 的声明式事务管理
- 基于Aspectj AOP配置事务
https://juejin.im/post/5b00c52ef265da0b95276091
https://blog.csdn.net/jiangzhexi/article/details/80652107