我自己总结的Java学习的系统知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star: https://github.com/Snailclimb/Java-Guide
笔者建议初学者学习Java的方式:看书+视频+实践(初学最难的问题其实还是在环境)
Java学习书籍推荐
《Head First Java.第二版》:
可以说是我的Java启蒙书籍了,特别适合新手读当然也适合我们用来温故Java知识点。
《Java核心技术卷1+卷2》:
很棒的两本书,建议有点Java基础之后再读,介绍的还是比较深入的,非常推荐。
《Java编程思想(第4版)》:
这本书要常读,初学者可以快速概览,中等程序员可以深入看看java,老鸟还可以用之回顾java的体系。这本书之所以厉害,因为它在无形中整合了设计模式,这本书之所以难读,也恰恰在于他对设计模式的整合是无形的。
一些Java方向学习书籍汇总(PDF仅为预览版本,建议购买正版):
链接:https://pan.baidu.com/s/1g0mjyJX5ZWU706IKjDSzeg 密码:b88d
Java学习视频推荐
以下视频整理自慕课网Java工程师路径相关免费课程。
- 语法基础: 《Java入门第一季》
- 面向对象: 《Java入门第二季》
- 常用工具类: 《Java入门第三季》
- 文件操作: 《二进制基础》 -> 《文件传输基础——Java IO流》 -> 《Java眼中的XML—文件读取》 ->《Java眼中的XML 文件写入》
- 网路Socket编程: 《Java Socket应用—通信是这样练成的》
- Java进阶之反射与注解: 《反射——Java高级开发必须懂的》 -> 《全面解析Java注解》
Java基础面试常见问题汇总
- 重载和重写的区别
- 自动装箱与拆箱
- 成员变量与局部变量的区别有那些?
- 静态方法和实例方法有何不同?
- equals 和 == 的区别?
- 创建线程有几种不同的方式?你喜欢哪一种?为什么?
- 线程有哪些基本状态?这些状态是如何定义的?
- finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?
- List,Set,Map三者的区别及总结
- Arraylist 与 LinkedList 区别
- ArrayList 与 Vector 区别(为什么要用Arraylist取代Vector呢?)
- HashMap 和 Hashtable 的区别
- HashSet 和 HashMap 区别
- HashMap 和 ConcurrentHashMap 的区别
- HashSet如何检查重复
- comparable 和 comparator的区别?
- 如何对Object的list排序?
- 如何实现数组与List的相互转换?
- 如何求ArrayList集合的交集 并集 差集 去重复并集
- HashMap 的工作原理及代码实现
- ConcurrentHashMap 的工作原理及代码实现
- 集合框架底层数据结构总结
- 集合的选用
- 集合的常用方法
- 集合的选用
超详细的Java面试题总结(四 )之JavaWeb基础知识总结
- 简述Servlet
- 阐述Servlet和CGI的区别?
- Servlet接口中有哪些方法及Servlet生命周期探秘
- get和post请求的区别?
- 转发(Forward)和重定向(Redirect)的区别?
- Servlet与线程安全
- JSP和Servlet是什么关系?
- JSP工作原理:
- JSP有哪些内置对象?作用分别是什么?
- Request对象的主要方法有哪些?
- request.getAttribute()和 request.getParameter()有何区别?
- JSP九大内置对象,七大动作,三大指令-
- 实现会话跟踪的技术有哪些?
- Cookie和Session的的区别?