java学习路线
来源:网络整理 网络用户发布,如有版权联系网管删除 2018-07-23
分享下个人经验,我是从这几方面来看Java:
JVM
- Java JVM:内存结构和相关参数含义 Issue #24 pzxwhc/MineKnowContainer GitHub
- Java JVM:内存溢出(栈溢出,堆溢出,持久代溢出以及 nable to create native thread) Issue #25 pzxwhc/MineKnowContainer GitHub
- Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情) Issue #26 pzxwhc/MineKnowContainer GitHub
- Java JVM:编译加载机制与自定义类加载器 Issue #27 pzxwhc/MineKnowContainer GitHub
- Java 多线程:多线程生成的原因(Java内存模型与i++操作解析) Issue #6 pzxwhc/MineKnowContainer GitHub
- Java 多线程:生产者消费者问题 Issue #8 pzxwhc/MineKnowContainer GitHub
- Java 多线程:Lock关键字(接口方法分析,ReentrantLock,ReadWriteLock) Issue #16 pzxwhc/MineKnowContainer GitHub
- Java 多线程:Condition关键字 Issue #10 pzxwhc/MineKnowContainer GitHub
- Java 多线程:synchronized 关键字用法(修饰类,方法,静态方法,代码块) Issue #7 pzxwhc/MineKnowContainer GitHub
- Java 多线程:volatile关键字 Issue #11 pzxwhc/MineKnowContainer GitHub
- Java 多线程:ThreadLocal关键字 Issue #12 pzxwhc/MineKnowContainer GitHub
- Java 多线程:InheritableThreadLocal 实现原理 Issue #20 pzxwhc/MineKnowContainer GitHub
- Java 多线程:线程池实现原理 Issue #9 pzxwhc/MineKnowContainer GitHub
- Java 多线程:CAS 与 AtomicInteger(乐观锁) Issue #17 pzxwhc/MineKnowContainer GitHub
集合
- Java 集合:Collection,List,ArrayList,Vector,LinkedList(实现方式,对比) Issue #18 pzxwhc/MineKnowContainer GitHub
- Java 集合:HashMap(put方法的实现 与 哈希冲突) Issue #19 pzxwhc/MineKnowContainer GitHub
- Java 集合:HashSet,HashTable,以及 ConcurrentHashMap 概念 Issue #21 pzxwhc/MineKnowContainer GitHub
IO
- Java IO:操作系统的IO处理过程以及5种网络IO模型 Issue #22 pzxwhc/MineKnowContainer GitHub
- Java IO:常见Java IO流介绍(ByteArrayInputStream,ObjectInputStream,BufferedInputStream) Issue #23 pzxwhc/MineKnowContainer GitHub
小知识点
个人觉得 Java 大体上可以切分为上面4个大部分。但其实还会有很多小知识点。比如说
- Java 关键字:abstract,final,static 等。
- 关键类:Object类的几个方法, String类,Thread类,栈,队列的一些实现类 等其他Java常用类。
- 其他关于Java的知识,比如 jdk8的新特性(重点lambda+集合的流式操作),UML类图等。
==============
看书
基础看完,建议看看《Effective Java》《Thinking in java》《深入理解Java虚拟机》《Java并发编程实战》这四本神书 分别再从 虚拟机,多线程,一些小的要注意点等方面 进一步提高自己的Java能力。
实战
Talk is cheap,知而不行等于不知。 参考:本题的 EZLippi 的答案,此时可以看下一些 java 后端的框架,例如可以研究一下 Spring,如:
- Spring:AOP(JDK动态代理与CGLIB代理) Issue #28 pzxwhc/MineKnowContainer GitHub
- Spring:DI原理(包括如何创建实体和具体注入) Issue #30 pzxwhc/MineKnowContainer GitHub
- Spring:异常统一处理的三种方式与Rest接口异常的处理 Issue #29 pzxwhc/MineKnowContainer GitHub
或者 看看 SpringMVC 的源码,毕竟这些都是比较流行的基于Java的一些技术:
- SpringMVC:Servlet 体系结构与 ServletContext,ServletConfig Issue #32 pzxwhc/MineKnowContainer GitHub
- SpringMVC:FrameworkServlet(主要用于初始化WebApplicationContext) Issue #34 pzxwhc/MineKnowContainer GitHub
- SpringMVC:DispatcherServlet(流程) Issue #35 pzxwhc/MineKnowContainer GitHub
在这里,你可能会对 编译期和运行期不太熟悉,对反射不太了解,对Java的异常之前好像也没怎么接触过,又或者,你不知道 abstract,final,try-catch-finally 的实际运用场景是什么。在这里,都可以接触到。
==============
最后:
上面那些文章很多都是泛泛而谈,主要是自己也不太理解。。。。。一起努力吧。。不过就像R神说的:写出来,说出来才知道对不对,知道不对才能改正,改正了才能成长,对不。
在技术方面,希望大家眼里都容不得沙子。如果有不对的地方或者需要改进的地方希望可以指出,万分感谢。最近慢慢转到 github 来写了,欢迎一起交流,希望认识更多喜欢Java的朋友:GitHub - pzxwhc/MineKnowContainer: 知识库
==============
查看评论 回复