java常见面试题
一、java基础知识:
1、String能否继承,
2、==和equals区别,
3、&与&&区别。
4、接口和抽象类的区别
5、public,private,protected,无修饰符的区别
6、final,finally,finalize区别
7、static和非static区别。
8、object常用的方法。hashcode,equals,clone,wait,notify
9、运行时异常和一般(编译)异常区别。常见异常有哪些?exception和error区别?
10、String,StringBuffer,StringBuilder区别。
11、Override和Overload的含义去区别。
12、Java IO与NIO。
13、socket
14、http1.0,1.1,2.0区别: https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A
15、强,软,弱,虚引用区别和使用场景
强引用: 通常我们使用new操作符创建一个对象时所返回的引用即为强引用
软引用: 若一个对象只能通过软引用到达,那么这个对象在内存不足时会被回收,可用于图片缓存中,内存不足时系统会自动回收不再使用的Bitmap
弱引用: 若一个对象只能通过弱引用到达,那么它就会被回收(即使内存充足),同样可用于图片缓存中,这时候只要Bitmap不再使用就会被回收
虚引用:虚引用是Java中最“弱”的引用,通过它甚至无法获取被引用的对象,它存在的唯一作用就是当它指向的对象回收时,它本身会被加入到引用队列中,这样我们可以知道它指向的对象何时被销毁
16、lock和synchronized区别?
二、集合
1、常用集合有哪些?
2、hashMap,hashTable,treeMap,currentHashMap区别?
3、hashMap扩容机制?
3、ArrayList和LinkedList区别?ArrayList和vector区别?
https://blog.csdn.net/t0404/article/details/51893153
三、多线程
1、如何创建线程?
2、countDownLatch和CyclicBarrier区别。
http://www.importnew.com/21889.html
3、线程池原理
4、wait(),sleep() 的区别
wait(): Object类中定义的实例方法。在指定对象上调用wait方法会让当前线程进入等待状态(前提是当前线程持有该对象的monitor),此时当前线程会释放相应对象的monitor,这样一来其它线程便有机会获取这个对象的monitor了。当其它线程获取了这个对象的monitor并进行了所需操作时,便可以调用notify方法唤醒之前进入等待状态的线程。
sleep(): Thread类中的静态方法,作用是让当前线程进入休眠状态,以便让其他线程有机会执行。进入休眠状态的线程不会释放它所持有的锁。
四、jvm
1、java虚拟机内存模型
2、jvm调优
3、垃圾回收机制有哪些,每种机制的运行机制,比较常用的组合是什么?
4、类的加载过程
https://www.cnblogs.com/xiaoxian1369/p/5498817.html
五、设计模式
1、手写设计模式,除单例模式外。
六、框架
Spring,mybatis,dubbo,kafka,mq,zookeeper等常见框架。
dubbo面试题:http://lfc-jack.iteye.com/blog/2386367
kafka:https://www.toutiao.com/i6456660580726997517/
mybatis:
1)https://www.cnblogs.com/wang-meng/p/5701990.html
2)https://blog.csdn.net/eaphyy/article/details/71190441
3)https://www.cnblogs.com/huajiezh/p/6415388.html
1、Spring Bean加载的流程,获得BeanDefition之后做了哪些操作。
2、Spring事务怎么使用, 默认事务传播行为
3、spring AOP:http://www.importnew.com/24305.html
4、Spring IOC:http://www.cnblogs.com/whx7762/p/7792881.html
七、缓存技术
redis/memcached
redis面试50问:https://blog.csdn.net/youanyyou/article/details/79243628
八、数据库
1、mysql存储引擎有哪些?区别?
2、mysql数据库索引结构。B+tree,为什么?
3、数据库锁,悲观锁,乐观锁。
4、分库分表
5、事务
九、排序
快速排序
1、写一个快速排序
https://blog.csdn.net/laizixingxingdewo/article/details/78928212
十、LINUX深入理解IO多复路
https://blog.csdn.net/davidsguo008/article/details/73556811