赞
踩
这包括static、final、transient等关键字的作用,foreach循环的原理等等。比如面试的时候面试官问你static关键字有哪些作用,如果你答出static修饰变量、修饰方法面试官会认为你合格,答出静态块,会认为你不错,答出静态内部类会认为你很好,答出静态导包会对你很满意,因为能看出你非常热衷研究技术。
集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,当然能掌握CopyOnWrite容器和Queue是再好不过的了。
还需要了解ConcurrentHashMap的锁分段技术,ConcurrentHashMap的读是否要加锁,为什么,ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器
知道常用设计模式的优缺点。
能画出常用设计模式的UML图。
Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态。
假如有Thread1、Thread2、ThreaD3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?
常用的线程池有几种?这几种线程池之间有什么区别和联系?线程池的实现原理是怎么样的?
synchronized和ReentrantLock的区别、synchronized锁普通方法和锁静态方法、死锁的原理及排查方法等等。
要想拿高工资,JDK源码不可不读,总结一下比较重要的源码:
union和union all的区别、left join、几种索引及其区别,数据库性能的优化。
数组、链表是基础,栈和队列深入一些但也不难,树挺重要的,比较重要的树AVL树、红黑树,可以不了解它们的具体实现,但是要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。
1.1 Java 基础语法
1.2 Java 常用集合
1.3 Java IO 和 NIO
2.1 线程的基本概念
2.2 线程池
2.3 锁
PS:这是本人之前面试过程中遇到的较多的以及不太懂的问题、本人觉得比较重要的。也参考了一些网上别人的面试问题,欢迎大家补充。
觉得有收获的同学,也可以关注一下我的公众号:《Java技术zhai》,不定期的干货技术分享,带你重新领略架构的魅力!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。