Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Java学习路线 #1

Open
soarpenguin opened this issue Jun 4, 2017 · 0 comments
Open

Java学习路线 #1

soarpenguin opened this issue Jun 4, 2017 · 0 comments

Comments

@soarpenguin
Copy link
Contributor

Java github issues:

https://github.com/pzxwhc/MineKnowContainer/issues

补充些网站:

并发编程网
cmsblogs-chenssy-记录、分享JAVA技术
Java并发编程 (海子的博客园)
依然didala (自己的一个网站,当然和上述是没法比,但对一些 Java 技术也花了点时间研究)

———————————以下原文———————————
可以参考从这几方面来看Java:

JVM

Java JVM:总结 · Issue #63 · pzxwhc/MineKnowContainer

垃圾算法和垃圾收集器相关

Java JVM:垃圾收集算法 - 标记清除算法(伪代码实现与深入分析) · Issue #86 · pzxwhc/MineKnowContainer
Java JVM:垃圾收集算法 - 标记整理算法(伪代码实现与深入分析) · Issue #87 · pzxwhc/MineKnowContainer
Java JVM:垃圾收集算法 - 复制算法(伪代码实现与深入分析) · Issue #88 · pzxwhc/MineKnowContainer
Java JVM:CMS 垃圾收集器 - 工作原理,浮动垃圾,三色标记法等 · Issue #89 · pzxwhc/MineKnowContainer
Java JVM:G1 垃圾收集器概述 · Issue #90 · pzxwhc/MineKnowContainer
Java JVM:垃圾收集器(转载) · Issue #61 · pzxwhc/MineKnowContainer

内存相关

Java JVM:内存结构 · Issue #24 · pzxwhc/MineKnowContainer
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

记忆方法:产生的原因(内存模型)--> 解决的办法(synchronized,Lock,Condition,volatile,ThreadLoad,AtomicInteger,CAS)--> 优化(生产者消费者模式(从源头分析),Condition)

集合

Java 集合总结(Collection系列与Map系列) · Issue #75 · pzxwhc/MineKnowContainer · GitHub
Java 集合:Collection,List,ArrayList,Vector,LinkedList(实现方式,对比) · Issue #18 · pzxwhc/MineKnowContainer · GitHub
Java 集合:HashMap(put方法的实现与哈希冲突) · Issue #19 · pzxwhc/MineKnowContainer
Java 集合:LinkedHashMap工作原理及实现 · Issue #76 · pzxwhc/MineKnowContainer
Java 集合:TreeMap 的使用(不包括原理,仅仅是简单的使用 demo) · Issue #82 · pzxwhc/MineKnowContainer
Java 集合:HashSet ,TreeSet 实现原理 · Issue #21 · pzxwhc/MineKnowContainer
扩展 — 第6条:WeakHashMap扩展知识1(原理与Reference相关):依然didala
第5章:Java 丰富的并发基础构建模块1 - 容器部分:依然didala

记忆方法:Collection系列(当你分析他们的原理 ArrayList,LinkedList,Vector 作为一类记比较好),Map系列(HashMap,HashTable,ConcurrentHashMap作为一类记)
IO

Java IO:操作系统的IO处理过程以及5种网络IO模型 · Issue #22 · pzxwhc/MineKnowContainer · GitHub
Java IO:常见Java IO流介绍(ByteArrayInputStream,ObjectInputStream,BufferedInputStream) · Issue #23 · pzxwhc/MineKnowContainer · GitHub

记忆方法:重点理解 IO模型(阻塞式IO,非阻塞式IO,IO复用,信号驱动IO,异步IO)理解了这些,会有助于理解 NIO,AIO。另外,需要知道 设计模式中的装饰器模式,会比较好理解Java的IO包。
小知识点
个人觉得 Java 大体上可以切分为上面4个大部分。但其实还会有很多小知识点。比如说

Java 关键字:abstract,final,static 等。
关键类:Object类的几个方法, String类,Thread类,栈,队列,Arrays,Collections  等其他Java常用类。
其他关于Java的知识,比如 jdk8的新特性(重点lambda+集合的流式操作),UML类图等。

==============
看书

入门,教材类型:《Java核心技术 卷1》(没看过,但是很多推荐,所以应该也不差,我的入门是大学有点红色封面那本耿祥义那本)《Thinking in Java》(挑章节看了一点,我同事说他大学(211,985) 的教材就是这本)
进阶:《深入理解Java虚拟机》《垃圾回收的算法与实现》(R大推荐的)
要有几W的编码量:《Effective Java》《Java并发编程实战》

这些书 都是 Java 领域比较有名的书了,分别再从 虚拟机,多线程,一些小的要注意点等方面进一步提高自己的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 系列的一些:

SpringMVC:Servlet 体系结构与 ServletContext,ServletConfig · Issue #32 · pzxwhc/MineKnowContainer · GitHub
SpringMVC:FrameworkServlet(主要用于初始化WebApplicationContext) · Issue #34 · pzxwhc/MineKnowContainer · GitHub
SpringMVC:DispatcherServlet(流程) · Issue #35 · pzxwhc/MineKnowContainer · GitHub

还有:

C3P0 数据库连接池。可以看下 Connection 究竟保存在哪里,怎么存取的。
Zookeeper 的 watcher 机制。
Quartz Java 定时器的原理
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant