第一步:
你首先得清楚jdk里面的大部分类,最好都读过源代码
java.util
java.util.logging
java.util.regex
java.util.concurrent

java.sql
java.lang
java.lang.ref
java.lang.reflect
java.lang.management
java.math
java.nio
java.text
java.rmi  ----
基本没什么用
java.security
JSP 
了解基本语法,最重要的是了解怎么被编译成servlet
SErvlet
了解起规范,了解怎么加载,生命周期什么的
对其中大部分的类都比较熟悉,知道有什么方法,知道每个方法的大致作用和实现原理(要读jdk源码那么恭喜你),你基本功已经过了

第二步:
理解字节码、虚拟机、classload机制、ClassPackage类,由此派生tomcatresin的工作原理,能大致弄清楚,恭喜你,你知道不少了,java的原理,你基本明白了。其中你能把tomcat源代码读一遍就最棒了,classloadservletjsp都在这个tomcat里面给包进去了,过程中,你自然理解什么是servlet了,为了搞清楚,你必然要去读servlet规范和jsp规范了,要去学习编译原理了,要去了解怎么把字节码load进去vm中去,自然要了解sockt、线程、线程间通信这些知识,如果到了这层,恭喜你,你对java已经有比较深入的理解。

第三步:
理解socket、线程、编解码、tcp协议、尤其是http,对协议比较深入的理解过,那么你应用的难关已经过了;这时候主要是用,用socke写个聊天程序,写个udp程序,写个tcp程序,做个长连接例子,做一个异步TCP/IO,操作一下文件,自己写个小的http服务器,在tcphttp协议上,自己定义和包装一个应用协议,都是很好的锻炼。

第四步:
你应该了解存储,DB的原理,你知道一个DBMS的大致实现原理吗?你知道一个NOSQL的大致原理吗?如果这个理解了,你对存储和数据组织结构已经比较了解,那么什么sql turning已经难不倒你了;nosql你也不会只停留在一个名字上了,这个过程的最好方法是就把一个开源的nosql和开源的小型dbms彻底把代码读一遍

第五步:
实践!实践!再实践!把你学的,理解的全部用上去
其中你会学到流程、项目管理、重构、敏捷、沟通、汇报、任务分解等等知识;怎么跟QA打交道,怎么测试等等
其中你会学会linux基本操作,能略懂c++debug更好,shell

第六步:

如果你想了解外面的java动态,深入的读一下潮流的框架,未必不可,springstructibatic都可以去读读,有了前面的基础,这时候你是很容易读懂的了。xmlparserhttpparser你都可以去读读,了解怎么分析语法树;antlucencejutilwebservicesoa什么的你都可以去了解扩宽了,因为他们都是利用你上面的基础知识来运用了,各种各样的思想在实践中锻炼和总结

第七步:
总结提升,从大量的源代码的阅读和实践中,抽象出你的理解,用模型来总结,那么GOFDESING PATTEN你无师自通了


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐