**我自己总结的Java学习的系统知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star:** [https://github.com/Snailclimb/Java-Guide](https://github.com/Snailclimb/Java-Guide) > ### 学习书籍推荐 **《Head First Java.第二版》:** 可以说是我的Java启蒙书籍了,特别适合新手读当然也适合我们用来温故Java知识点。 **《Java核心技术卷1+卷2》:** 很棒的两本书,建议有点Java基础之后再读,介绍的还是比较深入的,非常推荐。 **《Java编程思想(第4版)》:** 这本书要常读,初学者可以快速概览,中等程序员可以深入看看java,老鸟还可以用之回顾java的体系。这本书之所以厉害,因为它在无形中整合了设计模式,这本书之所以难读,也恰恰在于他对设计模式的整合是无形的。 > ### 学习视频推荐 [Java工程师学习路径完整版](https://www.imooc.com/course/programdetail/pid/31) (慕课网Java工程师路径)另外大家也可以关注微信公众号:**“Java面试通关手册”** 后台回复关键字 **“资源分享第一波”** 即可领取黑马内部Javaweb工程师以及大数据工程师相关视频以及配套资料。 以下视频整理自慕课网Java工程师路径相关免费课程。 - **语法基础:** [《Java入门第一季》](https://www.imooc.com/learn/85) - **面向对象:** [《Java入门第一季》](https://www.imooc.com/learn/124) - **常用工具类:** [《Java入门第三季》](https://www.imooc.com/learn/124) - **文件操作:** [《二进制基础》](https://www.imooc.com/learn/195) -> [《文件传输基础——Java IO流》](https://www.imooc.com/learn/123) -> [《Java眼中的XML---文件读取》](https://www.imooc.com/learn/171) ->[《Java眼中的XML 文件写入》](https://www.imooc.com/learn/251) - **网路Socket编程:** [《Java Socket应用---通信是这样练成的》](https://www.imooc.com/learn/161) - **Java进阶之反射与注解:** [《反射——Java高级开发必须懂的》](https://www.imooc.com/learn/199) -> [《全面解析Java注解》](https://www.imooc.com/learn/456) > ### 面试常见问题汇总 [Java基础知识篇](https://github.com/Snailclimb/Java-Guide/blob/master/Java相关/Java基础知识面试题总结/Java基础知识篇.md) 1. 重载和重写的区别 2. 自动装箱与拆箱 3. 成员变量与局部变量的区别有那些? 4. 静态方法和实例方法有何不同? 5. equals 和 == 的区别? 6. hashcode 和 equals(你重写过 hashcode 和 equals 么,要注意什么,为什么要同时重写 hashcode 和 equals); 6. 创建线程有几种不同的方式?你喜欢哪一种?为什么? 7. 线程有哪些基本状态?这些状态是如何定义的? 8. finalize()方法什么时候被调用?析构函数(finalization)的目的是什么? [Java集合篇常见问题](https://github.com/Snailclimb/Java-Guide/blob/master/Java相关/Java基础知识面试题总结/Java集合篇常见问题.md) 1. List,Set,Map三者的区别及总结 2. Arraylist 与 LinkedList 区别 3. ArrayList 与 Vector 区别(为什么要用Arraylist取代Vector呢?) 4. HashMap 和 Hashtable 的区别 5. HashSet 和 HashMap 区别 6. HashMap 和 ConcurrentHashMap 的区别 7. HashSet如何检查重复 8. comparable 和 comparator的区别? 9. 如何对Object的list排序? 10. 如何实现数组与List的相互转换? 11. 如何求ArrayList集合的交集 并集 差集 去重复并集 12. HashMap 的工作原理及代码实现 13. ConcurrentHashMap 的工作原理及代码实现 14. 集合框架底层数据结构总结 15. 集合的选用 16. 集合的常用方法 14. 集合的选用 [JavaWeb基础知识总结](https://github.com/Snailclimb/Java-Guide/blob/master/Java相关/Java基础知识面试题总结/JavaWeb基础知识总结.md) 1. 简述Servlet 2. 阐述Servlet和CGI的区别? 3. Servlet接口中有哪些方法及Servlet生命周期探秘 4. get和post请求的区别? 5. 转发(Forward)和重定向(Redirect)的区别? 6. Servlet与线程安全 7. JSP和Servlet是什么关系? 8. JSP工作原理: 9. JSP有哪些内置对象?作用分别是什么? 10. Request对象的主要方法有哪些? 11. request.getAttribute()和 request.getParameter()有何区别? 12. JSP九大内置对象,七大动作,三大指令- 13. 实现会话跟踪的技术有哪些? 14. Cookie和Session的的区别?