问题描述
- 各位大神快进来java解答
-
本人大二学生,以后想往java方向发展,到课堂学的东西毕竟有限,所以希望各位有没有什么好的建议对于我在java中该干些什么,或者买些什么书
解决方案
首先,Java基础无语法系统了解,会用也还了解其原理,经典书籍<<Java编程思想>>和<<Java编程规范>>;其次,就是Java Web l技术框架,系统地了解,学会用;最后就是进阶学习,Java虚拟机底层知识,Java并发编程基础。关注jdk源代码,那都是大师级人物的产出。总之,多编码,多思考,一勤天下无难事。
解决方案二:
1、基本语法
这包括static、final、transient等关键字的作用,foreach循环的原理等等。今天面试我问你static关键字有哪些作用,如果你答出static
修饰变量、修饰方法我会认为你合格,答出静态块,我会认为你不错,答出静态内部类我会认为你很好,答出静态导包我会对你很满意,因
为能看出你非常热衷研究技术。
最深入的一次,LZ记得面试官直接问到了我volatile关键字的底层实现原理(顺便插一句,面试和被面试本身就是相对的,面试官能问这个
问题同时也让面试者感觉到面试官也是一个喜爱研究技术的人,增加了面试者对公司的好感,LZ最终选择的就是问了这个问题的公司),不
要觉得这太吹毛求疵了----越简单的问题越能看出一个人的水平,别人对你技术的考量绝大多数都是以深度优先、广度次之为标准的,切记
。
2、集合
非常重要,也是必问的内容。基本上就是List、Map、Set,问的是各种实现类的底层实现原理,实现类的优缺点。
集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,能流利作答,当然能掌握
CopyOnWrite容器和Queue是再好不过的了。另外多说一句,ConcurrentHashMap的问题在面试中问得特别多,大概是因为这个类可以衍生出非
常多的问题,关于ConcurrentHashMap,我给网友朋友们提供三点回答或者是研究方向:
(1)ConcurrentHashMap的锁分段技术
(2)ConcurrentHashMap的读是否要加锁,为什么
(3)ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器
3、设计模式
本来以为蛮重要的一块内容,结果只在阿里巴巴B2B事业部面试的时候被问了一次,当时问的是装饰器模式。
当然咱们不能这么功利,为了面试而学习,设计模式在工作中还是非常重要、非常有用的,23种设计模式中重点研究常用的十来种就可以了
,面试中关于设计模式的问答主要是三个方向:
(1)你的项目中用到了哪些设计模式,如何使用
(2)知道常用设计模式的优缺点
(3)能画出常用设计模式的UML图
4、多线程
文章总结过多线程的40个问题,可以参看40个Java多线程问题总结。
5、IO
6、JDK源码
7、框架
8、数据库
9、数据结构和算法分析
10、Java虚拟机
解决方案三:
可以先学习java web基础,包括HTML、JSP、JDBC、JavaScript、Servlet;
然后再学一些框架:Spring、SpringMVC、Hibernate;前端的jquery、bootstrap等,每一种类型的框架学习一种就可以。
当然数据库SQL是基础,计算机专业的同学应该都会。
搞清楚以上知识,java web技术体系会有一个比较全面的了解。然后可以选择一个方向深入学习,比如分布式系统、大数据。