JavaSE 学习经验汇总

来源:互联网 发布:淘宝没有信誉怎么办 编辑:程序博客网 时间:2024/06/06 10:36

标题

Java Platform Standard Edition
面向对象概念的理解、Java基本语法的学习,Java桌面图形界面应用程序的开发,掌握常用的Java API等(关键是要学会怎样查阅)。
重点:Java基本语法(循环结构,数据类型,数组,运算符等)、Swing,awt,事件机制、文件输入输出流处理等
难点:面向对象思想的理解(接口、类等)、线程、socket网络编程等
视频教程推荐:孙鑫的Java基础视频教程、张孝祥的Java基础视频教程

Java Platform,Enterprise Edition
JDBC:Java数据库连接对象,基础中的基础,hibernate也只是对它的封装而已
JNDI: Java 命名与目录接口,J2EE重要规范之一
EJBS: 作为一款重量级框架,虽然这个应用慢慢的再被其他框架所取代,但EJB3.0的出现也给它带回一些生机,作为一个分布式应用的框架,也是大家要去学习和了解的知识。
RMI: 提供远程调用方法的支持,主要用于程序分布式开发
JMS: Java消息服务,中间件技术
JAVA IDL: 提供J2EE平台与CORBA交互能力和互联能力的技术
JTS: 组件事务监视器
JTA: 事务划分的一个技术
JAVAMAIL: Java中的邮件技术
JAF: Java启动框架,没研究过
Log4j,一款日志处理的框架应用
Junit:单元测试的好帮手
freemarker、velocity:两款不错的模板引擎
与Flash的交互Flex:目前很多的SNS应用就是使用到了这个技术
Web services:想知道我们论坛天气预报的效果是怎么做的吗?请关注这个技术
SOA:面向服务架构,未来技术发展的趋势之一
……
除了这些技术的东西,在这阶段,大家更多的是会接触到比如设计模式的东西,比如工厂模式、桥梁模式、单例模式等等,还要学习建模思想(比如UML建模等等)和软件生命周期等等。这些是升华大家编程思想的手段和途径。
数据库技术:
数据库几乎是程序中不可或缺的一部分,在整个软件开发中更是占据了重要作用.数据库在整个软件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做软件,就要先设计好的数据库.目前数据库几乎都是关系型数据库,代表的有: SQL Server/MySQL—不建议学这个没有多大意义。
Oracle.甲骨文公司的产品,大型数据库,正版的一般公司买不起.只有看看了,不过现在Java开发60%都是会使用到这个数据库,再加上现在甲骨文已经把sun公司收购了,JAVA和Oracle得关系更加暧昧,各位得多花些时间在这上面了.
除了这些,你还应该了解一些桌面应用软件开发用到的数据库,比如说sqlite。你在制作安装程序的时候可以把这个数据库打包进你的安装程序。
网页编程基础:
网页编程基础要学的内容也比较多,但主要集中在以下这三个技术之上,大家每天看的各种样式的网页都是它们呈现的:
HTML:超文本标记语言
CSS:层叠样式表
JavaScript:浏览器客户端脚本语言
现在更是流行各种JavaScript库,比如:jQuery、ExtJs等,你要是会其中的某一个库的使用。

The Micro Edition of the Java Platform
J2ME的学习的话,切忌不要单纯的再模拟器上测试,一定要找真机测试,真机和模拟器的效果之间差别是很大的。

入门

基础
看经典书+优秀的视频 应该是最好的入门。 书是作者经过系统化思考,梳理形成的东西, 所以系统性比较强。光看书也挺无趣的,结合视频不会让你失去兴趣。入门还有一点,有实战经验丰富的高人指导一下, 给绘出路线图, 指出攀登的方向,哪些地方有陷阱, 哪些地方不应该浪费时间, 自学就可以减少摸索,少走弯路。

书还有其他优点, 例如可以随便的翻, 找到重点反复的看。
转Java的可以看《Thinking in Java》 ,《 Java 核心技术 》; 没任何编程基础的小白《Head First Java》,

中阶
中阶要抓数据结构和算法。选一本数据《算法》和《数据结构与算法分析:Java语言描述》把书上提到的所有数据结构和算法用Java 都实现一遍, 课后作业也争取都做一遍。

集合框架, 不但要学会用, 我还会尝试着实现一遍。List, ArrayList, Set ,HashSet, Map ,HashSet 等, 要是不知道怎么写, 看看JDK的源码就可以了, 那里有最好的老师。
实现一遍能更好的明白面向对象的设计, 接口,抽象类, 具体类的关系, 怎么分离职责,会学习到设计模式中的模板方法, Iterator 等 。 并且可以顺便把泛型也学了。学泛型后,把Java Reflection(反射)也学了吧。

设计模式。《敏捷软件开发, 原则,模式,实践》里面的案例实现一遍, 真正的体会一下OOD, 了解怎么才能把合适的责任分给合适的类, 什么叫面向接口而不是面向实现编程, 什么是优先使用组合而不是继承。

多线程。重点还是理解概念,自己写线程/线程池的机会是非常罕见的,都被类库,框架给封装好了。推荐《Java并发编程实战》。

IO,架构设计的很优雅,典型的学院派, 可就是不太实用, 还是重点去理解概念和设计吧。

JVM,《深入理解Java 虚拟机》一定得看,看完写个简单的Java 反编译器。

中阶

重点内容
设计模式是必备技能,入门推荐《Head First Design》

敏捷实践,JUnit 得会, 重构得会, TDD,持续集成这些最最基本的敏捷实践也得知道,

编码规范,例如类名首字母大写, 报名要小写, 方法名要首字母小写

最佳实践 《effective java》 怎么能错过?

实战框架
用原生基础的写个项目。反思一下项目中优缺点。

研究框架,先研究框架用法及原理,再结合经典书籍整体学习框架思想和设计。如JavaEE中Spring 的作者,《J2EE development without EJB》 。

用框架封装一套自己的实用框架。

高阶

学习源代码。JDK中的 Java Collection 源码 : 老祖宗的东西绝对经典。JUnit 源码 : 看看Eric Gamma 和 Kent beck 是怎么通过模式来创建系统的。SpringSide : 以Spring Framework为核心的,Pragmatic风格的JavaEE应用参考示例,是JavaEE世界中的主流技术选型,最佳实践的总结与演示。此外我还是会研究下本世纪初著名的Jive论坛, 虽然非常古老, 虽然源码学院派十足, 但简直是设计模式的大本营, 都是活生生的应用的例子。里边有个用代理模式实现权限控制, 让我记忆犹新。

标题

  • Java NIO:NIO概述
  • Java中的static关键字解析
  • java图片压缩
  • Java URL类源码剖析
  • Java 的未来
  • Java中静态代码块的用法 static用法详解
  • JAVA中CAS原理详解
  • java线程详解及高并发编程庖丁解牛
  • Java老司机,87条总结
  • soap ui
  • 一个牛人给Java初学者的建议
  • 图说Java —— 理解Java机制最受欢迎的8幅图
  • JIVE论坛系统详细介绍学javaEE经典案例
  • Java管理扩展指南之JMX技术总览
  • 图说Java —— 理解Java机制最受欢迎的8幅图
  • 成为Java顶尖程序员 ,看这11本书就够了
  • 汇总Java生态圈常用技术框架、开源中间件、系统架构、项目管理、经典案例、数据库、线上运维等知识
  • Java多线程编程实战指南(核心篇)读书笔记(一)
  • 10种简单的Java性能优化
  • IO多路复用到底是不是异步的?
  • Java引用类型:强引用、软引用、弱引用和虚引用
  • Java内存模型
  • 4 Techniques for Writing Better Java
  • Java异常的深入研究与分析

中阶

  • 写出优质Java代码的4个技巧

社区/博客专栏

  • DT部落
  • 给Java程序猿们推荐一些值得一看的好书
  • 动力节点
  • 廖雪峰的官方网站
  • how2j 一个不错的Java学习网站,基于Lol主题的。