JAVA面试宝典

写在最前面

在网上看到了一份面试题,不过没有面试答案,于是为了阅读方便,整理了一下方案,下面附上原文地址。
如有侵权,请联系我,立马删除。

面试题

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

说一下 spring 的事务隔离?

你可能感兴趣的:(JAVA面试宝典)