本文目录一览:
JAVA如何进阶
1. 基础阶段
基础阶段, 可能需要经历1-2年吧. 这个时段, 应该多写一些基础的小程序(自己动手写的越多越好). 计算机是一门实践性很强的学科, 自己动手的东西, 记忆非常深刻, 效果要胜过读好多书. 当然, 学Java基础的时候, 书籍的选择也非常重要, 好的书籍事半功倍, 能让你打个非常好的基础. 而差的书籍, 很容易将你带入歧途, 多走很多弯路. 书籍不在多, 而在乎读得精(有些书, 你读十遍都不为过). 我记得我学Java的第一本书是的中文版, 网上有很多人都建议不要把这本书作为第一本的入门教程来看, 太难. 我却想在此极力推荐它, 这本书确实是本经典之作. 而且书中确实讲的也是Java中的一些基础技术, 没有什么太难的东西, 只不过比较厚, 学习周期比较长, 所以很多人中途会选择放弃. 其实, 这本书是一本难得的入门教程, 对Java一些基础的东西, 讲得很全, 而且也很清晰, 更重要的是, 这本书能让你养成很多好的编程习惯, 例子也很多. 建议你把大部分的例子自己去实现一遍. 我的亲身经历, 我记得当时认真的看了2遍, 花了大概7个月的时间, 不过真的有很好的效果. 另外一个教程, 就是卷一, 卷二的话可以不必要买. 卷一看完, 自己再钻研一下, 就已经能达到卷二的高度了:). 到那时, 你就会觉得看卷二没啥意思, 感觉浪费钱了. 还有一个, 就是张孝祥的Java视频, 看视频有个好处, 就是比看书的记忆要深刻, 还有很多你可以跟着视频的演示同步操作. 张孝祥的Java视频对初学者来说, 确实很有作用. 总结起来: 看这些资料的时候, 一定要多写例子, 写的越多越好!
2. 中级阶段
中级阶段, 是一个更漫长的时期, 能否突破此阶段, 跟个人的努力和天资有着很大的关系. 你不得不承认, 同样一门新技术, 有些人一个月领悟到的东西, 比你一年的都多. 这就是天资, 程序员是一个需要天才的工作. 我想, 很多人听说李一男吧, 此君就是这样的人物, 三个月的时间就能解决好大一帮人几年解决不了的问题, 给华为某部门带来了很多的收益. 哦, 这是题外话了, 与此篇的主题无关, 只是本人偶尔的感慨而已:). 这个阶段, 就需要研究很多专题性的东西了, 比如: IO的实现原理, 多线程和Java的线程模型, 网络编程, swing, RMI, reflect, EJB, JDBC等等很多很多的专题技术, 钻研得越深越好. 为了更好的提高, 研究的更深入, 你需要经常到网络上搜索资料, 这个时候往往一本书起不来很大的作用. 选一个JDK版本吧, 目前建议选用1.6, 多多研究它, 尤其是源代码(尽量! 就是尽自己最大的努力, 虽然研究透是不可能滴). 比如说: util, collection, io, nio, concurrent等等包. 可能有人会反对我说, 不是有API文档吗, 为什么还要研究这么多的源代码? 错了, 有API文档, 你仅仅只是知道怎么用而已, 而认真仔细的研读这些大牛的源码, 你就会深入更高的一个阶层, 自己的编码, 设计都会有很大的提高. 如果有能力和精力, 我建议你把JDK的每一行代码都熟悉一遍, 绝对只有好处, 没有坏处! 而且你会有些意外的收获, 比如, 当你仔细地读完concurrent包的时候(不多, 好像总共是86个类吧), 你就会对Doug Lea佩服得五体投地. 这个时候最忌碰到难题就去寻找帮助, 去网上找答案! 先把自己的脑袋想破吧, 或者等你的老板拿着砍刀冲过来要把你杀了, 再去寻求帮助吧. 对于专题的学习, 英文原版的阅读是非常必要的, 看的越多越好, 多上上IBM的developer, SUN的网站吧, 当然Javaeye也很不错:), 有很多大牛, 呵呵.
这个时候, 你应该建立自己的代码库了, 你应该自己去研究很多有意思的东西了. 从一个200多M的文件中寻找一个字段, 最坏情况(在文件的末尾咯)也只需要1秒左右的时间, 你知道吗? 这个阶段, 有很多很多类似的有趣的东西可以供你去研究, 你需要更多地关注性能, 规范性, 多解决一些疑难问题. 需要学会所有的调试技术, 运用各种性能工具, 还有JDK附带的很多工具, 这些你都要熟练得跟屠夫操刀一样. 也可以看看, 这本书总结的也不错, 对写高效稳定的Java程序有些帮助. 也可以看看模式方面的东西, 但是我建议模式不要滥用, 非得要用的时候才用, 模式往往会把问题搞复杂:). 总结起来: 这个阶段是一个由点延伸到面的过程, 经过不断的学习, 演变成全面的深入! Java技术中你没什么盲点了, 还能解决很多性能问题和疑难问题, 你就成了一个合格的程序员了! [要想成为优秀程序员, 还得对数据库和操作系统很精通.]
3. 高级阶段
高级阶段, 我就不敢妄言了. 呵呵, 我感觉自己也是处于中级阶段吧. 也是根据自己的一些经验, 谈谈自己的理解吧:
Java进阶:SE6调用编译器的两种方法[2]
三 从内存中编译
JavaCompiler不仅可以编译硬盘上的Java文件 而且还可以编译内存中的Java代码 然后使用reflection来运行它们 我们可以编写一个JavaSourceFromString类 通过这个类可以输入Java源代码 一但建立这个对象 你可以向其中输入任意的Java代码 然后编译和运行 而且无需向硬盘上写 class文件
import java lang reflect *;import java io *;import javax tools *;import javax tools JavaCompiler CompilationTask;import java util *;import java net *;public class test_pilerapi{ private static void pilerJava() throws Exception { JavaCompiler piler = ToolProvider getSystemJavaCompiler(); DiagnosticCollector diagnostics = new DiagnosticCollector(); // 定义一个StringWriter类 用于写Java程序 StringWriter writer = new StringWriter(); PrintWriter out = new PrintWriter(writer); // 开始写Java程序 out println( public class HelloWorld { ); out println( public static void main(String args[]) { ); out println( System out println(\ Hello World\ ); ); out println( } ); out println( } ); out close(); //为这段代码取个名子 HelloWorld 以便以后使用reflection调用 JavaFileObject file = new JavaSourceFromString( HelloWorld writer toString()); Iterable pilationUnits = Arrays asList(file); JavaCompiler CompilationTask task = piler getTask(null null diagnostics null null pilationUnits); boolean success = task call(); System out println( Success: + success); // 如果成功 通过reflection执行这段Java程序 if (success) { System out println( 输出 ); Class forName( HelloWorld ) getDeclaredMethod( main new Class[] { String[] class }) invoke(null new Object[] { null }); System out println( 输出 ); } } public static void main(String args[]) throws Exception { pilerJava(); } } // 用于传递源程序的JavaSourceFromString类 class JavaSourceFromString extends SimpleJavaFileObject { final String code; JavaSourceFromString(String name String code) { super(URI create( string:/// + name replace( / )+ Kind SOURCE extension) Kind SOURCE); this code = code; } @Override public CharSequence getCharContent(boolean ignoreEncodingErrors) { return code; } }
lishixinzhi/Article/program/Java/hx/201311/27240
北大青鸟设计培训:java学习有哪些阶段?
我想自学java是每一个想要进入这个行业的首选,可自学JAVA,对于初级水平的小白是难上加上。
所以我建议首先学习下HTML相关的知识,其次逐渐深入java语言知识,最后系统重新学习一边。
今天呢,IT培训就和大家简单聊聊JAVA基础以及学习的6个阶段,希望能够帮助到大家!一.JAVA基础1.Java编程语言(新版)2.Java进阶之设计模式3.JDK核心API4.MySQL基础课程5.正则表达式基础6.JDBC入门教程J2SESSH框架7.Java函数式编程8.J2SE网络通信实践9.Struts框架教程10.Hibernate框架教程11.Spring框架入门教程(新版)12.MyBatis框架基础入门13.SpringMVC简易教程二.6个阶段第一阶段:HTML、DIV+CSS及相关的前端基础知识语言;第二阶段:JavaScript及相关的JQuery、Ajax等交互相关的知识;第三阶段:JAVA基础,面对对象思想以及IO流等JAVA基础知识;第四阶段:JSP及Servlet,以及相关的JDBC连接数据库等相关的知识;第五阶段:Java及JSP、Servlet等相关知识学完后,之后就是数据库Mysql、Oracle等相关知识;第六阶段:三大主流框架Spring、Struts2及Hibernate,抑或是Mybatis等框架,学完框架基本上就OK了,就可以出去找工作了;以上,就是小编为大家整理的自学JAVA知识,文字写起来看起来就简单的几个字,但是实践起来确实不是那么容易,当然了如果你很聪明的话除外。
总之,自学的话,需要极强的自控能力,不能3天打鱼2天晒网。
只有坚持下来,才能事半功倍。