J2EE学习路线图

java android 线路
javase 基础:
java 集合, 泛型, 异常处理,Annotation, 输入输出, 多线程, 网络编程, 类加载机制和反射,
 
java web:
web 运作原理,servlet,jsp 技术,mvc 设计模式,oracle,JDBC,http 会话使用与管理,EL 表达式语言,自定义 JSP 标签,JSTL core 标签库,简单标签和标签文件,过滤器,监听器
 
android 应用开发:
应 用与开发环境,界面编程,事件处理,activity 与 fragment,intent 和 intentfilter, 应用资源,图形与图像处理,数据存储 与 IO,使用 contentProvider,多媒体应用开发,opengl 与 3d 应用,网络应用,管理桌面, 传感应用开发,GPS 应用开发,使用 Google Map 服务,service 与 broadcastReceiver
 
项目实战:
12306 客户端,新浪微博客户端,手机卫视,汽车之家,捕鱼达人,
 
android 内核开发:

深 入了解 Android NDK, 用 JNI 实现原生代码通信,使用 swig 自动生成 INI 代码,日志调试及故障处理,android NDK 程序逆向分析,动态调试 android 程序,android 软件破解技术,android 系统移植,linux,进入 android dalvik 虚拟机,android 可执行文件,静态分析 android 程序

 

 

 

 

 

 

传智播客 J2EE 学习路线图

(2015 版)

第一步:JavaSE 部分

  • 第 1 阶段 Java 基础知识

    >> 计算机基础知识
    >> Java 开发环境的搭建和应用
    >> 进制转换
    >> 有符号数据表示法 (原码, 反码, 补码)
    >> Java 语法基础 ( 关键字, 标识符, 注释,
          常量, 变量, 数据类型, 运算符 )
    >> 程序流程控制语句及其应用
          (if,switch,for,while)
    >> 函数及其应用
    >> 数组及其应用
    >> 水仙花,裴波纳契数列,数据加密
          等经典问题的详解讲解。

    				</li>
    
  • 第 2 阶段 面向对象

    >> 面向对象思想
    >> 类与对象
    >> 类的组成
    >> 封装及其应用
    >> 继承及其应用
    >> 多态及其应用
    >> 抽象类及其应用
    >> 接口及其应用
    >> 包, 导包及其应用
    >> 单例设计模式,简单工厂模式和工厂
          方法模式,模板设计模式。

    				</li>
    
  • 第 3 阶段 Eclipse 的使用和常用 API

    >> Eclipse 的安装和使用
    >> Java API 的介绍和使用
    >> 字符串类的常见操作
    >> 正则表达式的使用
    >> 日期类的使用
    >> 集合体系结构及其使用
    >> 异常体系结构及其使用
    >> File 类的概述及其使用
    >> IO 流体系结构及其使用
    >> 递归算法,装饰设计模式,泛型的使
          用,增强 for 循环,可变参数,静态导
          入等特性的详细讲解。

    				</li>
    
  • 第 4 阶段 JavaSE 高级

    >> 多线程概述及其应用
    >> 多线程的线程安全问题及解决方案
    >> 死锁问题
    >> 多线程的生产者消费者问题
    >> 线程组,线程池问题
    >> GUI 的概述和基本使用
    >> GUI 中事件监听机制及适配器设计模式
    >> 网络编程概述及其应用

    >> UDP 协议发送和接收数据
    >> TCP 协议发送和接收数据
    >> 反射的概述及其应用
    >> 反射获取类中的成员并使用
    >> 反射越过泛型检查
    >> 反射运行配置文件的内容
    >> 多线程群聊,聊天室的编写,文件上传
          服务器,类加载器,反射及代理。

    					</div>
    
    
    
    
    
    
    
    
    
    				</li>
    
  • 视频下载

    					<a class="a_video" href="http://java.itcast.cn/news/e393b086/ebce/4f94/9d48/94ed86bcf5ef.shtml" target="_blank" rel="noopener nofollow">&gt;&gt;基础幽默版下载</a>
    					<a class="a_video" href="http://java.itcast.cn/news/20141107/10494252523.shtml" target="_blank" rel="noopener nofollow">&gt;&gt;基础精华版下载</a>						
    				</li>
    
		</div>









	</div>

第二步:JavaWeb 部分

  • 第 1 阶段 JavaWeb 前端

    >> HTML
    >> css
    >> JavaScript
    >> dom

    				</li>
    
  • 第 2 阶段 JavaWeb 基础

    >> xml
    >> tomcat
    >> http 协议
    >> servlet
    >> request 与 resposne
    >> cookie 与 session

    				</li>
    
  • 第 3 阶段 JavaWeb 中级

    >> jsp 语法
    >> el 与 jstl
    >> 自定义标签
    >> 国际化
    >> mvc 与 jsp 模式
    >> web 三层架构

    				</li>
    
  • 第 4 阶段 JavaWeb-jdbc

    >> Mysql 数据库
    >> 多表操作
    >> jdbc 原理与 API
    >> 事务管理
    >> DataSource
    >> DbUtils
    >> 分页与其它操作

    				</li>
    
  • 第 5 阶段 JavaWeb- 高级

    >> Listener
    >> Filter
    >> 文件上传下载
    >> ajax 操作

    				</li>
    
  • 第 6 阶段 项目实战

    >> 基础加强
    >> 在线支付
    >> 项目实战

    				</li>
    
		</div>

视频下载

>>JavaWeb 视频下载

		</div>








		
	</div>

第三步:SSH 框架部分

Struts2 框架

  • 1. Struts2 入门

    >> 框架介绍
    >> Struts2 框架介绍
    >> Struts2 快速入门
    >> Struts2 配置
    >> 等等

    				</li>
    
  • 2. action

    >> action 创建方式
    >> action 配置
    >> action 调用
    >> action 访问 servlet
    >> Result 结果类型

    >> action 类型转换
    >> action 处理请求参数
    >> 请求参数校验
    >> Struts2 国际化

    					</div>
    
    
    
    
    
    
    
    
    					
    				</li>
    
  • 3. 拦截器

    >> 拦截器原理介绍
    >> 拦截器配置与使用
    >> 拦截器案例
    >> 文件上传与下载

    				</li>
    
  • 4. Struts2 核心 - 拦截器

    >> 拦截器原理介绍
    >> Struts2 拦截器配置与使用
    >> 拦截器案例
    >> 文件上传与下载
    >> 触发器

    				</li>
    
  • 5. ognl 与 valueStack

    >> ognl 介绍与基本使用
    >> valueStack 介绍与使用
    >> ognl 获取 valueStack 中
          信息

    				</li>
    
  • 6. Struts2 标签库

    >> 逻辑标签介绍
    >> 表单标签介绍

    				</li>
    
  • 7. Struts2 综合案例

    >> Struts2 防止表单重提交
    >> Struts2 中 json 插件使用
    >> struts 案例 - 员工信息管理

    				</li>
    

Spring 框架

  • 1. Spring 入门

    >> IoC 快速入门
    >> Bean 管理
    >> DI 依赖注入
    >> 注解开发

    				</li>
    
  • 2. 切面编程

    >> AOP 编程思想
    >> 自定义 AOP 实现
    >> AspectJ 编程
    >> JdbcTemplate 使用

    				</li>
    
  • 3. 事务管理

    >> 编程式事务管理
    >> 声明式事务管理
    >> 注解事务管理

    				</li>
    
  • 3. SSH 整合

    >> Struts2 整合 spring
    >> Spring 整合 Hibernate
    >> HibernateTemplate
    >> 注解整合

    				</li>
    

Hibernate 框架

  • 1. Hibernate 开发基础

    >> Hibernate 概述
    >> Hibernate 快速入门
    >> HibernateAPI 的详解及常见配置
    >> Hibernate 持久化配置及主键生成策略

    				</li>
    
  • 2. Hibernate 中级开发

    >> Hibernate 持久化对象的状态转换
    >> Hibernate 的一级缓存及原理
    >> Hibernate 关联关系配置及应用
    >> Hibernate 检索方式

    				</li>
    
  • 3. Hibernate 高级开发

    >> Hiberante 抓取策略
    >> Hibernate 事务并发及处理
    >> Hibernate 二级缓存
    >> Hibernate 查询缓存

    				</li>
    

SSH 项目实战

  • >> CVS 和 SVN
    >> CRM 项目
    >> 协调办公 OA 系统

    >> 国家电力系统
    >> BOS 宅急

    					</div>
    
    
    
    
    
    
    
    
    					
    				</li>
    
  • 视频下载

    					<a class="a_video" href="http://java.itcast.cn/news/fc5d33c4/882e/4297/87f7/b6e959417503.shtml" target="_blank" rel="noopener nofollow">&gt;&gt;Struts2框架视频下载</a>
    					<a class="a_video" href="http://java.itcast.cn/news/6b26de6c/90b2/4e5a/b420/b2b79d097825.shtml" target="_blank" rel="noopener nofollow">&gt;&gt;Spring框架视频下载</a>						
    					<a class="a_video" href="http://java.itcast.cn/news/20140121/18040612308.shtml" target="_blank" rel="noopener nofollow">&gt;&gt;Hibernate框架视频下载</a>						
    				</li>
    
		</div>








	
	</div>

第四步:JavaScript 部分

  • 第 1 阶段 JavaScript

    >> JavaScript 基础内容
    >> JavaScript 的 ECMA
          Script(语法内容)
    >> JavaScript 的 BOM
          (浏览器对象模型)
    >> JavaScript 的 DOM 编程
    >> JavaScript 常用事件
    >> JavaScript 解析 XML
    >> JavaScript 的函数
    >> JavaScript 的对象
    >> JavaScript 的闭包
    >> JavaScript 的原型
    >> JavaScript 的继承

    				</li>
    
  • 第 2 阶段 Ajax

    >> 同步交互与异步交互

     

     

    传智播客 J2EE 学习路线图

    (2014 版最新)

    第一步:JavaSE 部分

    • 第 1 阶段 Java 基础知识

      >> 计算机基础知识
      >> Java 开发环境的搭建和应用
      >> 进制转换
      >> 有符号数据表示法 (原码, 反码, 补码)
      >> Java 语法基础 ( 关键字, 标识符, 注释,
            常量, 变量, 数据类型, 运算符 )
      >> 程序流程控制语句及其应用
            (if,switch,for,while)
      >> 函数及其应用
      >> 数组及其应用
      >> 水仙花,裴波纳契数列,数据加密
            等经典问题的详解讲解。

      				</li>
      
    • 第 2 阶段 面向对象

      >> 面向对象思想
      >> 类与对象
      >> 类的组成
      >> 封装及其应用
      >> 继承及其应用
      >> 多态及其应用
      >> 抽象类及其应用
      >> 接口及其应用
      >> 包, 导包及其应用
      >> 单例设计模式,简单工厂模式和工厂
            方法模式,模板设计模式。

      				</li>
      
    • 第 3 阶段 Eclipse 的使用和常用 API

      >> Eclipse 的安装和使用
      >> Java API 的介绍和使用
      >> 字符串类的常见操作
      >> 正则表达式的使用
      >> 日期类的使用
      >> 集合体系结构及其使用
      >> 异常体系结构及其使用
      >> File 类的概述及其使用
      >> IO 流体系结构及其使用
      >> 递归算法,装饰设计模式,泛型的使
            用,增强 for 循环,可变参数,静态导
            入等特性的详细讲解。

      				</li>
      
    • 第 4 阶段 JavaSE 高级

      >> 多线程概述及其应用
      >> 多线程的线程安全问题及解决方案
      >> 死锁问题
      >> 多线程的生产者消费者问题
      >> 线程组,线程池问题
      >> GUI 的概述和基本使用
      >> GUI 中事件监听机制及适配器设计模式
      >> 网络编程概述及其应用

      >> UDP 协议发送和接收数据
      >> TCP 协议发送和接收数据
      >> 反射的概述及其应用
      >> 反射获取类中的成员并使用
      >> 反射越过泛型检查
      >> 反射运行配置文件的内容
      >> 多线程群聊,聊天室的编写,文件上传
            服务器,类加载器,反射及代理。

      					</div>
      
      
      
      
      
      
      
      
      
      
      
      
      				</li>
      
    • 视频下载

      					<a class="a_video" href="http://java.itcast.cn/news/e393b086/ebce/4f94/9d48/94ed86bcf5ef.shtml" target="_blank" rel="noopener nofollow">&gt;&gt;基础幽默版下载</a>
      					<a class="a_video" href="http://java.itcast.cn/news/20141107/10494252523.shtml" target="_blank" rel="noopener nofollow">&gt;&gt;基础精华版下载</a>						
      				</li>
      
    		</div>
    
    
    
    
    
    
    
    
    
    
    
    
    	</div>
    

    第二步:JavaWeb 部分

    • 第 1 阶段 JavaWeb 前端

      >> HTML
      >> css
      >> JavaScript
      >> dom

      				</li>
      
    • 第 2 阶段 JavaWeb 基础

      >> xml
      >> tomcat
      >> http 协议
      >> servlet
      >> request 与 resposne
      >> cookie 与 session

      				</li>
      
    • 第 3 阶段 JavaWeb 中级

      >> jsp 语法
      >> el 与 jstl
      >> 自定义标签
      >> 国际化
      >> mvc 与 jsp 模式
      >> web 三层架构

      				</li>
      
    • 第 4 阶段 JavaWeb-jdbc

      >> Mysql 数据库
      >> 多表操作
      >> jdbc 原理与 API
      >> 事务管理
      >> DataSource
      >> DbUtils
      >> 分页与其它操作

      				</li>
      
    • 第 5 阶段 JavaWeb- 高级

      >> Listener
      >> Filter
      >> 文件上传下载
      >> ajax 操作

      				</li>
      
    • 第 6 阶段 项目实战

      >> 基础加强
      >> 在线支付
      >> 项目实战

      				</li>
      
    		</div>
    

    视频下载

    >>JavaWeb 视频下载

    		</div>
    
    
    
    
    
    
    
    
    
    
    
    		
    	</div>
    

    第三步:SSH 框架部分

    Struts2 框架

    • 1. Struts2 入门

      >> 框架介绍
      >> Struts2 框架介绍
      >> Struts2 快速入门
      >> Struts2 配置
      >> 等等

      				</li>
      
    • 2. action

      >> action 创建方式
      >> action 配置
      >> action 调用
      >> action 访问 servlet
      >> Result 结果类型

      >> action 类型转换
      >> action 处理请求参数
      >> 请求参数校验
      >> Struts2 国际化

      					</div>
      
      
      
      
      
      
      
      
      
      
      
      					
      				</li>
      
    • 3. 拦截器

      >> 拦截器原理介绍
      >> 拦截器配置与使用
      >> 拦截器案例
      >> 文件上传与下载

      				</li>
      
    • 4. Struts2 核心 - 拦截器

      >> 拦截器原理介绍
      >> Struts2 拦截器配置与使用
      >> 拦截器案例
      >> 文件上传与下载
      >> 触发器

      				</li>
      
    • 5. ognl 与 valueStack

      >> ognl 介绍与基本使用
      >> valueStack 介绍与使用
      >> ognl 获取 valueStack 中
            信息

      				</li>
      
    • 6. Struts2 标签库

      >> 逻辑标签介绍
      >> 表单标签介绍

      				</li>
      
    • 7. Struts2 综合案例

      >> Struts2 防止表单重提交
      >> Struts2 中 json 插件使用
      >> struts 案例 - 员工信息管理

      				</li>
      

    Spring 框架

    • 1. Spring 入门

      >> IoC 快速入门
      >> Bean 管理
      >> DI 依赖注入
      >> 注解开发

      				</li>
      
    • 2. 切面编程

      >> AOP 编程思想
      >> 自定义 AOP 实现
      >> AspectJ 编程
      >> JdbcTemplate 使用

      				</li>
      
    • 3. 事务管理

      >> 编程式事务管理
      >> 声明式事务管理
      >> 注解事务管理

      				</li>
      
    • 3. SSH 整合

      >> Struts2 整合 spring
      >> Spring 整合 Hibernate
      >> HibernateTemplate
      >> 注解整合

      				</li>
      

    Hibernate 框架

    • 1. Hibernate 开发基础

      >> Hibernate 概述
      >> Hibernate 快速入门
      >> HibernateAPI 的详解及常见配置
      >> Hibernate 持久化配置及主键生成策略

      				</li>
      
    • 2. Hibernate 中级开发

      >> Hibernate 持久化对象的状态转换
      >> Hibernate 的一级缓存及原理
      >> Hibernate 关联关系配置及应用
      >> Hibernate 检索方式

      				</li>
      
    • 3. Hibernate 高级开发

      >> Hiberante 抓取策略
      >> Hibernate 事务并发及处理
      >> Hibernate 二级缓存
      >> Hibernate 查询缓存

      				</li>
      

    SSH 项目实战

    • >> CVS 和 SVN
      >> CRM 项目
      >> 协调办公 OA 系统

      >> 国家电力系统
      >> BOS 宅急

      					</div>
      
      
      
      
      
      
      
      
      
      
      
      					
      				</li>
      
    • 视频下载

      					<a class="a_video" href="http://java.itcast.cn/news/fc5d33c4/882e/4297/87f7/b6e959417503.shtml" target="_blank" rel="noopener nofollow">&gt;&gt;Struts2框架视频下载</a>
      					<a class="a_video" href="http://java.itcast.cn/news/6b26de6c/90b2/4e5a/b420/b2b79d097825.shtml" target="_blank" rel="noopener nofollow">&gt;&gt;Spring框架视频下载</a>						
      					<a class="a_video" href="http://java.itcast.cn/news/20140121/18040612308.shtml" target="_blank" rel="noopener nofollow">&gt;&gt;Hibernate框架视频下载</a>						
      				</li>
      
    		</div>
    
    
    
    
    
    
    
    
    
    
    
    	
    	</div>
    

    第四步:JavaScript 部分

    • 第 1 阶段 JavaScript

      >> JavaScript 基础内容
      >> JavaScript 的 ECMA
            Script(语法内容)
      >> JavaScript 的 BOM
            (浏览器对象模型)
      >> JavaScript 的 DOM 编程
      >> JavaScript 常用事件
      >> JavaScript 解析 XML
      >> JavaScript 的函数
      >> JavaScript 的对象
      >> JavaScript 的闭包
      >> JavaScript 的原型
      >> JavaScript 的继承

      				</li>
      
    • 第 2 阶段 Ajax

      >> 同步交互与异步交互
      >> 异步交互原理
      >> 异步交互实现步骤
      >> 异步交互的实际案例
      >> 请求响应使用的数据格式

      				</li>
      
    • 第 3 阶段 jQuery

      >> JavaScript 常用库介绍
      >> jQuery 基本使用
      >> jQuery 的选择器
      >> jQuery 的 DOM 操作
      >> jQuery 的事件处理
      >> jQuery 的 Ajax 操作
      >> jQuery 的常用插件

      				</li>
      
    • 第 4 阶段 EasyUI

      >> 如何使用 EasyUI
      >> EasyUI 的常用控件
      >> EasyUI 的实际案

      				</li>
      
    		</div>
    

    视频下载

    >>JavaScript 视频下载

    		</div>
    
    
    
    
    
    
    
    
    
    
    
    
    	</div>
    

    第一个项目(软件项目管理)

    • ERP
    • 协调办公 OA 系统
    • 国家电力系统
    • BOS 宅急送
    		</div>
    

    视频下载

    >> 协调办公 OA

    		</div>
    
    
    
    
    
    
    
    
    
    
    
    
    	</div>
    

    第五步:Maven + 软件项目管理

    • Maven

      >> MAVEN 的安装与配置
      >> 坐标与依赖
      >> 仓库
      >> 生命周期

      >> 聚合与继承
      >> Nexus 私服
      >> SSH 项目 +MyEclipse+maven

      					</div>
      
      
      
      
      
      
      
      
      
      
      
      					
      				</li>
      
    • 软件项目管理

    		</div>
    
    
    
    
    
    
    
    
    
    
    
    
    	</div>
    

    第六步:其他框架和技术

    • 第 1 阶段 WebService

      >> 介绍,分布式计 WebService
      >> WebService 与传统的分布式计算技较
      >> Web 服务通常应用于下列场合
      >> SOAP(Simple ObjectAccess
            Protocol)5
      >> Web 服务(Web Services)SOA 的
            服务契约 WSDL
      >> WebService 底层原理
      >> 调用网上的 web services 服务,天气
            预报
      >> 如何看 wsdl 文件?
      >> 如何发布自己的 web 服务
      >> 增强,修改 wsdl 的内容

      				</li>
      
    • 第 2 阶段 强大的的 Apache CXF
                   Web 服务

      >> Apache CXF 介绍
      >> CXF 的 WebService 应用
      >> 加入消息拦截器
      >> 升级让 CXF 支持最新的 SOAP1.2 协议
      >> Spring 框架整合 CXF Web 服务
      >> 接口方式发布 CXF Web 服务
      >> 使用 jQuery 调用 CXF Web 服务
      >> WebServices 的安全

      				</li>
      
    • 第 3 阶段 Activiti

      >> 业务流程建模与标注 BPMN 2.0
            流程引擎
      >> Activiti 基本架构和服务组件
      >> 流程代办在线流程设计器流程嵌入
            式部署
      >> 流程管理自动化
      >> ProcessEngine(流程引擎)
      >> RepositoryService(管理流程定义)
      >> RuntimeService( 执行管理,包括
            启动、推进、删除流程实例等操作 )
      >> TaskService(任务管理)
      >> HistoryService( 历史管理 ( 执行完
            的数据的管理 ))
      >> IdentityService(组织机构管理)
      >> FormService( 一个可选服务,任务
            表单管理 )

      				</li>
      
    • 第 4 阶段 Orcale

      >> SQL
      >> PL/SQL
      >> JAVA 调用存储过程和函数
      >> 触发器
      >> 数据字典
      >> 用户安全
      >> 闪回
      >> 分布式数据

      				</li>
      
    • 第 5 阶段 Spring MVC

      >> SpringMvc 三种映射处理器
      >> SpringMvc 三种控制器
      >> SpringMvc 数据返回 ajax 调用
      >> ajax 调用和重定向
      >> 文件上传与拦截器
      >> SpringMvc 与 hibernate 整合
      >> SpringMvc 注解参数

      				</li>
      
    • 第 6 阶段 MyBatis

      >> 基本增、删、改、查的使用
      >> 动态 sql
      >> 联合查询
      >> 延迟加载
      >> 一级缓存与二级缓存
      >> mybatis 缓存框架
      >> 基于注解 mybatis 开发
      >>mybatis 整 SpringMvc

      				</li>
      
    • 第 7 阶段 Mongdb

      >> 非关系型数据库的介绍
      >> mongodb 数据库存储以及交互
      >> mongdb 的数据备份
      >> mongodb 的安全控制
      >> mongodb 的集群(主从复制,
            副本集)
      >> mongdb 分布式存储
      >> mongodb 与 java 整合

      				</li>
      
    • 第 8 阶段 Lucene 和 Solr

      >> 全文检索的基本概念
      >> lucene 索引的操作(增删改查分页)
      >> lucene 索引的得分机制原理分析
      >> 分词器的原理以及使用
      >> 索引库优化
      >> 高亮器的使用
      >> lucene 各种查询条件的介绍
      >> 全文检索与数据库检索的区别

      >> lucene 在项目当中的使用以及需要
            注意的问题
      >> solr 的介绍以及环境的搭建
      >> solr 的提供的 rest 的接口介绍
      >> 使用 solrj 来调用 solr 的服务
      >> solr 的单核心与多核心的作用
      >> solr 索引结构的分析以及配置文件介绍
      >> solr 插件的介绍以及安装(与数据库
             整合插件)
      >> solr 怎么整合到我们的实际应用当中

      					</div>
      
      
      
      
      
      
      
      
      
      
      
      
      				</li>
      
    		</div>
    

    视频下载

    >>Activiti 工作流视频下载

    		</div>
    
    
    
    
    
    
    
    
    
    
    
    		
    	</div>
    

    第二个项目(软件项目管理)

    • 移动电子商城
    • 医药集中采购平台
    • 杰信商贸综合管理平台
    • 新巴巴运动网
    		</div>
    
    
    
    
    
    
    
    
    
    
    
    
    	</div>
    


    >> 异步交互原理
    >> 异步交互实现步骤
    >> 异步交互的实际案例
    >> 请求响应使用的数据格式

    				</li>
    
  • 第 3 阶段 jQuery

    >> JavaScript 常用库介绍
    >> jQuery 基本使用
    >> jQuery 的选择器
    >> jQuery 的 DOM 操作
    >> jQuery 的事件处理
    >> jQuery 的 Ajax 操作
    >> jQuery 的常用插件

    				</li>
    
  • 第 4 阶段 EasyUI

    >> 如何使用 EasyUI
    >> EasyUI 的常用控件
    >> EasyUI 的实际案

    				</li>
    
		</div>

视频下载

>>JavaScript 视频下载

		</div>









	</div>

第一个项目(软件项目管理)

  • ERP
  • 协调办公 OA 系统
  • 国家电力系统
  • BOS 宅急送
		</div>

视频下载

>> 协调办公 OA

		</div>









	</div>

第五步:Maven + 软件项目管理

  • Maven

    >> MAVEN 的安装与配置
    >> 坐标与依赖
    >> 仓库
    >> 生命周期

    >> 聚合与继承
    >> Nexus 私服
    >> SSH 项目 +MyEclipse+maven

    					</div>
    
    
    
    
    
    
    
    
    					
    				</li>
    
  • 软件项目管理

		</div>









	</div>

第六步:其他框架和技术

  • 第 1 阶段 WebService

    >> 介绍,分布式计 WebService
    >> WebService 与传统的分布式计算技较
    >> Web 服务通常应用于下列场合
    >> SOAP(Simple ObjectAccess
          Protocol)5
    >> Web 服务(Web Services)SOA 的
          服务契约 WSDL
    >> WebService 底层原理
    >> 调用网上的 web services 服务,天气
          预报
    >> 如何看 wsdl 文件?
    >> 如何发布自己的 web 服务
    >> 增强,修改 wsdl 的内容

    				</li>
    
  • 第 2 阶段 强大的的 Apache CXF
                 Web 服务

    >> Apache CXF 介绍
    >> CXF 的 WebService 应用
    >> 加入消息拦截器
    >> 升级让 CXF 支持最新的 SOAP1.2 协议
    >> Spring 框架整合 CXF Web 服务
    >> 接口方式发布 CXF Web 服务
    >> 使用 jQuery 调用 CXF Web 服务
    >> WebServices 的安全

    				</li>
    
  • 第 3 阶段 Activiti

    >> 业务流程建模与标注 BPMN 2.0
          流程引擎
    >> Activiti 基本架构和服务组件
    >> 流程代办在线流程设计器流程嵌入
          式部署
    >> 流程管理自动化
    >> ProcessEngine(流程引擎)
    >> RepositoryService(管理流程定义)
    >> RuntimeService( 执行管理,包括
          启动、推进、删除流程实例等操作 )
    >> TaskService(任务管理)
    >> HistoryService( 历史管理 ( 执行完
          的数据的管理 ))
    >> IdentityService(组织机构管理)
    >> FormService( 一个可选服务,任务
          表单管理 )

    				</li>
    
  • 第 4 阶段 Orcale

    >> SQL
    >> PL/SQL
    >> JAVA 调用存储过程和函数
    >> 触发器
    >> 数据字典
    >> 用户安全
    >> 闪回
    >> 分布式数据

    				</li>
    
  • 第 5 阶段 Spring MVC

    >> SpringMvc 三种映射处理器
    >> SpringMvc 三种控制器
    >> SpringMvc 数据返回 ajax 调用
    >> ajax 调用和重定向
    >> 文件上传与拦截器
    >> SpringMvc 与 hibernate 整合
    >> SpringMvc 注解参数

    				</li>
    
  • 第 6 阶段 MyBatis

    >> 基本增、删、改、查的使用
    >> 动态 sql
    >> 联合查询
    >> 延迟加载
    >> 一级缓存与二级缓存
    >> mybatis 缓存框架
    >> 基于注解 mybatis 开发
    >>mybatis 整 SpringMvc

    				</li>
    
  • 第 7 阶段 Mongdb

    >> 非关系型数据库的介绍
    >> mongodb 数据库存储以及交互
    >> mongdb 的数据备份
    >> mongodb 的安全控制
    >> mongodb 的集群(主从复制,
          副本集)
    >> mongdb 分布式存储
    >> mongodb 与 java 整合

    				</li>
    
  • 第 8 阶段 Lucene 和 Solr

    >> 全文检索的基本概念
    >> lucene 索引的操作(增删改查分页)
    >> lucene 索引的得分机制原理分析
    >> 分词器的原理以及使用
    >> 索引库优化
    >> 高亮器的使用
    >> lucene 各种查询条件的介绍
    >> 全文检索与数据库检索的区别

    >> lucene 在项目当中的使用以及需要
          注意的问题
    >> solr 的介绍以及环境的搭建
    >> solr 的提供的 rest 的接口介绍
    >> 使用 solrj 来调用 solr 的服务
    >> solr 的单核心与多核心的作用
    >> solr 索引结构的分析以及配置文件介绍
    >> solr 插件的介绍以及安装(与数据库
           整合插件)
    >> solr 怎么整合到我们的实际应用当中

    					</div>
    
    
    
    
    
    
    
    
    
    				</li>
    
		</div>

视频下载

>>Activiti 工作流视频下载

		</div>








		
	</div>

第二个项目(软件项目管理)

  • 移动电子商城
  • 医药集中采购平台
  • 杰信商贸综合管理平台
  • 新巴巴运动网
		</div>









	</div>

 

 

 

(注:前文对 Java 技术做了框架性的分析,包括 Java SE、Java EE 和 Java ME,让读者了解了 Java 由哪些技术组成。为了系统地学习这些技术,本文将制定一套完整的 Java 技术学习路线)

 

Java 技术体系图

Java技术路线图

 

从前文中我们已经了解到,Java SE 中包含了 Java 的基础技术,Java EE 中包含了网络应用开发的各种技术,Java ME 中包含了移动设备应用开发的各种技术,且 Java SE 是 Java EE 和 Java ME 的基础,所以对于 Java 技术的学习,有两条学习路线:

Java SE→Java EE:主要进行网络应用开发,是 Java 技术学习的一条完整路线,是基于 Java EE 的企业应用开发,是目前 Java 应用的主要方向。

Java SE→Java ME:主要进行无线应用开发,该技术路线相对简单一些。

Java SEàJava EE 的技术由低到高形成了一个完整的体系,是 Java/Java EE 工程师成长必备的技术体系,下面我们就根据 Java SEàJava EE 的技术体系制定一套完整的学习路线。

1、Java EE 技术分类

根据 Java EE 技术的分层,我们可以将 Java EE 技术分为以下 3 类。

(1)Web 应用技术

JDBC:JDBC(Java DataBase Connectivity)是一个基于标准 SQL 的数据库访问接口,主要用来连接数据库和直接调用 SQL 命令执行各种 SQL 语句和存储过程。JDBC 相当与 Microsoft 平台中的 ODBC。

Servlet:Servlet 是 Java 平台上的 CGI 技术。它在服务器端运行,用以动态生成 Web 页面。与传统的 CGI 和许多其他类似 CGI 的技术相比,Java Servlet 具有更高的效率,它依靠线程的方式来支持并发访问。

JSP(EL/JSTL):JSP(Java Server Page)是一种实现普通静态 HTML 和动态页面输出混合编码的技术,类似 Microsoft ASP、PHP 等技术。它借助内容和外观表现的分离,使得 Web 页面开发可以方便地划分给页面设计人员和程序员。在运行时态,JSP 将会被首先转换成 Servlet,它的效率和功能与 Servlet 相比没有差别。

JavaBean:封装业务逻辑的组件,可以实现业务组件的重用。

JSF:JSF(JavaServer Faces)是一种专用于构建 Java Web 应用的页面组件技术,它集成了 Servlet、JSP、JavaBean、EL、JSTL 和自定义标签等各种页面技术,方便绘制丰富的页面组件。

(2)企业级应用技术

EJB:EJB 定义了一组可重用的组件 Enterprise Beans。开发人员可以利用这些组件,像搭积木一样建立分布式应用。EJB 为它的开发人员代管了诸如安全性、远程连接、生命周期管理及事务管理等技术环节,简化了商业逻辑的开发。

JNDI:JNDI(Java Naming and Directory Interface)用于定位分布式系统中的各种对象,这些对象包括 EJB、数据库驱动、JDBC 数据源及消息连接等,还可以使用 JNDI 访问各种特定的目录服务,如 LDAP、NDS 和 DNS 等。

JMS:JMS 消息服务是一组 Java 应用接口,它提供创建、发送、接收、读取消息的服务,使得 Java 应用能够和各种消息中间件进行通信,这些消息中间件包括 IBM
MQ-Series、Microsoft MSMQ 及纯 Java 的 SonicMQ。

JavaMail:提供了一整套模拟邮件系统的抽象类。通过 JavaMail,可以创建邮件或消息应用程序。

JAF:JavaMail 利用 JavaBeans Activation Framework(JAF)来处理 MIME- 编码的邮件附件。MIME 的字节流可以被转换成 Java 对象,或者转换自 Java 对象。

JTA:JTA 提供了 Java EE 中处理事务的标准接口,它支持事务的开始、回滚和提交。同时在 Java EE 平台上提供一个 JTS(Java Transaction Service)作为标准的事务处理服务,开发人员可以使用 JTA 来使用 JTS。

JACC:JACC(Java Authorization Service Provider Contract for Containers)在 Java EE 应用服务器和特定的授权认证服务器之间定义了一个连接的协约,以便将各种授权认证服务器插入到 Java EE 产品中去。

JAAS:JAAS(Java Authentication and Authorization Service)实现了一个 Java 版本的标准 Pluggable Authentication Module(PAM)框架。它可用来进行用户身份的鉴定,还能通过对用户进行授权,实现基于用户的访问控制。

JCA:JCA(Java EE Connector Architecture)是 Java EE 体系架构的一部分,它提供了一套连接各种企业信息系统(包括 ERP、SCM、CRM 等)的体系架构,开发商只需要开发一套基于 JCA 的连接适配器,就能够在任何 Java EE 服务器中连接并使用它。

JMX:JMX(Java Management Extensions)致力于解决分布式系统管理的问题,它是一种应用编程接口、可扩展对象和方法的集合体,可以跨越各种异构操作系统平台、系统体系结构和网络传输协议,开发无缝集成的面向系统、网络和服务的应用。

(3)Web 服务技术

JAX-RPC:通过使用 JAX-RPC(Java API for XML-based RPC),已有的 Java 类或 Java 应用都能够被重新包装,并以 Web Services 的形式发布。JAX-RPC 提供了将 RPC 参数(in/out)编码和解码的 API,使开发人员可以方便地使用 SOAP 消息来完成 RPC 调用,EJB 应用也可以使用 JAX-RPC 来包装成 Web 服务。

SOA(SAAJ):SAAJ(SOAP with Attachemnts API for Java)是 JAX-RPC 的一个增强,为进行低层次的 SOAP 消息操纵提供了支持。

JAXR:JAXR(Java API for XML Registries)提供了与多种类型注册服务进行交互的 API。JAXR 运行客户端访问与 JAXR 规范相兼容的 Web Servcices,这里的 Web Services 即为注册服务。一般来说,注册服务总是以 Web Services 的形式运行的。

2、Java 技术学习路线图

Java EE 技术,从简单到复杂依次包括:Web 应用技术、企业级应用技术、Web 服务技术,除了这些技术之外,还有一些开源的框架技术,包括 Web 框架 Struts/WebWork/Tapstry,业务层框架 Spring,持久层框架 Hibernate/iBATIS,这些也都是 Java EE 的应用技术。

这些技术虽然琳琅满目,但是也是层层递进,逐步形成了 Java EE 工程师的学习技术路线。除了 Java EE 技术之外,还有 Java 基础技术、数据库基础、网页开发技术需要在前期进行掌握。在学习了所有的 Java 基础、Java EE 技术之后,再付诸于实践,你就达到了架构师的水平,进而走上技术管理的道路,可以达到技术道路的峰顶——CTO。

根据 Java 技术学习路线图,每一步所需掌握的课程有:

Java 程序员

高级特性

反射、泛型、注释符、自动装箱和拆箱、枚举类、可变

参数、可变返回类型、增强循环、静态导入

核心编程

IO、多线程、实体类、

集合类、正则表达式、

XML 和属性文件

图形编程

AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace

网路编程

Applet、Socket/TCP/UDP、NIO、RMI、CORBA

Java 语法基础

类、抽象类、接口、最终类、静态类、匿名类、内部类、异常类、编码规范

Java 开发环境

JDK、JVM、Eclipse、Linux

Java 核心编程技术

Java,设计而又非常精巧的语言。学习 Java,须从 Java 开发环境开始,到 Java 语法,再到 Java 的核心 API。

1.Java 开发入门:Java 开发环境的安装与使用,包括 JDK 命令、EclipseIDE、Linux 下 Java 程序的开发和部署等。

2.Java 语法基础:基于 JDK 和 Eclipse 环境,进行 Java 核心功能开发,掌握 Java 面向对象的语法构成,包括类、抽象类、接口、最终类、静态类、匿名类、内部类、异常的编写。

3.Java 核心 API:基于 JDK 提供的类库,掌握三大核心功能:

A。Java 核心编程: 包括 Java 编程的两大核心功能——Java 输入 / 输出流和多线程,以及常用的辅助类库——实体类、集合类、正则表达式、XML 和属性文件。

B。Java 图形编程:包括 Sun 的 GUI 库 AWT(Java2D、JavaSound、JMF)和 Swing,IBM 和 GUI 库 SWT 和 Jface;

C. Java 网路编程:Applet 组件编程,Socket 编程,NIO 非阻塞 Socket 编程、RMI 和 CORBA 分布式开发。

4.Java 高级特性:掌握 JDK1.4、JDK5.0、JDK6.0 中的 Java 高级特性,包括反射、泛型、注释,以及 java 高级特性——自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入等。

 

Java 初级、中级软件工程师

JSF 框架开发技术

配置文件(页面导航、后台 Bean)、JSF 组件库(JSF EL 语言、HTML 标签、事件处理、)、JSF 核心库(格式转换、输入验证、国际化)

Javaweb 核心开发技术

开发环境(Eclipse、Linux)

三大组件(JSP、JavaBean、Servlet)

扩展技术(EL、JSTL、Taglib)

网页开发技术

HTML、XML、CSS、JavaScript、AJAX

数据库设计技术

SQL、MySql、Oracle、SQLServer、JDBC

Web 服务器(Tomcat/Jetty/Resin/JBossWeb)

JavaWeb 核心技术:

JavaWeb 项目开发的全过程可以分解为:

网页开发 + 数据库设计——>JavaWeb 项目开发,其中,javaWeb 由 6 项基本技术组成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而 JSF 正是将这 6 种技术进行有机结合的技术框架。

 

Java 软件高级工程师

四种经典架构 SSH1、SSI1、SSH2、SSI2

Struts1 表现层框架

入门配置、核心组件、标签库、国际化、数据检验、数据库开发、Sitemesh 集成、集成 Hibernate/iBATIS

Struts2 表现层框架

入门配置、核心组件、标签库、国际化、数据校验、Sitemesh 集成转换器、拦截器、集成 Hibernate/iBATIS

Spring 业务层框架

入门配置、IoC 容器、MVC、标签库、国际化、数据校验、数据库开发

Hibernate 持久层框架

MySQL、Oracle、SQLServer iBATIS 持久层框架

MySQL、Oracle、SQLServer

Web 服务器(Tomcat/Jetty/Resin/JBossWeb)。

 

Java 系统架构师

javaWeb 开源技术与框架

工作流

规则引擎

搜索引擎

缓存引擎

任务调度

身份认证

报表服务

系统测试

集群

负载平衡

故障转移

JavaWeb 分布式开发技术

JTA(Java 事物管理)

JAAS(Java 验证和授权服务)

JNDI(Java 命名和目录服务)

JavaMail(Java 邮件服务)

JMS(java 信息服务)

WebService(web 服务)

JCA(java 连接体系)

JMS(java 管理体系)

应用服务器(JBossAS/WebLogic/WebSphere)。

JavaEE 系统架构师

面向云架构(COA)

COA、SaaS、网格计算、集群计算、分布式计算、云计算

面向资源架构(ROA)

ROA、RESI

面向 web 服务架构(SOA)

WebService、SOA、SCA、ESB、OSGI、EAI

Java 设计模式

创建式模式:抽象工厂 / 建造者 / 工厂方法 / 原型 / 单例

构造型模式:适配器 / 桥接 / 组合 / 装饰 / 外观 / 享元 / 代理

行为型模式:责任链 / 命令 / 解释器 / 迭代子 / 中介者 / 备忘录 / 观察者 / 状态 / 策略 / 模板方法 / 访问者

Java 与 UML 建模

对象图、用例图、组件图、部署图、序列图、交互图、活动图、正向工程与逆向工程

CTO 首席技术官

发展战略

技术总监

团队提升

团队建设

项目管理

产品管理

 

 

 

Java介绍
Java分为三个体系JavaSE(Java2 Platform Standard Edition,java 平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java 平台企业版),JavaME(Java 2 Platform Micro Edition,java 平台微型版)。
* Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
* Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
* Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
J2SE 就是做那种桌面安装程序样的,像 QQ,WORD 那种应用程序。
J2EE 就是做基于 Internet 的应用程序,像选课系统,企业网站,银行系统之类的。
J2ME 就是做嵌入式系统开发的,像手机游戏之类的,像现在流行的Android 操作系统
为了让大家能够更快的加入到做项目的队伍,工作室特制定以下培训计划。我们 java 组现在主要是沿着 J2EE 这条路线走,主要是这方面项目目前比较多。
一.培训阶段的划分
1. 学习 java 基础(包括基本语法,面向对象的思想的一些特性,IO,集合框架,jdbc)
2. 学习网页的基础知识(包括 html,css,javascript),这些是做好界面的必备知识。
3. 学习 javaweb 的基础知识(包括 jsp,servlet,javabean,MVC,JSTL,EL 表达式)
4. 学会使用 ssh 框架(struts.,hibernate,spring)
二.培训阶段的要求
1.Java 基础
1. 大体了解 java 的运行原理, 安装 java 虚拟机(java 虚拟编绎与运行)
2. 熟练掌握 java 语言基本语法(这个和 c 语言里面的差不多)
3. 熟练掌握面向对象编程的思想及面向对象的一些基本概念(类,对象,接口,继承,重载,覆盖)
4. 熟练掌握输入输出流(流的概念,文件的读写,终端输入)
5. 熟练掌握集合框架(List,Set,Map)
6. 熟练掌握 JDBC 连接数据库(sqlserver2000,mysql 数据库的使用及连接)
7. 熟练掌握 API 的使用,熟悉常用类库的使用。
8. 能够编写简单的图形界面程序
这个阶段是 j2se 的基础知识,特别是面向对象的知识的掌握,类和对象的概念,接口,继承,重载,覆盖,掌握基本的输入输出,然后就是集合框架,List,Set,Map 的使用,因为这些在以后的数据库操作中经常将查询结果放在里面,最后就是用 jdbc 连接数据库,也许之前学过的一些理论都感觉没兴趣,但学了数据库的连接之后,兴趣就来了,因为这是第一次写程序操作数据库。
这个阶段培养人的最大能力就是要勤查 API 文档,要多去百度,要多向别人请教。
2. 静态网页的制作
1. 了解网页的基本知识
2. 会写基本的 html 语言,能够看懂别人写的 html
3. 会使用表单
4. 使用 javascript 进行客户端验证
这个阶段要掌握一些静态网页的基本知识,学会动手做静态网页。学会用 css 控制
页面,学会用 javascript 来进行表单的验证。
3. javaweb 基础
1. 搭建开发环境
安装 Tomcat,并配置虚拟目录
安装 Eclipse,并安装 MyEclipse 插件
作用 MyEclipse 新建项目,整合 Tomcat 服务器,部署项目
2. Jsp 的基础语法
了解 JSP 基本特点
理解 JSP 的运行机制
熟练使用 JSP 声明语句
熟练使用 JSP Scriptlets
熟练使用 JSP 表达式
3. JSP 指令元素
了解 Page,include,taglib 指令的使用
了解 <jsp:forward><jsp:include><jsp:param><jsp:params>
4. JSP 内置对象 (9 个)
熟练使用 JSP 内置对象保存属性
熟练 JSP 属性保存的四个范围(page,request,session,application)
熟练使用 request,session 对象取得参数值,了解其他各对象常用的方法
5. JavaBean
熟练掌握定义 JavaBean,调用 JavaBean,设置并获得 JavaBean 属性,设置 JavaBean 的范围,移除 JavaBean
6. EL 表达式
熟练掌握使用 EL 运算符
熟练掌握 EL 内置对象
熟练掌握 EL 存取
7. JSTL 标签库
JSTL 核心标签库,数据库标签库,I18N 格式化标签库,XML 标签库和 JSTL 函数标签库
熟练掌握通过 JSTL 核心标签库定义变量,输出变量,移除变量
熟练掌握通过数据库标签库完成数据库操作
熟练掌握 XML 标签库完成 XML 文件操作
熟练掌握 I18N 标签库完成国际化操作
熟练掌握通过 JSTL 函数标签库完成常用函数操作
8. Servlet 开发
熟练掌握如何定义 Servlet
理解 Servlet 的生命周期
熟练掌握 HttpServlet 的常用方法
熟练掌握使用 Servlet 的接口
9. Filter 开发
熟练掌握如何定义并配置 Filter
理解 Filter 的生命周期
熟练掌握如何添加非法文字过滤器,字符编码过滤器,登录验证过滤器
10. Listener 开发
熟练掌握如何定义并配置 Listener
熟练掌握 ServletContextListener,ServletContextAttributeListener,HttpSessionListener,
HttpSessionAtrributeListener 接口的实现和作用
11. Dao 设计模式
了解什么是 Dao 设计模式以及其特点
熟练掌握如何定义数据库连接类
熟练掌握如何定义 Vo 类
熟练掌握如何定义 Dao 接口,Dao 类以及 Dao 工厂类
熟练掌握如何使用 Dao 实现数据库操作
12. MVC 设计模式
了解什么是 MVV 设计模式
了解 Model1 和 Model2 的区别以及优缺点
熟练掌握如何定义视图,模型,控制器部分,用 MVC 进行开发
这个阶段才是真正的接触了 javaweb 的知识,要会用 javaweb 进行动态网页的开发,
这个阶段完成后,就能做一些应用系统的开发了,javaweb 也基本上学完了,后面基本上都是些别人根据基础知识做好的框架或组件,我们只要拿来用就行。
4 . ssh 框架
1 Struts2基础
了解如何下载并安装Struts2 框架
了解Struts2运行原理
熟练掌握如何新建控制器
熟练掌握如何配置控制器
了解实现 Action 接口的优点
熟练掌握通过 Struts2 标签库简化表单
熟练掌握通过继承 ActionSupport 完成输入校验
熟练掌握页面国际化以及校验错误信息国际化
2 Struts2 高级开发
熟练使用 Struts2 内建的类型转换器
理解服务器端校验的重要性
熟练使用 addFieldError 来添加校验错误信息
熟练使用 struts2 校验框架完成输入校验
3 Hibernate 持久化
了解什么是 ORM 映射以及特点
熟练掌握配置 Hibernate 配置文件
熟练掌握创建持久化类
熟练掌握创建关系映射文件
熟练掌握通过 Hibernate 框架进行数据库操作
4 Struts2 整合 Hibernate 开发
熟练掌握持久层设计
熟练掌握业务逻辑层设计
熟练掌握 struts2 整合 hibernate 开发
5 Spring 开发
熟练掌握 Spring 的依赖注入
熟练掌握 Spring 的自动装配
熟练掌握 Spring 面向切面编程
框架的发现,提高了软件开发的速度,增强了软件开发的规范性,使人们都按照某一种模式,一种规范去进行开发。这个阶段我们要做的就是学会使用这些框架来进行开发,了解框架的原理,当然有能力的话,根据它的原理,我们可以试着看下它的源码,自己试着写框架。
三.各阶段所要掌握的工具
1.Java 基础
1. 会用记事本(或 EditPlus)编写 java 程序,在 DOS 下进行编绎与运行。(初级阶段)
2. 会用 JCreator 编写,编绎,运行。(中级阶段)
3. 会用 Eclipse,JBuilder,NetBeans 其中之一集成开发环境(高级阶段,推荐使用 Eclipse)
4. 会安装并使用 Navicate(mysql 的界面环境),sqlserver2000。(数据库)
2. 静态网页的制作
1. 会用记事本(或 EditPlus)编写 Html 语言
2. 会用 Dreamweaver 进行编写 Html 语言
3.Fireworks 切图
4.Photoshop 图片处理
3. javaweb 开发
1.Tomcat 使用(javaweb 服务器)
2.MyEclipse (javaweb 开发)
3.JUit 单元测试工具
4.PowerDesigner 数据库设计工具
5.CVS 版本控制工具
6. Rose ,visio UML 建模工具
四.各阶段所要掌握的知识点
1.Java 基础
(基本要求)
1. 了解 Java 语言的特征, 掌握 JDK(Java 开发工具包) 的安装、目录层次、
环境变量配置,Java 程序的实现过程
2.Java 语言基础
a). 数据类型:
8 种基本类型:byte,char,short,int,long,float,double,boolean
引用类型: 数组, 类, 接口
b). 结构化语句: if,if--else ,if--else if ,switch--case,while,do--while,for
c). 数组
int num[]={1,2,3,4,5}; <<==>> int []num={1,2,3,4,5};
3. 面向对象的基础
a). 类:具有相同属性和行为的一组对象的集合
b). 对象:客观存在的或可被描述的抽象对象, 具有特定属性和行为的实体。
c). 类是对象的模板 ( 原型), 对象是类的具体实例
d). 抽象、封装、继承, 多态 ( 重载, 重写, 接口多实现)
e). 构造方法 ( 默认构造器 / 参数化构造器)
f). 限制访问修饰符: private, 缺省 ( 默认),protected,public
g). 附加修饰符:final,static,abstract
h). 接口
4.Java 基础包
a). java.lang
包装类 (Byte,Character,Short,Integer,Long,Float,Double,Boolean)
其它类:String,StringBuffer,Math,Class,Object
b). java.util
随机类:Random
日期类:Date,Calender
集合框架体系:Collection,List,Set,ArrayList,LinkedList,Vector,HashMap
c). java.io
文件类:File
字节流:FileInputStream,FileOutputStream
字符流:FileReader,FileWriter,BufferedReader,BufferedWriter
二进制流:(了解) DataInputStream,DataOutputStream
构造键盘流:BufferedReader input=
new BufferedReader(new InputStreamReader(System.in));
d). java.swt /javax.swing 了解 java 图形界面及事件响应机制
容器类组件:JFrame,JPanel,JScrollPane
组件: JLabel,JTextField,JPasswordField,JTextArea,JComboBox,
JRadioButton,JCheckBox,JMenuBar,JMenu,JMenuItem
5.JDBC 数据库连接
数据库的连接步骤:
1). 加载数据库驱动类: Class.forName(driver)
2). 通过驱动程序管理器获取连接: DriverManager.getConnection(url,user,password)
3). 基于连接对象建立处理器对象 / 预处理器对象
Statement stmt=conn.createStatement();
PreparedStatement stmt=conn.prepareStatement("insert into student values(?,?,?,?,?)");
4). 处理器执行 SQL 命令 (Select/Insert/Update/Delete)
executeQuery(Select)
==> 返回查询的结果集 (ResultSet, ResultSet.getXXX( 列编号, 从 1 开始))
executeUpdate(Insert/Update/Delete) ==> 返回执行命令影响的记录行 (int)
5). 关闭各个对象
(高级要求,可以暂时不用掌握)
1. java 内存管理(垃圾收集及对象引用的内存分析)
2. 栈和堆的区别(变量比较复制,引用传递和值传递)
3. 异常处理机制(异常的原量,异常程序流程)
4. 网络通信(TCP 和 UDP 开发)开发
5. Java 多线程开发
6. Applet,JavaWebStart.SWT,JavaFX
7. 数据库存取(事务存取,SavePoint)
8. 分布式计算(RMI,CORBA)
9. java 本地调用(JNI 原理,调用 c 程序,调用 Delphi)
10. 反射机制(Annotation,动态代理)
11. Java 动态编程(Compiler API,Instrumentation,Javassist,ClassEditor)
12. JMX 资源管理容器
13. XML 开发(DOM,DOM4J,SAX,JDOM)
14. LOG4J 日志开发
15. 定时任务,日程工具 Timer,Quartz
16. ZIP 工具包
17. Excel 文档存取工具 POI
18. UML 建模
19. 设计模式
2. 静态网页的制作
(基本要求)
1. 会写简单的 HTML,并且能看懂一些正规网页(多级标题的运应。列表标记(序和无序标记)超链接标记,图像标记,表格标记,多媒体标记,表单标记

2. 用 javascript 做些简单的表单验证
3. 用 css 做排版
4. 会用 Dreamweaver 做简单的网页
(高级要求)以后从事界面开发的人,可以多下点工夫
1. 能够熟练用 Dreamweaver 制作网页
2. 能够熟练使用 Photoshop 进行图片处理
3. 能够熟练用 Fireworks 对图片进行切割
4. 能够熟练使用 javascript 做一些特效
5. 能够熟练使用 DIV+CSS 进行排版
3. javaweb 开发
(基本要求)
1. WEB 的两个发展阶段:静态,动态
2. 动态 WEB 的主要实现手段及区别
3. Tomcat 的主要作用及配置
4. 开发一个简单的交互式程序
5. MyEclipse 开发工具的使用
6. 在 MyEclipse 中使用 Tomcat 服务器
7. JSP 中的三种注释
8. 三种 SCriptlet 及其区别
9. Page 指令,包含指令
10. Jsp 连接数据库
11. 两个 include 以及 forward 语句
12. 了解九个内置对象的定义
13. 掌握 JAVAWEB 中的四种属性范围
14. 掌握 pageContext 对象的使用
15. 掌握 request,response,session,application 四种内置对象及属性的设置
16. Javabean 的主要作用,定义及使用,四种保存范围
17. 掌握 Smartupload 组件的作用,上传文件,为上传文件重命名
18. Dao 数据库操作
19. MVC 模式
20. Servlet
21. EL
22. JSTL
(高级要求,可以暂时不用掌握)
1. Filter
2. Listener
3. 报表的处理(JFreeChat)
4. 邮件收发(JavaMail)
5. 分页技术
6. Ajax
7. JSF
8. Freemarker
4.ssh 框架学习
1.Struts(基本要求)
1. 了解 struts2 框架的思想,MVC 实现
2. 在 Eclipse 中开发 struts2
3. Struts2 的基本流程
4. Struts2 的基本配置(web.xml,struts.xml.struts.properties,struts.xml)
5. Struts2 的 Action(实现 Action 类,Action 访问 Servlet API,配置 Action,动态方法调用,使用通配符,默认 Action)
6. Struts2 的处理结果(配置结果,Struts2 支持的处理结果类型,redirect,chain)
7. Struts2 的属性驱动与模型驱动
8. Struts2 的类型转换器
Struts(高级要求)
1. Struts2 的文件上传下载
2. Struts2 的拦截器
3. Struts2 的输入校验
4. Struts2 的国际化
5. Struts2 的标签库
6. Struts2 的 Ajax
7. 整合 JSF
8. 整合 JFreeChart
五.各阶段任务
1.Java 基础
1. 安装配置 java 运行环境 JDK,了解 java 程序的运行机理,用记事本写个 HelloWorld 程序,并在命令行操作。
2. 用 java 写个对数组降序排列程序(数组最好可以自己输入); 在后面抄一个有图形的界面的程序(像画图的,有菜单的之类的),自己试着运行下 (相信大家看到图形后会有惊喜的)。
3. 安装 JCreator,用 JCreator 写个执行单步的计算器(不要求界面)。如输入 3+5 输出 8
4. 了解类,面向对象,继承,接口的相关概念,会编写一定的基础程序。
(1)定义一个接口,里面有方法 ShowS(),ShowC()
(2)编写一个正方形类,实现了上面的接口,其中包含边长 A,面积 S 和周长 C,编写方法 ShowS()和 ShowC()分别输出正方形的面积和周长。(测试数据:A=5)
(3)编写一个长方体类继承自正方形类,长为 A 宽为 B,重写方法 ShowS()和 ShowC()分别输出长方形的面积和周长。(测试数据:A=3,B=5)
(4)编写测试类来测试以上两个类。
5. 学会查 API 文档(这是必备的,因为类库非常多,要记是不可能的,记得常用的就行,另外就是要勤查文档),实现下面的接口。
要求:涉及到具体时间的标准格式格式一般为:yyyy-MM-dd HH🇲🇲ss
测试类可以自己写。
public interface TimeInterface {
// 计算当月最后一天, 返回字符串
public String getDefaultDay();
// 获得本周星期日的日期
public String getCurrentWeekday();
// 获取当天时间
public String getNowTime(String dateformat);
// 获得上周星期日的日期
public String getPreviousWeekSunday();
// 获得下个月最后一天的日期
public String getNextMonthEnd();
// 获得明年最后一天的日期
public String getNextYearEnd();
/**
* 是否闰年,参数要求由键盘输入
*
* @param year
* 年
* @return
*/
public boolean isLeapYear(int year);
}
6. 安装 Eclipse,会用 Eclipse 编写程序,编写图形界面程序,能够对事件响应有很好的了解。编写一个记事本,能够对字体大小,字体形状,字体颜色进行控制,能够复制粘贴。(多查 API 文档)
7. 编写图形界面的计算器,能够实现简单的加减乘除运算,乘立方法算。
8. 安装sqlserver2000数据库,了解数据库基本知识,能够用查询分析器进行简单的增删改查。
9. 能够用 JDBC 连接数据库,将登录注册程序连接上数据库。
2. 静态网页的制作
1. 学会用 html 语言做静态网页。做一个介绍自己的网站(要求:代码手写,有以下标签:多级标题,列表,超链接,图像,表格,多媒体,表单)
2. 对介绍自己的网站的布局用 css ,div 控制完成
3. 用 javascript 对自己的网站进行表单验证。
4. javaweb 开发
1. 安装 Tomcat 和 MyEclipse,配置环境,了解 jsp 的运行原理。
2. 学习 jsp 的基本语法,会用四种内置对象,能够实现表单的提交,页面的跳转,做个登录注册程序,不要求连接数据库。
3. 用 jsp 对介绍自己的网站进行更改,要求能够,实现表单的提交,页面的参数传递和连接数据库对自己信息进行更改。
4. 了解 Servlet 的运行原理,配置 Servlet,利用 Servlet 做一个登录注册程序。
5. 学习 javabean, 对登录注册用 Servlet+javaBean+jsp 实现
6. 用 el 表达式,对登录注册程序用 EL 表达式实现
7. 用 JSTL 表达式,对登录注岫程序用 JSTL 表达式实现
4.ssh 框架学习

 

 

JAVA 完全学习路线图:

Java介绍
Java分为三个体系JavaSE(Java2 Platform Standard Edition,java 平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java 平台企业版),JavaME(Java 2 Platform Micro Edition,java 平台微型版)。
* Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
* Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
* Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
J2SE 就是做那种桌面安装程序样的,像 QQ,WORD 那种应用程序。
J2EE 就是做基于 Internet 的应用程序,像选课系统,企业网站,银行系统之类的。
J2ME 就是做嵌入式系统开发的,像手机游戏之类的,像现在流行的Android 操作系统
为了让大家能够更快的加入到做项目的队伍,工作室特制定以下培训计划。我们 java 组现在主要是沿着 J2EE 这条路线走,主要是这方面项目目前比较多。
一.培训阶段的划分
1. 学习 java 基础(包括基本语法,面向对象的思想的一些特性,IO,集合框架,jdbc)
2. 学习网页的基础知识(包括 html,css,javascript),这些是做好界面的必备知识。
3. 学习 javaweb 的基础知识(包括 jsp,servlet,javabean,MVC,JSTL,EL 表达式)
4. 学会使用 ssh 框架(struts.,hibernate,spring)
二.培训阶段的要求
1.Java 基础
1. 大体了解 java 的运行原理, 安装 java 虚拟机(java 虚拟编绎与运行)
2. 熟练掌握 java 语言基本语法(这个和 c 语言里面的差不多)
3. 熟练掌握面向对象编程的思想及面向对象的一些基本概念(类,对象,接口,继承,重载,覆盖)
4. 熟练掌握输入输出流(流的概念,文件的读写,终端输入)
5. 熟练掌握集合框架(List,Set,Map)
6. 熟练掌握 JDBC 连接数据库(sqlserver2000,mysql 数据库的使用及连接)
7. 熟练掌握 API 的使用,熟悉常用类库的使用。
8. 能够编写简单的图形界面程序
这个阶段是 j2se 的基础知识,特别是面向对象的知识的掌握,类和对象的概念,接口,继承,重载,覆盖,掌握基本的输入输出,然后就是集合框架,List,Set,Map 的使用,因为这些在以后的数据库操作中经常将查询结果放在里面,最后就是用 jdbc 连接数据库,也许之前学过的一些理论都感觉没兴趣,但学了数据库的连接之后,兴趣就来了,因为这是第一次写程序操作数据库。
这个阶段培养人的最大能力就是要勤查 API 文档,要多去百度,要多向别人请教。
2. 静态网页的制作
1. 了解网页的基本知识
2. 会写基本的 html 语言,能够看懂别人写的 html
3. 会使用表单
4. 使用 javascript 进行客户端验证
这个阶段要掌握一些静态网页的基本知识,学会动手做静态网页。学会用 css 控制
页面,学会用 javascript 来进行表单的验证。
3. javaweb 基础
1. 搭建开发环境
安装 Tomcat,并配置虚拟目录
安装 Eclipse,并安装 MyEclipse 插件
作用 MyEclipse 新建项目,整合 Tomcat 服务器,部署项目
2. Jsp 的基础语法
了解 JSP 基本特点
理解 JSP 的运行机制
熟练使用 JSP 声明语句
熟练使用 JSP Scriptlets
熟练使用 JSP 表达式
3. JSP 指令元素
了解 Page,include,taglib 指令的使用
了解 <jsp:forward><jsp:include><jsp:param><jsp:params>
4. JSP 内置对象 (9 个)
熟练使用 JSP 内置对象保存属性
熟练 JSP 属性保存的四个范围(page,request,session,application)
熟练使用 request,session 对象取得参数值,了解其他各对象常用的方法
5. JavaBean
熟练掌握定义 JavaBean,调用 JavaBean,设置并获得 JavaBean 属性,设置 JavaBean 的范围,移除 JavaBean
6. EL 表达式
熟练掌握使用 EL 运算符
熟练掌握 EL 内置对象
熟练掌握 EL 存取
7. JSTL 标签库
JSTL 核心标签库,数据库标签库,I18N 格式化标签库,XML 标签库和 JSTL 函数标签库
熟练掌握通过 JSTL 核心标签库定义变量,输出变量,移除变量
熟练掌握通过数据库标签库完成数据库操作
熟练掌握 XML 标签库完成 XML 文件操作
熟练掌握 I18N 标签库完成国际化操作
熟练掌握通过 JSTL 函数标签库完成常用函数操作
8. Servlet 开发
熟练掌握如何定义 Servlet
理解 Servlet 的生命周期
熟练掌握 HttpServlet 的常用方法
熟练掌握使用 Servlet 的接口
9. Filter 开发
熟练掌握如何定义并配置 Filter
理解 Filter 的生命周期
熟练掌握如何添加非法文字过滤器,字符编码过滤器,登录验证过滤器
10. Listener 开发
熟练掌握如何定义并配置 Listener
熟练掌握 ServletContextListener,ServletContextAttributeListener,HttpSessionListener,
HttpSessionAtrributeListener 接口的实现和作用
11. Dao 设计模式
了解什么是 Dao 设计模式以及其特点
熟练掌握如何定义数据库连接类
熟练掌握如何定义 Vo 类
熟练掌握如何定义 Dao 接口,Dao 类以及 Dao 工厂类
熟练掌握如何使用 Dao 实现数据库操作
12. MVC 设计模式
了解什么是 MVV 设计模式
了解 Model1 和 Model2 的区别以及优缺点
熟练掌握如何定义视图,模型,控制器部分,用 MVC 进行开发
这个阶段才是真正的接触了 javaweb 的知识,要会用 javaweb 进行动态网页的开发,
这个阶段完成后,就能做一些应用系统的开发了,javaweb 也基本上学完了,后面基本上都是些别人根据基础知识做好的框架或组件,我们只要拿来用就行。
4 . ssh 框架
1 Struts2基础
了解如何下载并安装Struts2 框架
了解Struts2运行原理
熟练掌握如何新建控制器
熟练掌握如何配置控制器
了解实现 Action 接口的优点
熟练掌握通过 Struts2 标签库简化表单
熟练掌握通过继承 ActionSupport 完成输入校验
熟练掌握页面国际化以及校验错误信息国际化
2 Struts2 高级开发
熟练使用 Struts2 内建的类型转换器
理解服务器端校验的重要性
熟练使用 addFieldError 来添加校验错误信息
熟练使用 struts2 校验框架完成输入校验
3 Hibernate 持久化
了解什么是 ORM 映射以及特点
熟练掌握配置 Hibernate 配置文件
熟练掌握创建持久化类
熟练掌握创建关系映射文件
熟练掌握通过 Hibernate 框架进行数据库操作
4 Struts2 整合 Hibernate 开发
熟练掌握持久层设计
熟练掌握业务逻辑层设计
熟练掌握 struts2 整合 hibernate 开发
5 Spring 开发
熟练掌握 Spring 的依赖注入
熟练掌握 Spring 的自动装配
熟练掌握 Spring 面向切面编程
框架的发现,提高了软件开发的速度,增强了软件开发的规范性,使人们都按照某一种模式,一种规范去进行开发。这个阶段我们要做的就是学会使用这些框架来进行开发,了解框架的原理,当然有能力的话,根据它的原理,我们可以试着看下它的源码,自己试着写框架。
三.各阶段所要掌握的工具
1.Java 基础
1. 会用记事本(或 EditPlus)编写 java 程序,在 DOS 下进行编绎与运行。(初级阶段)
2. 会用 JCreator 编写,编绎,运行。(中级阶段)
3. 会用 Eclipse,JBuilder,NetBeans 其中之一集成开发环境(高级阶段,推荐使用 Eclipse)
4. 会安装并使用 Navicate(mysql 的界面环境),sqlserver2000。(数据库)
2. 静态网页的制作
1. 会用记事本(或 EditPlus)编写 Html 语言
2. 会用 Dreamweaver 进行编写 Html 语言
3.Fireworks 切图
4.Photoshop 图片处理
3. javaweb 开发
1.Tomcat 使用(javaweb 服务器)
2.MyEclipse (javaweb 开发)
3.JUit 单元测试工具
4.PowerDesigner 数据库设计工具
5.CVS 版本控制工具
6. Rose ,visio UML 建模工具
四.各阶段所要掌握的知识点
1.Java 基础
(基本要求)
1. 了解 Java 语言的特征, 掌握 JDK(Java 开发工具包) 的安装、目录层次、
环境变量配置,Java 程序的实现过程
2.Java 语言基础
a). 数据类型:
8 种基本类型:byte,char,short,int,long,float,double,boolean
引用类型: 数组, 类, 接口
b). 结构化语句: if,if--else ,if--else if ,switch--case,while,do--while,for
c). 数组
int num[]={1,2,3,4,5}; <<==>> int []num={1,2,3,4,5};
3. 面向对象的基础
a). 类:具有相同属性和行为的一组对象的集合
b). 对象:客观存在的或可被描述的抽象对象, 具有特定属性和行为的实体。
c). 类是对象的模板 ( 原型), 对象是类的具体实例
d). 抽象、封装、继承, 多态 ( 重载, 重写, 接口多实现)
e). 构造方法 ( 默认构造器 / 参数化构造器)
f). 限制访问修饰符: private, 缺省 ( 默认),protected,public
g). 附加修饰符:final,static,abstract
h). 接口
4.Java 基础包
a). java.lang
包装类 (Byte,Character,Short,Integer,Long,Float,Double,Boolean)
其它类:String,StringBuffer,Math,Class,Object
b). java.util
随机类:Random
日期类:Date,Calender
集合框架体系:Collection,List,Set,ArrayList,LinkedList,Vector,HashMap
c). java.io
文件类:File
字节流:FileInputStream,FileOutputStream
字符流:FileReader,FileWriter,BufferedReader,BufferedWriter
二进制流:(了解) DataInputStream,DataOutputStream
构造键盘流:BufferedReader input=
new BufferedReader(new InputStreamReader(System.in));
d). java.swt /javax.swing 了解 java 图形界面及事件响应机制
容器类组件:JFrame,JPanel,JScrollPane
组件: JLabel,JTextField,JPasswordField,JTextArea,JComboBox,
JRadioButton,JCheckBox,JMenuBar,JMenu,JMenuItem
5.JDBC 数据库连接
数据库的连接步骤:
1). 加载数据库驱动类: Class.forName(driver)
2). 通过驱动程序管理器获取连接: DriverManager.getConnection(url,user,password)
3). 基于连接对象建立处理器对象 / 预处理器对象
Statement stmt=conn.createStatement();
PreparedStatement stmt=conn.prepareStatement("insert into student values(?,?,?,?,?)");
4). 处理器执行 SQL 命令 (Select/Insert/Update/Delete)
executeQuery(Select)
==> 返回查询的结果集 (ResultSet, ResultSet.getXXX( 列编号, 从 1 开始))
executeUpdate(Insert/Update/Delete) ==> 返回执行命令影响的记录行 (int)
5). 关闭各个对象
(高级要求,可以暂时不用掌握)
1. java 内存管理(垃圾收集及对象引用的内存分析)
2. 栈和堆的区别(变量比较复制,引用传递和值传递)
3. 异常处理机制(异常的原量,异常程序流程)
4. 网络通信(TCP 和 UDP 开发)开发
5. Java 多线程开发
6. Applet,JavaWebStart.SWT,JavaFX
7. 数据库存取(事务存取,SavePoint)
8. 分布式计算(RMI,CORBA)
9. java 本地调用(JNI 原理,调用 c 程序,调用 Delphi)
10. 反射机制(Annotation,动态代理)
11. Java 动态编程(Compiler API,Instrumentation,Javassist,ClassEditor)
12. JMX 资源管理容器
13. XML 开发(DOM,DOM4J,SAX,JDOM)
14. LOG4J 日志开发
15. 定时任务,日程工具 Timer,Quartz
16. ZIP 工具包
17. Excel 文档存取工具 POI
18. UML 建模
19. 设计模式
2. 静态网页的制作
(基本要求)
1. 会写简单的 HTML,并且能看懂一些正规网页(多级标题的运应。列表标记(序和无序标记)超链接标记,图像标记,表格标记,多媒体标记,表单标记

2. 用 javascript 做些简单的表单验证
3. 用 css 做排版
4. 会用 Dreamweaver 做简单的网页
(高级要求)以后从事界面开发的人,可以多下点工夫
1. 能够熟练用 Dreamweaver 制作网页
2. 能够熟练使用 Photoshop 进行图片处理
3. 能够熟练用 Fireworks 对图片进行切割
4. 能够熟练使用 javascript 做一些特效
5. 能够熟练使用 DIV+CSS 进行排版
3. javaweb 开发
(基本要求)
1. WEB 的两个发展阶段:静态,动态
2. 动态 WEB 的主要实现手段及区别
3. Tomcat 的主要作用及配置
4. 开发一个简单的交互式程序
5. MyEclipse 开发工具的使用
6. 在 MyEclipse 中使用 Tomcat 服务器
7. JSP 中的三种注释
8. 三种 SCriptlet 及其区别
9. Page 指令,包含指令
10. Jsp 连接数据库
11. 两个 include 以及 forward 语句
12. 了解九个内置对象的定义
13. 掌握 JAVAWEB 中的四种属性范围
14. 掌握 pageContext 对象的使用
15. 掌握 request,response,session,application 四种内置对象及属性的设置
16. Javabean 的主要作用,定义及使用,四种保存范围
17. 掌握 Smartupload 组件的作用,上传文件,为上传文件重命名
18. Dao 数据库操作
19. MVC 模式
20. Servlet
21. EL
22. JSTL
(高级要求,可以暂时不用掌握)
1. Filter
2. Listener
3. 报表的处理(JFreeChat)
4. 邮件收发(JavaMail)
5. 分页技术
6. Ajax
7. JSF
8. Freemarker
4.ssh 框架学习
1.Struts(基本要求)
1. 了解 struts2 框架的思想,MVC 实现
2. 在 Eclipse 中开发 struts2
3. Struts2 的基本流程
4. Struts2 的基本配置(web.xml,struts.xml.struts.properties,struts.xml)
5. Struts2 的 Action(实现 Action 类,Action 访问 Servlet API,配置 Action,动态方法调用,使用通配符,默认 Action)
6. Struts2 的处理结果(配置结果,Struts2 支持的处理结果类型,redirect,chain)
7. Struts2 的属性驱动与模型驱动
8. Struts2 的类型转换器
Struts(高级要求)
1. Struts2 的文件上传下载
2. Struts2 的拦截器
3. Struts2 的输入校验
4. Struts2 的国际化
5. Struts2 的标签库
6. Struts2 的 Ajax
7. 整合 JSF
8. 整合 JFreeChart
五.各阶段任务
1.Java 基础
1. 安装配置 java 运行环境 JDK,了解 java 程序的运行机理,用记事本写个 HelloWorld 程序,并在命令行操作。
2. 用 java 写个对数组降序排列程序(数组最好可以自己输入); 在后面抄一个有图形的界面的程序(像画图的,有菜单的之类的),自己试着运行下 (相信大家看到图形后会有惊喜的)。
3. 安装 JCreator,用 JCreator 写个执行单步的计算器(不要求界面)。如输入 3+5 输出 8
4. 了解类,面向对象,继承,接口的相关概念,会编写一定的基础程序。
(1)定义一个接口,里面有方法 ShowS(),ShowC()
(2)编写一个正方形类,实现了上面的接口,其中包含边长 A,面积 S 和周长 C,编写方法 ShowS()和 ShowC()分别输出正方形的面积和周长。(测试数据:A=5)
(3)编写一个长方体类继承自正方形类,长为 A 宽为 B,重写方法 ShowS()和 ShowC()分别输出长方形的面积和周长。(测试数据:A=3,B=5)
(4)编写测试类来测试以上两个类。
5. 学会查 API 文档(这是必备的,因为类库非常多,要记是不可能的,记得常用的就行,另外就是要勤查文档),实现下面的接口。
要求:涉及到具体时间的标准格式格式一般为:yyyy-MM-dd HH🇲🇲ss
测试类可以自己写。
public interface TimeInterface {
// 计算当月最后一天, 返回字符串
public String getDefaultDay();
// 获得本周星期日的日期
public String getCurrentWeekday();
// 获取当天时间
public String getNowTime(String dateformat);
// 获得上周星期日的日期
public String getPreviousWeekSunday();
// 获得下个月最后一天的日期
public String getNextMonthEnd();
// 获得明年最后一天的日期
public String getNextYearEnd();
/**
* 是否闰年,参数要求由键盘输入
*
* @param year
* 年
* @return
*/
public boolean isLeapYear(int year);
}
6. 安装 Eclipse,会用 Eclipse 编写程序,编写图形界面程序,能够对事件响应有很好的了解。编写一个记事本,能够对字体大小,字体形状,字体颜色进行控制,能够复制粘贴。(多查 API 文档)
7. 编写图形界面的计算器,能够实现简单的加减乘除运算,乘立方法算。
8. 安装sqlserver2000数据库,了解数据库基本知识,能够用查询分析器进行简单的增删改查。
9. 能够用 JDBC 连接数据库,将登录注册程序连接上数据库。
2. 静态网页的制作
1. 学会用 html 语言做静态网页。做一个介绍自己的网站(要求:代码手写,有以下标签:多级标题,列表,超链接,图像,表格,多媒体,表单)
2. 对介绍自己的网站的布局用 css ,div 控制完成
3. 用 javascript 对自己的网站进行表单验证。
4. javaweb 开发
1. 安装 Tomcat 和 MyEclipse,配置环境,了解 jsp 的运行原理。
2. 学习 jsp 的基本语法,会用四种内置对象,能够实现表单的提交,页面的跳转,做个登录注册程序,不要求连接数据库。
3. 用 jsp 对介绍自己的网站进行更改,要求能够,实现表单的提交,页面的参数传递和连接数据库对自己信息进行更改。
4. 了解 Servlet 的运行原理,配置 Servlet,利用 Servlet 做一个登录注册程序。
5. 学习 javabean, 对登录注册用 Servlet+javaBean+jsp 实现
6. 用 el 表达式,对登录注册程序用 EL 表达式实现
7. 用 JSTL 表达式,对登录注岫程序用 JSTL 表达式实现
4.ssh 框架学习

 

 

 

 

 

 

 

                     史上最强 Java 学习路线(详解)

2017-12-17 Java 编程精选

 

Java 是一个通用的编程语言,其实可以干很多事,怎么学 Java 就看怎么用了,但有一些一般的步骤:

  • 熟悉一种文本编辑器,比如 Vim, Emacs, Notepad++, TextMate 等。知道哪些是开源的,哪些是闭源的,哪些要收费。养成不用盗版软件的习惯。

  • 安装 JDK(建议用你的 Linux 发行版自带的软件包管理器安装 openjdk,过程中可能需要读发行版特定的文档)

  • 写一个 Java 的 Helloworld 程序,并用命令行工具 javac 编译,再用 java 命令运行这个程序。过程中熟悉源代码、字节码、虚拟机这些东西,以及 Java 的包(package)对.class 文件所在的路径的影响。如果这两个命令行工具使用熟练了,可以开始选一个喜欢的集成开发环境,比如 Eclipse。当然,养成不用盗版软件的习惯。熟悉一下如何建立“工程”,以及快捷键的使用。

  • 学习 Java 的面向过程编程,包括基本数据结构、表达式、语句、控制流、函数调用。

  • 学习 Java 的面向对象编程,包括类、引用类型和值类型的区别、成员、方法、访问控制、继承、多态、接口、接口实现。顺便学习一下面向对象的基本思想,即对象、消息、封装、继承、多态等,这些通用的内容不是 Java 特有的。这时候应该已经涉及了 Java 的垃圾回收。要留意即使有垃圾回收的情况下也会发生的内存泄露(如自己设计数组容器,元素是引用,逻辑上删除了元素,但并没有清成 null)。注意垃圾回收只能回收内存中的对象,除了内存以外,其它资源不能依靠垃圾回收来关闭。比如,文件、管道、Socket、数据库连接等,垃圾回收是不会帮你关闭的。

  • 学习 Java 的异常处理,但更重要的是学习什么时候用特殊返回值而不使用异常,什么时候应该抛出异常而不处理异常,知道什么是 pokemon catch 及其危害,了解为什么 Java 的 checked exception 是一个糟糕的特性。如果愿意,同时学习一下 Java1.7 的 try-with-resource 语句和 AutoCloseable 接口。

  • 熟悉 Java 常用的数据结构,如基本的数组类型,以及泛型容器(java.util.*),尤其是 java.util.List 接口和 java.util.ArrayList 实现;以及 java.util.Map 接口和 java.util.HashMap 实现。(java1.5 以前的没有泛型参数的就不用碰了)同时留意一下基本类型 int, double 等和装箱类型 Integer 和 Double 的区别,以及它们是如何自动转换的。

  • 熟悉 Java 标准库里的各种工具,包括日期时间、字符串格式化、IO 等。** 知道文件要自己在 finally 子句中 close(),或者用 Java1.7 的 try-with-resource,不要妄想垃圾回收器会帮你关掉文件。

  • 学习一下 Java 的命名习惯,以及 JavaBeans 的常规,知道为什么 getter/setter 比直接操作成员变量好。按这种方式给 Java 的变量、方法命名。同时看看你的 IDE 能不能自动帮你生成 getter 和 setter。

  • 使用一个第三方的库(比如 Apache Commons Lang 通用工具库),让你的程序依赖于它的二进制 jar 包(而不是直接拷贝源代码),用命令行编译、运行(注意 classpath 等);也熟悉一下如何用你的集成开发环境添加第三方依赖。感受一下手动管理依赖关系的麻烦。

  • 学习 Maven 的使用,试着让 Maven 帮你解决依赖关系,再试着让 Maven 帮你创建一个 Eclipse 工程。再试试用 Maven 打包发布。

  • 学习软件测试,以及 JUnit 的使用,以及怎么在 IDE 中使用 JUnit。有空看一下 coverage 工具。

  • 读读四人帮写的《设计模式》(这本书是用 C++ 和 Smalltalk 语言为例子的,但仍然适合 Java)。

 

接下来就看具体要做哪方面的应用了,看需求。比如(下面的没有顺序)

 

关于语言

 

  • 如果学 Java 学得不舒服了,学 Python。

  • 如果对面向对象编程的概念有点不习惯,学 Smalltalk。(Ruby 也行,但不如 Smalltalk 经典。Ruby 的文档是一大硬伤。)

  • 如果嫌 Java 太啰嗦,学 Python

  • 如果嫌 Java 太啰嗦,又想用 JVM,自己又有精力,学 Scala

  • 如果对对象之间的关系有点晕,学一学 UML,以及它的一些图,可以对程序和运行进行直观的建模。你的 IDE 也许有插件可以生成 UML 图。但是不要太沉迷于这些方法论。

 

调试和辅助工具

 

学习一下你的集成开发环境提供的调试工具,加一些断点试试。

 

  • 试试用 jconsole 或者 VisualVM 监控另一个 jvm 的状态。

  • 用 profiling 工具寻找程序中慢的地方。Eclipse 有 profiling 工具。VisualVM 也有这样的功能。(如果不介意使用闭源软件的话,也试试 JProfiler 和 YourKit)

  • 有的 JVM 允许在运行时更新代码。Eclipse 可以和某些 JVM 集成。这样你可以频繁修改代码而不用频繁重启 JVM。对于某些“重型”工程很有用。(如果不介意使用闭源软件的话,也试试 jRebel)

 

多线程

 

学习 Java 的多线程编程以及 lock、condition 的用法(包括传统 Java 的 synchronized 语句以及新加的 java.util.concurrent.*),学习一下如何让线程停下来,以及为什么要频繁确认 isInterrupted()而不要用 Thread.stop()。了解一下多核处理器、缓存、内存的关系,以及为什么多线程编程这么难。

 

  • 如果还舒服,学习一下 Runnable 的用法,以及自带的 Executer 等基本多线程工具。

  • 应该已经留意到 java.util 里面的很多容器不是线程安全的,但是 java.util.Collections 可以帮你创建一些安全的版本。另外关注一下 java.util.concurrent 里面有 ConcurrentMap 等容器可供使用。

  • 如果有空的话,看看 memory model(内存一致性模型)和无锁同步(见 java memory model 和 java.util.concurrent.atomic)。

  • 如果还有空,再了解一下除了“共享内存多线程编程”以外有没有别的模型(多进程 multi-processing、消息传递 message passing 等)。

 

反射、元编程

 

  • 学习 Java 的反射机制,以及 Annotation 的用法。

  • 如果还舒服,试试 java.lang.reflect.Proxy 的用法。

  • 如果仍然还舒服,玩一玩 CGLib(一个第三方的库)。

 

网络编程

 

学习一下 IP,TCP 协议(计算机专业的应该学过,复习一下),学习 Socket 编程(注意垃圾回收器不会帮你关掉 Socket)。

 

  • 如果不是很关心 HTTP,看看 java.nio,学习单线程轮询式 IO 复用(Selector)。

  • 如果有点不明白 nio 的意图的话,了解一下 c10k 问题。 http://www.kegel.com/c10k.html

  • 如果身体没有异样的话,大概了解一下操作系统(包括 C 语言)提供的 select, poll, epoll, kqueue 等接口。

  • 如果身体仍然没有异样的话,试着用 java.nio 写一个文件服务器。

  • 如果还有精力的话,上网扒一扒有没有其他的通信库,如 netty 等。

  • 如果关心 Web 还有 HTTP,就学习一下 HTTP 协议,以及用 Java 进行 HTTP 的客户端编程。

  • 如果还舒服,学学 HTML,写写 HTML 的静态网页(不需要 Java)

  • 如果还舒服,用 Java 写一个基于 DOM、XPath 或者 CSS Selector 的网页解析器(爬网页)。

  • 如果还舒服,学学 Java 的 Servlet 接口(先别学 jsp)进行 Web 服务器端编程。学学标准的 Servlet 容器怎么用,包括 web.xml 的用法以及 listener、filter 等概念。以及某个 Servlet 容器(如 Jetty 或者 Tomcat)的具体用法。

  • 如果仍然还舒服,试着学一种模板语言(如 haml, velocity, freemarker,【还有其他更好的框架吗?我不知道】, String.format,如果真的想学 JSP 的话 JSP 倒是也行,但不推荐)。

  • 如果仍然觉得舒服,学学 Spring 框架中的 Web 框架,或者 Struts,看你的口味。

  • 如果还舒服,看看 Spring Bean Container 以及里面各种乱七八糟的工具。

  • 如果还舒服,或者有需求,了解一下什么是 RESTful Web Service,复习一下 HTTP,找找适合的 Java 工具。

  • 你可能会觉得 Jackson 是一个解析 JSON 用的好用的东西。

 

数据库

 

学习一下关系数据库(计算机专业的应该学过,复习一下),包括 SQL。选一个数据库管理系统熟悉一下(比如 MariaDB,或者(如果你不讨厌 Oracle 的话)用被 Oracle 收购了的 MySQL。先脱离 Java 单独学学)。然后看它们的官方文档教你怎么用 Java 连接这种数据库。这中间会涉及到 JDBC 接口。同时一定要知道 SQL 注入安全漏洞,以及掌握如何用 PreparedStatement 防止注入!!。建议看 http://bobby-tables.com/

 

  • 可能中间会涉及“事务”问题,让你不知不觉地开始去了解 java transaction api(JTA)。

  • 如果还舒服,学一学对象关系转换(如 Hibernate)。

  • 也可以学学非关系数据库,以及如何用 Java 访问它们。

 

日志记录

 

学习一下 slf4j 和 logback 的用法。

 

  • 如果有精力的话,大概了解一下世界上有多少种 Java 日志框架,以及 slf4j 是怎么桥接这些框架的。

 

构建 (build) 系统

 

学习一下 Ant 的用法。

 

  • 如果还舒服的话,学习一下用 Ivy 从 Maven 的仓库里下载软件包,解决依赖关系。

 

版本控制

 

学习一种分布式版本控制器(如 Git、Mercurial、Bzr、Darcs 等,推荐 Git)的基本用法,以及如何用它管理 Java 工程。希望你已经开始使用 Maven 了,并且知道为什么把 IDE 生成的工程文件(如 eclipse 的.project,.classpath 和.metadata)放入版本控制器不好。然后了解一下如何在 IDE 中使用版本控制(Eclipse 自带 Git 插件)。

 

  • 如果感觉很舒服的话,为你们实验室搭建一个 Linux+SSH+Git 服务器,装个 GitLab(一种 Web 界面)。

  • 了解“集中式版本控制器”和“分布式版本控制器”的区别,并说服同事们不要再用 SVN、CVS 或者 SourceSafe 等老旧的“集中式版本控制器”了。

  • 开设一个 GitHub 账户。如果你不喜欢 Git,就用 BitBucket 等。

 

持续集成

 

自己(或者为你们实验室)搭建一个持续集成(Continuous Integration)服务器,如 Jenkins,定期编译你的程序。建议同时使用 Git 等分布式版本控制器。

 

  • 如果你做开源软件,试试 GitHub 和 Travis。

 

零碎工具

 

淘一淘 java.nio.files 里面有什么好用的东东,然后再淘一淘 Apache Commons Lang 和 Commons IO 里有什么好用的工具。Commons Logging 就不要再用了,用 SLF4j 和 Logback。

 

XML

 

学学 XML、DOM、XPath。XML 这东西到处都可能用到。也可以用它写自己的配置文件。

 

  • 如果觉得不舒服了,就学学 JSON 和 YAML。

  • 如果还是不舒服,就学学文本文件解析。

 

语法分析和编译器

 

学学 Antlr 或者别的 Parser Generator 的用法

 

  • 如果觉得舒服,自己写一个计算器。

  • 如果还觉得舒服,自己写一种 Domain-Specific Language (DSL)。

 

高效容器

 

学学 FastUtil 或者 Trove,如果你需要进行大量数值运算的话。

 

分布式计算

 

学学 MapReduce 的思想以及它的实现。

 

  • 如果还舒服,学学 Scala 语言以及号称比 MapReduce 快得多的 Apache Spark。

 

进程间通信

 

看看 ActiveMQ、MINA 和 RMI。

 

其他语言(JVM)

 

学习另一门跑在 JVM 上的语言或者实现(如 Groovy、Scala、Clojure、JRuby、Jython、JavaScript……)

 

  • 如果还舒服,学一学 Java Scripting API(注意不是 JavaScript。给个链接:http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/ ),然后试着在自己的 Java 程序里嵌入脚本。

 

其他语言(非 JVM)

 

学习另一门通用脚本语言(如 Python、Ruby,其实 perl 也行,但不推荐),知道什么时候 Java 不是最好的选择。

 

Java 语言和 Java 虚拟机

 

通读一遍(一目十行地读,不用细读)Java Language Specification,以及 Java Virtual Machine Specification。

 

  • 了解以下解释器(interpreter)、编译器(compiler)、即时编译器(just-in-time compiler)和优化器(optimiser)的概念。

  • 如果对编译器的话题不感到畏惧,了解一下 method JIT 和 tracing JIT 的概念和区别。

 

内存管理

 

学学垃圾回收的几种基本算法,包括 mark-sweep、mark-compact、semi-space、generational、mark-region 等,各自的性能,以及为什么朴素的 reference counting 是不完整的。知道为什么 finalizer 性能很糟糕,而且标准并不要求 finalizer 在程序退出前一定会执行。

 

  • 如果还舒服,了解一下如何设置 Java 虚拟机的堆大小限制(如 HotSpot 虚拟机的 -Xmx 选项等)。

  • 了解一下 Java 里的 WeakReference 以及 SoftReference 和 PhantomReference,以及它们什么时候有用,以及为什么它们实现起来有些困难。

  • 如果有精力,了解一下 Hotspot 虚拟机的内存管理算法是什么样的。

 

动态装载

 

学学 Java 的动态装载(class loading)

 

  • 如果还舒服的话,学学 OSGI 以及它的一种实现(如 Felix 或者 Equinox)

  • 如果仍然很舒服的话,学学写基于 Eclipse 平台的程序。不是 Eclipse 集成开发环境,只是利用他们的图形框架,写自己的应用程序。

  • 如果还觉得舒服的话,写 Eclipse 集成开发环境的插件。

 

本地 / 外语接口

 

学习一下 Java Native Interface(JNI),试着写一个 Java 和 C 语言混合编程的程序。

 

  • 如果觉得不舒服了或者觉得欲仙欲死,就学一学 Java Native Access(JNA),试一试不用任何胶水代码而从 Java 直接装载 C 库,直接调用 C 函数。

  • 如果连 JNA 也懒得学,就学一学 SWIG,自动生成绑定。

  • 如果觉得舒服,就学一学 Java Virtual Machine Tooling Interface(JVMTI),用 C 程序来监视 JVM 的状态。

 

密码学

 

学一学密码学,包括编码、密码分析、攻击、对称密钥、公钥系统、数字签名、哈希算法等,看看 Java 有没有实现。

 

如果觉得有点不舒服(你应该不会觉得舒服吧,除非你是学密码学的,要不然总会觉得自己写的程序有安全漏洞),就写一个“人品计算器”来放松一下,要求每次输入同一个姓名,得到的人品值是固定的,但又要让人无法用别人的人品值猜自己的人品值。

 

移动终端

 

学一学 Android 开发。

 

如果有精力的话,看看 Dalvik 虚拟机是怎么回事。

建议买一个 iPhone 或者 iPad,或许你再也不想用 Android 手机或者平板了。

 

历史

 

如果觉得有些无聊,就去挖一挖历史上比较火的可能和 Java 相关技术,比如:

 

  • Applet,想想它比起 html5+css3+javascript 的缺点在哪里。

  • AWT、Swing,想想为什么很少有人用 Java 写图形界面程序。你觉得 Swing 的程序看上去舒服吗?中国人和残疾人喜欢用 Swing 程序吗?

  • JNDI,想想它比起 Spring Bean Container 的缺点在哪里。

  • JSP,想想它比起 MVC 结构的缺点在哪里。

  • WSDL/SOAP,把它们和 XML-RPC、RESTful Web Service 比较一下。

  • XSLT,以及为什么它是图灵完备的。可是它真的比 Java 本身更好用吗?

  • Log4j、java.util.logging、Apache Commons Logging,各自有什么问题,以及 Log4j 的作者本人为什么又开发了 SLF4j 和 Logback?

  • Java 最早是为什么设计的?

  • Type erasure 是怎么回事?为什么 ArrayList<int> 不行但 ArrayList<Integer> 就可以?挖一挖历史。

 

其实 Java 不算完全面向对象的语言。Java 更偏实用性,很多控制流(if 语句、while 循环、for 循环等)来自面向过程的语言;基本数据类型(int, char, double 等)也不是对象。但另一些语言,比如 SmallTalk,更偏向纯粹的面向对象的设计,包括基本的数据类型都是对象,if/while/for 等也用对象和方法来实现。比如:

 

基本数据类型也是对象,可以接受消息(即方法),比如:

 

(a + b) sqrt

 

这里面,a+b 其实是向 a 发送“+”消息,参数是 b。sqrt 也是一个消息,发给一个数。

 

if 分支是这样做的:

 

(x < y) ifTrue: [ 

       max := y. 

       i := j 

     ] ifFalse: [ 

       max := x. 

       i := k 

     ]

 

ifTrue:ifFalse: 是一个 Boolean 对象的一个方法,取两个参数,每个是一个“块”,分别在真和假的情况下执行。

 

还有 while 循环是这样做的:

 

[i < 100] whileTrue: [ 

       sum := sum + i. 

       i := i + 1

     ]

whileTrue 是“块”的一个方法,每次对块求值,如果是真,就反复执行第一个参数(也是“块”)。

所以,相对其他面向对象的语言,Java 并不算很“面向对象”。所以需要补充一些对面向对象语言的了解。


 

■行业动态 

1、最新的 Java SE 平台和 JDK 版本发布计划

前不久发布的 Java 9 除了发布了重大更新外,还公布了一个全新版本的发布计划。该计划基于 JEP 223,用于未来 Java 平台版本的发布。基于 JEP 233 的发布计划的主要目标如下所示:

● 版本号直观,易于理解

● 与当前行业的实际情况相一致

● 能兼容现有的包系统和平台部署机制

● 避免在版本的一种元素中编码两种信息

● 提供一个简单 API,用于版本号的解析、验证和比较(详情:https://www.infoq.com/news/2017/11/new-version-scheme-java

2、构建用户界面的 JavaScript 库 React 16.1.1 发布

React 16.1.1 已发布,React 是 Facebook 推出的一个为数据提供渲染为 HTML 视图,用来构建用户界面的开源 JavaScript 库。16.1.1 更新内容:

● React 改进关于未定义组件类型的警告。

● React DOM 支持捕获属性的字符串值。

● ...(详情:https://github.com/facebook/react/releases/tag/v16.1.1 

3、HBase 的 SQL 驱动 Apache Phoenix 4.13 发布

 

Apache Phoenix 4.13 已发布,Apache Phoenix 是 HBase 的 SQL 驱动。Phoenix  4.x 与 HBase 0.98 和 1.3 兼容。更新亮点:

● 修复在连接时创建 SYSTEM.CATALOG 快照的 bug

● 关于行删除处理的大量错误修复

● 统计收集改进

● .... 详情:http://phoenix.apache.org/download.html

 

 

 

 

 

 

 

 

 

 

由 于很强的跨平台性,java 技术吸引了大量的追随者,可以说是世界排名第一的编程语言,在世界的每个角落,都活跃着 java 技术。虽然说 IT 技术学习起来 并不困难,可是如果没有明确的方向,没有合理的计划,那么学习起来就非常困难,下面就简单梳理一下 java 的学习路线。

  1. Java 语言基础

       谈到 Java 语言基础学习的书籍,大家肯定会推荐 Bruce Eckel 的《Thinking in Java》。它是一本写的相当深刻的技术书籍,Java 语言基础部分基本没有其它任何一本书可以超越它。该书的作者 Bruce Eckel 在网络上被称为天才的投机者,作者的《Thinking in C++》在 1995 年曾获 SoftwareDevelopment Jolt Award 最佳书籍大奖。作者从 1986 年至今,已经发表了超过 150 篇计算机技术文章,出版了 6 本书,并且在全世界做了数百次演讲。他是 《Thinking in Java》、《Thinking in C++》、《C++ Inside &amp; Out》《Using C++》和《Thinking in Patterns》的作者,同时还是《Black Belt C++》文集的编辑。他的书被读者称为 &ldquo; 最好的 Java 参考书 &hellip;&hellip; 绝对让人震 惊 &rdquo;;&ldquo; 购买 Java 参考书最明智的选择 &rdquo;;&ldquo; 我见过的最棒的编程指 南 &rdquo;。作者的非凡才华,极其跨越语言的能力,使作者被选为 Java 发展 10 年间与 Java 关系最密切的 10 个人物之一。

  2. 2

    Java 数据结构

       市面上关于 Java 数据结构的书本身就很少很少。大致有 APress 的《Java Collections》,Jones 和 Bartlett 的《Data Structures in Java》、《Object-oriented Data Structures Using Java》以及 Prentice Hall 出版的《Data Structures and Algorithms in Java》 (Dec 19, 2005) 还有一本就是《Data Structures And Algorithms With Object-oriented Design Patterns In Java》。

  3. 3

     Java IO Eys

       市面上关于 IO 的书籍也仅仅只有 Oreilly 出版社的两本,都是 Elliotte Rusty Harold 的著作。两本书的风格基本一致,推荐阅读是第一版的《Jvava I/O》,讲得比较浅显,内容相对比较集中,实例也很多。第二版今年 5 月国外才出版,很有幸我在网络上下载了第二版,讲得极其详细――726 页的大块头 (我化了两个星期),这次将 NIO 和 IO 和在一起,还包括 J2ME 部分的,不过串口、并口通信部分好像类库支持不够,自己不能实际操作。

  4. 4

    Java 数据库

       数据库的书籍太多太多了,也是太烂太烂了!这方面的书我基本都研究过,推荐的你就看看 Apress 的《JDBC Recipes A Problem Solution Approach 》很不错,国外 2005 年底才出版,(国内好像没有中文版,不过出了中文版也不一定值得看――国内经常将国外的书翻译得一塌糊涂、不堪入目)不过我们真的 很幸运,网络上有电子版的。值得一看。推荐我看的第一本比较满意的――Wiley 出版的《Java Database Bible》,讲得很不错!Sun 公司自己的关于 JDBC API 介绍的那一本《JDBC API Tutorial andRefernece》也不错。我第二本 JDBC 的就是研究的这套 API。

  5. 5

     Java 网络编程

      网络编程――一个神秘的、充满挑战的方向。不过在谈 Java 网络编程之前首先感谢 Sun 公司的开发人员,因为它们天才的设想,充满智慧的架构,使广大 java 程序员学习 java 网络编程变得异常简单。

     

     

    基础是王道,不要只会用框架而不懂其实现!!!!


    J2EE 主要技术:
    • web service 技术:java API for XML processing(JAXP)                              
                                    java API for XML Register(JAXR)
                                    java API for XML-based RPC(JAX-RPC)
                                    SOAP with Attachment API for Java(SAAJ)
    • 组件模型技术:java servlet 
                            javaServer Pages(JSP)
                            javaServer Faces(JSF)
                            Enterprise JavaBeans(EJB)
                            java Message Servicce(JMS)
    • 管理技术 (Management Technologies)

                   J2EE Deployment Specification
                          J2EE Management Specification
                          J2EE Client Provisioning 
                          Java Authorization Contract for Containers 

    •  其他相关技术 (Other J2EE Technologies)

                JDBC
                       Java Data Objects (JDO)
                        CORBA (Java IDL and Java RMI-IIOP)
                       JavaMail
                       Transactions

    作为一名普通 J2EE 应用程序的开发者来说,我们只需要重点学习其中的一部分技术就可以了,对于其他部分只要做到心中有数,哪天需要用到了知道跑哪里去找到资料就行了!

    一般 J2EE 应用开发人员所必须熟练掌握的。Java Server Page,Java Servlet,Enterprise JavaBean,JDBC,Transactions。还有 JAXP 等 XML 相关技术,Java Message Service,Java Mail,JDO 等等是最好应该掌握的。其他 Management Technologies,Connector Architecture 等等主要是给容器提供商中间件提供商参考的,应用开发者不需要怎么关心.
    学习 Java 语言基础
    参考资料:《Java 编程思想》,JDK 文档,内含 JDK 源代码
    对于初学 java 的人来说,我不推荐使用 IDE 而直接用文本编辑器,然后用命令行编译运行。利于理解 CLASSPATH,PATH 这些最基本概念。

    几个最重要的命令行工具

    javac:            编译源文件到 class 文件
           java:              运行 class
           jar:                打包工具
           javadoc:         生成 java doc 的工具


    J2EE 基础
    Servlet 参考资料:<<Core Servlet and JSP 2Edition>> 和 <<More Servlets and Java Server Pages>>
    EJB 参考资料:<< Enterprise JavaBeans, 3nd Edition>> 和 << Mastering Enterprise Java Beans Third Edition>>
    web 服务器、应用服务器:Tomcat,Jetty,JBoss,Weblogic,WebSphere(后两个收费)
    数据库:PostgreSQL,MySQL,Oracle,MS SQL,DB2(前 2 个开源)
    如果单单只是学习 Servlet,推荐使用 Tomcat,如果学习 EJB 的话,推荐使用 Jboss,不仅仅是因为它是 Open Source 的,主要是配置比较简单,使用方便。对于初学者用来做做 EJB,JDBC 的练习,推荐 MySQL,理由简单,用户文档齐全。 PostgreSQL 国内使用者远不如 MySQL 多。
    提高参考资料:<<Refactoring: Improving the Design of Existing Code >>,<<Effective Java>> 提高代码质量和规范性。结合着学习一些优秀的开源项目的源代码。这些开源项目的代码风格,注释都是值得借鉴的。
    实际中也只能是需要什么技术再学习什么技术!
    再提高:从软件架构,Framework 层次上来学习。可参考面向对象的圣经 <<Design Patterns>>, <<Core J2EE Patterns>>。学习设计模式的时候,建议是结合实际的源代码来看,比如看看 Junit 源代码,你可以看到很多设计模式优雅的实现。




    http://blog.csdn.net/wuzhxun/article/details/3945863 推荐 java 优秀视频

    1-    Java 基础:

      v512 工作室 _Java 高端培训系列视频: http://www.verycd.com/topics/215898/

      重点看 Java.SE6 开发和 Eclipse 专辑

     

    2-    J2EE(SSH 框架):

       尚学堂科技 Java. 系列视频教程:http://www.verycd.com/topics/93279/

       重点看 SSH 框架(Struts+Spring+Hibernate),王勇老师讲的,很不错。

     

    3-    J2EE 项目(以下视频均含源代码):

    (1)我的智囊团 J2EE 项目实训视频 :

    http://blog.xunlei.com/web/category.html?uin=ljtcjd&category_id=1413&keyword= 我的智囊团

    (2)Java 项目开发全程实录 (10 个项目):http://www.verycd.com/topics/2722577/

     

    * 第一阶段:Java 基础,包括 java 语法,面向对象特征,常见 API,集合框架; * 第二阶段:java 界面编程,包括 AWT,事件机 制,SWING,这个部分也可以跳过,用的时候再看都能来及; * 第三阶段:java API:输入输出,多线程,网络编程,反射注解等,java 的精华 部分;* 第四阶段:数据库 SQL 基础,包括增删改查操作以及多表查询;* 第五阶段:JDBC 编程:包括 JDBC 原理,JDBC 连接库,JDBC API, 虽然现在 Hibernate 比 JDBC 要方便许多,但是 JDBC 技术仍然在使用,JDBC 思想尤为重要;* 第六阶段:JDBC 深入理解高级特性:包括数据 库连接池,存储过程,触发器,CRM 思想;* 第七阶段:HTML 语言学习,包括 HTML 标签,表单标签以及 CSS,这是 Web 应用开发的基础;* 第八阶 段:JavaScript 脚本语言,包括 javaScript 语法和对象,就这两个方面的内容; * 第九阶段:DOM 编程,包括 DOM 原理,常用的 DOM 元素以及比较重要的 DOM 编程思想;* 第十阶段:Servlet 开发,从此开始踏入 java 开发的重要一步,包括 XML,Tomcat 服务器的安装使用操 作,HTTP 协议简单理解,Servlet API 等,这个是 java web 开发的基础;* 第十一阶段:JSP 开发:JSP 语法和标签,自定义标 签,EL,JSTL 库了解以及 MVC 三层架构的设计模式理念;* 第十二阶段:AJAX 开发:AJAX 原理,请求响应处理,AJAX 开发库; * 第十三阶 段:轻量级框架,三大框架之一 Struts 框架的学习,自此踏入 java web 开发的精华部分,包括 Struts 体系架构,各种组件,标签库和扩展性的 学习;* 第十四阶段:Hibernate 框架学习,三大框架之一,包括检索映射技术,多表查询技术,缓存技术以及性能方面的优化;* 第十五阶 段:Spring 框架的学习,三大框架之一,包括了 IOC,AOP,DataSource,事务,SSH 集成以及 JPA 集成;
    也可以看看网上的视频:----j2se------java 基础加强 -----jdbc -----j2se 实例 ------ 张孝祥 javaweb
    视频教程 ------ 张孝祥 javascript------servlet + jsp -----j2ee 实例 ---

     

     

    从网上发现这篇文章,发现和我写的一篇关于《知识体系》的文章互相呼应,就转过来了。

    转自:http://tieba.baidu.com/f?kz=692446591

    怎么学习 Java,这是很多新手经常会问我的问题,现在我简单描述下一个 Java 初学者到就业要学到的一些东西:
        首先要明白 Java 体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard

    Edition,我们经常说到的 JDK,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展 J2EE 和 J2ME。
    J2ME,The Micro Edition of the Java 2
    Platform。主要用于嵌入式 Java,如手机,PDA 等等。J2EE,Java 2 Platform,Enterprise
    Edition,就是所谓的企业级 Java,适合企业的大型应用开发。
    J2SE:
        新手最初学习的时候先要从 J2SE 开始学起,所包含的内容主要分为:面向对象概念的理解、Java 基本语法的学习,Java 桌面图形界面应用程序的开发,掌握常用的 Java API 等(关键是要学会怎样查阅)。
    重点:Java 基本语法(循环结构,数据类型,数组,运算符等)、Swing,awt,事件机制、文件输入输出流处理等
    难点:面向对象思想的理解(接口、类等)、线程、socket 网络编程等
    视频教程推荐:孙鑫的 Java 基础视频教程、张孝祥的 Java 基础视频教程,讲的都很细,而且这两位老师在教学方面都有很好的经验。
    J2EE:
           

    在学习了 J2SE 之后,你可以尝试着慢慢过渡到 J2EE,当然,学习 J2EE 海需要很多非 JAVA 技术的支撑,比如数据库技术,网页编程技术等等,待会我
    会详细介绍这两方面的内容。J2EE 有三个必学的框架,如果你说你学了 J2EE,但又不会这三个框架的话,那会让人笑掉大牙,这三个框架分别是
    Struts、Spring 和 Hibernate,虽然这三个框架应用很广,但不代表这三个框架就代表了 J2EE,J2EE 还有很多其他的东西,比如
    EJB,作为一款重量级(此重量级不是指重量级选手那个意思,此重量级非彼重量级)框架,虽然这个应用慢慢的再被其他框架所取代,但 EJB3.0 的出现也
    给它带回一些生机,作为一个分布式应用的框架,也是大家要去学习和了解的知识。
            当然,刚才说到 J2EE 包含的范围很广,即使我把我所了解的所有技术说出来,也并不能代表 J2EE,这是一个很深很广的学问,需要大家以后再工作的时候慢慢去发现了。我所了解的还包括:
    JDBC:Java 数据库连接对象,基础中的基础,Hibernate 也只是对它的封装而已
    JNDI: Java 命名与目录接口,J2EE 重要规范之一
    EJBS: 上面已经提到过了
    RMI: 提供远程调用方法的支持,主要用于程序分布式开发
    JMS: Java 消息服务,中间件技术
    JAVA IDL: 提供 J2EE 平台与 CORBA 交互能力和互联能力的技术
    JTS: 组件事务监视器
    JTA: 事务划分的一个技术
    JAVAMAIL: Java 中的邮件技术
    JAF: Java 启动框架, 没研究过
    Log4j,一款日志处理的框架应用
    Junit:单元测试的好帮手
    freemarker、velocity:两款不错的模板引擎
    与 Flash 的交互 Flex:目前很多的 SNS 应用就是使用到了这个技术
    Web services: 想知道我们论坛天气预报的效果是怎么做的吗?请关注这个技术
    SOA: 面向服务架构,未来技术发展的趋势之一
    ……
           

    不过前面介绍到得这些都不是 J2EE 的基础, 是属于框架应用级别的. 要真正把上面说到的知识掌握好, 还是的学习 J2EE 最核心的东西:JDBC、JSP、
    servlet 和 JavaBean, 后面三个也是学习 SSH 的基础 (Struts/Spring/Hibernate 的简称). 鉴于 J2EE 的内容太过复
    杂, 建议大家最初只学习: JSP,
    servlet 和 JavaBean,等这个基础掌握好再把 SSH 学习了,再对其他 J2EE 技术有个大致的了解就可以出去找工作了。当然,找工作的前提除了
    把 Java 学习好,还会有一些其他的技术也是必须要掌握的。

    -_- 我很简单,Java 却要求我学这么多复杂的东西。除了这些技术的东西,在这阶段,大家更多的是会接触到比如设计模式的东西,比如工厂模式、桥梁模式、单例 模式等等,还要学习建模思想(比如 UML 建模等等)和软件生命周期等等。这些是升华大家编程思想的手段和途径。
    数据库技术:
         数据库几乎是程序中不可或缺的一部分, 在整个软件开发中更是占据了重要作用. 数据库在整个软件中扮演的是地基的角色, 你要修房子, 就要先打好地基, 你要做软件, 就要先设计好的数据库. 目前数据库几乎都是关系型数据库, 代表的有:
    SQL Server, 目前最新的好像是 2008, 我不是很喜欢追赶时髦, 用的还是 2005, 不过也很不错了, 在此之前还有 2000.
    MySQL, 最知名的开源数据库之一, 我很喜欢它的小巧耐用, 学过 SQL SERVER 数据库再学它, 无师自通, 易如反掌.
    ORACLE. 甲骨文公司的产品, 大型数据库, 正版的一般公司买不起. 只有看看了, 不过现在 Java 开发 60% 都是会使用到这个数据库, 再加上现在甲骨文已经把 sun 公司收购了,JAVA 和 ORACLE 得关系更加暧昧, 各位得多花些时间在这上面了.
    除了这些,你还应该了解一些桌面应用软件开发用到的数据库,比如说 sqlite。你在制作安装程序的时候可以把这个数据库打包进你的安装程序。
    网页编程基础:
         网页编程基础要学的内容也比较多, 但主要集中在以下这三个技术之上, 大家每天看的各种样式的网页都是它们呈现的:
    HTML: 超文本标记语言
    CSS: 层叠样式表
    Javascript: 浏览器客户端脚本语言
    现在更是流行各种 JavaScript 库, 比如:Jquery、ExtJs 等,你要是会其中的某一个库的使用,找工作 so easy。
    J2ME:
        

    如果你在学习了以上技术还不过瘾,可以再学习手机程序的开发,就我个人看来,开发手机程序技术其实蛮简单的,难点在于优化,比如怎么让你写的程序尽量的节
    约手机资源,“代码诚可贵,手机价更高“,所以不得不比 PC 机多考虑很多成本和实用性问题。J2ME 的学习的话,切忌不要单纯的再模拟器上测试,一定要找
    真机测试,真机和模拟器的效果之间差别是很大的。更多手机开发技术,有兴趣的朋友可以和我一起探讨。
    开发工具:
       

    开发工具的选择主要还是看大家的习惯,我个人比较喜欢使用 eclispe,功能很强大,也很好拓展其他的功能。当让初学你也可以选择 JCreator,或
    者最好就直接用记事本。等你熟悉了 Java 代码之后,就可以使用 JBuilder、eclispe 或者 netbeans 这一类的工具了。
         先说到这里先,以后大家一起完善这个帖子。尽量再给大家整理一些学习的资源在这里。也欢迎大家一起整理我文章中提到的一些技术资源和开发工具。最后,再和大家分享一句话:生命欣欣向荣,唯奋斗不息。也和大家分享一幅 Java 学习路线图:
    untitled

     

     

     

    在开始之前有必要再讨论一下 J2ME,J2SE,J2EE 这些概念。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式 Java,如手机,PDA 等等。J2SE,Java 2 Platform,Standard Edition,我们通常所说的 JDK(Java Development Kit) 包含在此,是 J2EE 的基础。J2EE,Java 2 Platform,Enterprise Edition,就是所谓的企业级 Java。这些只是从 API 级别上的划分,实际上 Sun 给 J2EE 的定义是:开发基于组件的多层的企业级应用的规范。也 就是为各种不同的技术定义一个 Java 的规范,使这些不同的技术结合起来,在 Java 平台上构建强壮的企业级应用。从这一点来看,J2EE 这个概念应该是 涵盖 J2ME,J2SE 的。比如一个典型的 J2EE 应用,网上商店,它支持 web 方式下订单,也支持手机下订单。显然必须用到 J2SE,J2ME。所以也 就不存在所谓的从 J2SE 转向 J2EE 的问题了,只是后者包含的范围更广而已。

    来看看 Sun 给出的 J2EE 相关技术主要分为几大块。

    1. Web Service 技术

    -   Java API for XML Processing (JAXP)

    -   Java API for XML Registries (JAXR)

    -   Java API for XML-based RPC (JAX-RPC)

    -     SOAP with Attachments API for Java (SAAJ)

    2. 组件模型技术(Component Model Technologies)

    -   Java Servlet

    -   JavaServer Pages

    -   JavaServer Faces

    -   Enterprise JavaBeans

    -   Java Message Service

    -     J2EE Connector Architecture

    3. 管理技术 (Management Technologies)

    -   J2EE Deployment Specification

    -   J2EE Management Specification

    -   J2EE Client Provisioning

    -     Java Authorization Contract for Containers

    4. 其他相关技术 (Other J2EE Technologies)

    -   JDBC

    -   Java Data Objects (JDO)

    -   CORBA (Java IDL and Java RMI-IIOP)

    -   JavaMail

    -   Transactions

    如此之多的技术难免使初学者无所适从,望而却步。即使是一位经验丰富的 J2EE 开发者,又有几个人敢说 J2EE 相关的技术我都熟练掌握了。不过作为 一名普通 J2EE 应用程序的开发者来说,我们只需要重点学习其中的一部分技术就可以了,对于其他部分只要做到心中有数,哪天需要用到了知道跑哪里去找到资 料就行了。以我个人的观点,下面这些技术是一般 J2EE 应用开发人员所必须熟练掌握的。Java Server Page,Java Servlet,Enterprise JavaBean,JDBC,Transactions。还有 JAXP 等 XML 相关技术,Java Message Service,Java Mail,JDO 等等是最好应该掌握的。其他 Management Technologies,Connector Architecture 等等主要是给容器提供商中间件提供商参考的,应用开发者不需要怎么关心,等用到了再去学习也不迟。

    语言学习篇

    首先是 J2SE 基础。学习一门新技术,无外乎阅读和实践了。而一本好的参考书对于初学者来说显得格外重要。现在市面上的 Java 书籍可以说是铺天盖地,质量也是良莠不齐,令初学者无所适从。所以还是先推荐几本书籍吧。目前对于 Java 基础知识,大家一般都比较推荐两本 书,<> 和 << Core Java? 2, Volume I: Fundamentals >>。第一本书不必多说了,Bruce Eckel 的大作,Jolt 获奖书籍。内容比较全面,基本涵盖了 java 语言的方方面面。这本书提供了相当丰富的例子,非常有利于对学习内容的了解。另外 书中第一部分对于 OO 基本书籍的介绍,我觉得对于刚接触OO的人来说帮助会很大。而且此书是 Open Source 的,可以从作者网上下载http://www.mindview.net/Books/TIJ/而 对于习惯于读中文版的学习者来说,侯捷翻译的中文版是不错的选择。要说这本说的缺点可能就是对于初学者来说厚了一点,这也是一些人并不推荐此书作为初学者 学习用书的原因吧。后面一本 <>,目前已经是第七版了,单从它出版的次数来看也可以看出此书受欢迎的程度,这本书特点也是讲述比较全面系统, 基本上一路啃下来的话 Java 语言基础应该算过关了。缺点也是太厚了,有点像参考手册,前面部分花了不少篇幅讲 Swing 和 Applet,可能对初学者不 是很有用。还有一些像 << Java in a nutshell>> 也是比较不错的基础书籍。

    学习了基本的语言基础,别忘了最重要也是最有用的资料还是 JDK 文档。从你学习 java 的第一天开始 JDK 文档应该是常备手头了。如果你碰到问题首 先想到的是到论坛上去提问而不是查阅 Jdk 文档,那先别继续往下学习了,学会查 JDK 文档先。不夸张的说在我们的初学者论坛中 60% 的问题是光查一下 JDK 文档就能解决问题的。最新 JDK Documentation 下载地址http://java.sun.com/j2se/1.4.2/download.html( 目前最新版是 J2SE5 http://java.sun.com/j2se/1.5.0/download.jsp)不能光说不练,同一下载页面把 JDK 给下载回来。安装完后有一点我想提一下,安装路径下有一个 src.zip( 有些 jdk 版本是 src.jar),好东西 啊 ---JDK 源代码,老是有人在论坛上问哪里有 JDK 源代码下载,你说东西就放在你家里还到处找。有了这个有些问题就需要在论坛上跟人家争来争去了,翻 开源代码瞧一下什么疑问都没有了。几个最重要的命令行工具是

    javac:            编译源文件到 class 文件

    java:              运行 class

    jar:                打包工具。

    javadoc:         生成 java doc 的工具。

    对于初学 java 的人来说,我不推荐使用 IDE 而直接用文本编辑器,然后用命令行编译运行。这样有利于理解 CLASSPATH,PATH 这些最基本 概念。CLASSPATH 是初学者比较容易感觉迷惑的地方。现在的 IDE 太聪明了,给个名字就给你自动生成 java source code,自动编译。可能你运行完了你的第一个 Hello World 程序,还不知道 java 和 javac 是用来做什么的。至于实际的项目开发,一款合适的 IDE 还是十分重要的,我们稍后再对 java 开发工具做一 些介绍。

    J2EE 基础和 Java 语言进阶

    学习完语言基础,就可以比较自然地转入 J2EE 实际技术的学习了。J2EE 实在是比较庞杂,而 EJB,Servlet,这些核心技术是作为每一个 J2EE 开发人员所需要掌握的。关于 servlet,我比较推荐 <> 和 <>,第一本是 Sun 推荐的 Servlet 教材。第二本是 当年 Amazon 最畅销 Java 书籍,五星级书籍。这本书机械工业出版社有中文版叫 <>,感觉翻译得还可以,第二版好像还没有看到有中文版。 两本书都全面系统地介绍了 JSP 和 Sevlet 知识,从 web 服务器配置,JSP,Servlet 基本编程,标记库 (Tag Lib),过滤器,事件框架都有很好地描述。提供地例子也比较实用。对于 EJB 学习,比较著名有两本书,<< Enterprise JavaBeans, 3nd Edition>> 和 << Mastering Enterprise Java Beans Third Edition>>,两位作者 Richard Monson,Ed Roman 都是属于业界重量级人物。而 Richard Monson 本身就是 EJB 规范专家组成员。对我来说,两本书难分优劣,第二本书有个好处就是可以免费下载http://www.theserverside.com/books/wiley/masteringEJB/index.tss

    还是那句话,不能光说不练,不过 J2EE 的练习做起来有一点麻烦,应用服务器是不可少的,最好还得准备个轻量级的数据库。下面简单介绍一下这些工具。

    web 服务器 (Servlet Container) 方面有。

    Tomcat:          http://jakarta.apache.org/tomcat/

    Jetty:              http://jetty.mortbay.org/jetty/

    应用服务器常用的有,

    Jboss:            http://www.jboss.org/products/index

    Weblogic:       http://www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/server

    WebSphere:    http://www-128.ibm.com/developerworks/downloads/ws/was/?S_TACT=105AGX28&S_CMP=DLMAIN

    Tomcat,Jetty,Jboss 都是 Open Source。Weblogic 和 WebSphere 是 J2EE 服务器中的老大级人物,价格也不菲。不过对于开发者有免费的试用版下载。

    如果单单只是学习 Servlet,推荐使用 Tomcat,它是 Sun 官方指定的 Servlet,JSP 规范的参考实现。对初学者最重要的是它使用比 较简单,自带文档比较齐全,使用者众多,有什么问题容易在论坛上面得到帮助。如果学习 EJB 的话,推荐使用 Jboss,不仅仅是因为它是 Open Source 的,主要是配置比较简单,使用方便。比如说对于连接数据库,对于常用的 MySQL,Oracle,MS SQL 等等都提供了 Sample Config 文件,直接拿过来做些小改动扔到 Deploy 目录下就可以用 DataSource 了,部署 J2EE 应用也简单,把整个.ear 或者.war 扔 到 deploy 下就可以了。唯一不方便的地方是从 Jboss3.0 开始,它的文档开始收费了。但是对于一些基本的配置,在网上还是非常容易找到的,毕竟它 太流行了。至于 Weblogic,也比较容易使用,不过比起 Jboss 来个头大了很多,通过强大的管理界面使得一些常用的配置工作变得十分简单。和 Jboss 比起来它的文档就太多了,简直是有点罗里八嗦,比如要部署一个.ear 文件,一般我们也就是直接扔到 domain 下的 applications 目录下就会自动 deploy 了,但是要看它的文档可是长篇大论,容易吓着初学者,以为这又是什么高深的学问。至于 WebSphere,个人不推荐初学者使 用,相比前俩个 Server 比较难使,而且狂吃内存。不过在企业级市场这个家伙表现不俗,毕竟是出生于 IBM 这样的豪门。

    数据库方面,目前常见的主要有 PostgreSQL,MySQL,Oracle,MS SQL,DB2 等等。前面两个是开源数据库,后面几个基本上垄断着大部分的数据库市场。对于初学者用来做做 EJB,JDBC 的练习,我推荐 MySQL,理 由还是很简单,开源软件不要钱,个头小使用方面,用户众多文档齐全。下载地址http://www.mysql.com/products/mysql/。PostgreSQL 也可以考虑,不过国内使用者远不如 MySQL 多,所以要在论坛上问起问题来就少方便一些了,下载地址http://www.pervasive-postgres.com/downloads/。至于后面那些比较重量级的数据库,为了做做练习而言就不用考虑了, 咱也花不起这个钱啊。

    学习完 J2EE 的这些具体技术,这个时候进行基本的 J2EE 开发应该是不成问题了。此时应该考虑提高自己的代码质量了。这里我强烈推荐 Martin Fowler 的<>,这本书不是一本非常实际的书,作者完全是手把手地教你如何提高代码质量,从具体地代码中告诉你什么是代码的 Bad Smell,如何去掉这些 Bad Smell。不少书评是这么说的,这本书对于初级,中级的读者帮助是立杆见影的。至少就我接触到的几个学习编程不久的程序员,编码质量在短期内都有很大提 高。当然重构 (Refactoring) 这一概念并不只针对 Java 语言的,它对所有 OO 语言都是适用的。重构的概念是如此深入人心,以至于今天几乎所有 流行的 IDE 工具都有对重构的支持。这里我还想再推荐一本<>。从 C++ 过来的程序员都知道<>在 C++ 领域的地位,至今还流传 着这样的趣话,C++ 程序员分为两种,一种是读过<>的,另一种是没有读过 C++ 的。虽然这本<>在 Java 领域的影响也许没有 那么大,但对于 Java 程序员绝对有相当的指导价值。作者是 Sun 公司的 Joshua Bloch,java Collection framework 的设计者。作者站在 JDK 设计者的角度向你介绍他的 Best Practice,应该这样做而不应该那样做,对于 JDK 中某些 API 设计的缺陷他也毫不袒护的指出。Java 语言之父 James Gosling 为此书写的前言是这么说的“I sure wish I had had this book ten years ago。 Some might think that I don't need any Java books, but I need this one”。这本书会让你觉得原来你对 Java 还是有很多东西不了解的。举个例子来说,对象的 equals 方法,我们认为它很简单,也许你每天都在为你新写 的 Class 重载这个方法,但是你在重载的时候注意过“自反”,“对称”,“传递”这些必须要考虑的因素,你是否同时还小心谨慎的重载了 hashcode 这个方法?如果没有,建议你要读一下这本书。读完这本书,你会觉得离 Java 的距离更近了。上面两本书都出过中文版,后面一本<>还有两个版 本的中文版,第一次翻译的比较差一点,后来机械工业出版社又委托潘爱民先生重新翻译了一遍。同一本书在同一个出版社连续被翻译了两次也说明国内出版界对这 本书还是比较重视的。

    这个阶段,在看书的同时,可以结合着学习一些优秀的开源项目的源代码。这些开源项目的代码风格,注释都是值得借鉴的。实在太懒也别忘了手头上还有个 Jdk 的源代码。其实也不用刻意去找源代码,在实际的 J2EE 项目开发中,基本上都会用到一些优秀的开源项目。Framework 可能会用到 Spring,Struts,Log 机制基本上都会 JarkartaCommons Log 或者 Log4j,单元测试会大多会用 Junit,结合项目阅读一下其中的一些源代码,既可以提高自己又对项目会有所帮助,说不定因此而得到 PM 的赏 识呢。一举两得,何乐而不为呢。呵呵,有点扯远了。过了初学者阶段,该学会如何找到适合自己的 Java 书籍了。历经数十载,今天的 Java 技术已经变的如 此之庞杂,我相信即使穷净一个人毕生之精力也不可能把 Java 所有的相关技术都学通,何况新技术还在层出不穷地推出,3 年之前谁会知道 Struts 会成为 Web 框架事实上的工业标准。2 年之前谁会知道 Hibernate 会在今天独领风骚。既然已经不能指望一次性把 java 技术的方方面面都学个通,在实际中 也只能是需要什么技术再学习什么技术了。而能否选择一本好的参考书籍带来的就是事半功倍和事倍工半的效果。所以我觉得花点时间放在选择书籍上面还是很值得 的,否则你在后面只会花更多的时间。下面我谈谈自己选择书籍的一些经验,不一定正确。首先看作者,像上面提到的那些书的作者,都是业界鼎鼎大名的,选择他 们的书一般错不了。大家看的书多了,自己胸中自然也会有一个 list,哪些作者是信得过的。二看出版社,计算机书籍方 面,Oreilly,Addison-Wesley 都是公认比较好的出版社。对于目前比较流行的 Java 技术,Oreilly 的 <> 系列是不 错的选择。另外我还会去看看 Amazon 网站 (http://www.amazon.com/) 的书评,一般小于 3 星级的书我都不会考虑。还有一个好去处 theserverside,http://www.theserverside.com/的 书评,这里的书评比较有趣,往往都有很激烈的争论,里面经常会看到一些名人在发言。我要向所有 Java 学习者推荐,如果我的收藏夹里面只能存放两个网站, 我会选择 java.sun 和 theserverside。在这里你可以了解最新的 Java 动态,可以学习第一手的 Java 资料,可以看到 Java 高手们 (里面不乏业界大腕) 激烈辩论。

    到此阶段,Java Developer 的基本功底应该算是打好了吧,往后就是不断学习喽。结束这一段之前,最后再介绍一本书 Oreilly 的 <>,因为我觉得多线程编程属于 Java 基本功,每一个想学好 Java 的人都应该好好掌握。

    提高篇

    在这个阶段应该从软件架构,Framework 层次上来学习了。作为面向对象的圣经 <>, 这本书是不得不推荐的。不用再多说了,这本在面向对象领域地位完全是属于教父级别的。不管你学习的是什么 OO 语言,不管你现在是用.Net 还是 J2EE 开 发,这本书都是你进阶之路上的必读之书。而 <> 则专门针对于 J2EE 来讨论设计模式,书中 Sun Java Center 的资深设计师描述了 J2EE 关键技术的模式。最佳实践,设计策略和经过验证的解决方案。对于每一个希望成为 J2EE 架构师或者设计师,这本书值得一读。学习设计模式的时候,建议是结合实际的源代码来看,比如看看 Junit 源代码,你可以看到很多设计模式优雅的实现,作 者之一 Erich Gamma 本身就是 <> 的作者。至于 J2EE 的设计模式,Sun 还开辟了专门的空间http://java.sun.com/blueprints/patterns/,里面有对常用模式的讨论又提供了详细的源代码样例。正如 Grady Booch 所说,模式对于普遍问题提供了通用的解决方案,利用模式就等于拥有一个强大的专家队伍。如果你还没有学习,现在就开始吧。此外对于面向对象方法论,极限编程的思想也应该有所了解http://www.extremeprogramming.org/。 对于 J2EE 项目的具体实施,Rod Johnson 的 <> 也很有价值,该书以作者丰富的实战经验向我们展示如何用尽可能简单的解决方案构建 J2EE 应用,书中作者第一次提出这样的观点,很多时候,J2EE 应用完全没有必要用到 EJB,对于言必称 EJB 的广大 J2EE 开发者来说,怎么说也有点惊世咳俗 的味道。当然,作为 Servlet 和 JDO 两个专家组的成员,这可不是作者信口胡驺的。今天风靡 Java 世界的 Spring 框架最初便是源于此书,而 IOC,AOP 等概念更是被时下的 java 开发者挂在嘴边。最后,作为对 Java 的深入学习,Java 技术的各个 Specification 也有必要一 读。

     

     

    在开始之前有必要再讨论一下 J2ME,J2SE,J2EE 这些概念。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式 Java,如手机,PDA 等等。J2SE,Java 2 Platform,Standard Edition,我们通常所说的 JDK(Java Development Kit) 包含在此,是 J2EE 的基础。J2EE,Java 2 Platform,Enterprise Edition,就是所谓的企业级 Java。这些只是从 API 级别上的划分,实际上 Sun 给 J2EE 的定义是:开发基于组件的多层的企业级应用的规范。也 就是为各种不同的技术定义一个 Java 的规范,使这些不同的技术结合起来,在 Java 平台上构建强壮的企业级应用。从这一点来看,J2EE 这个概念应该是 涵盖 J2ME,J2SE 的。比如一个典型的 J2EE 应用,网上商店,它支持 web 方式下订单,也支持手机下订单。显然必须用到 J2SE,J2ME。所以也 就不存在所谓的从 J2SE 转向 J2EE 的问题了,只是后者包含的范围更广而已。

    来看看 Sun 给出的 J2EE 相关技术主要分为几大块。

    1. Web Service 技术

    -   Java API for XML Processing (JAXP)

    -   Java API for XML Registries (JAXR)

    -   Java API for XML-based RPC (JAX-RPC)

    -     SOAP with Attachments API for Java (SAAJ)

    2. 组件模型技术(Component Model Technologies)

    -   Java Servlet

    -   JavaServer Pages

    -   JavaServer Faces

    -   Enterprise JavaBeans

    -   Java Message Service

    -     J2EE Connector Architecture

    3. 管理技术 (Management Technologies)

    -   J2EE Deployment Specification

    -   J2EE Management Specification

    -   J2EE Client Provisioning

    -     Java Authorization Contract for Containers

    4. 其他相关技术 (Other J2EE Technologies)

    -   JDBC

    -   Java Data Objects (JDO)

    -   CORBA (Java IDL and Java RMI-IIOP)

    -   JavaMail

    -   Transactions

    如此之多的技术难免使初学者无所适从,望而却步。即使是一位经验丰富的 J2EE 开发者,又有几个人敢说 J2EE 相关的技术我都熟练掌握了。不过作为 一名普通 J2EE 应用程序的开发者来说,我们只需要重点学习其中的一部分技术就可以了,对于其他部分只要做到心中有数,哪天需要用到了知道跑哪里去找到资 料就行了。以我个人的观点,下面这些技术是一般 J2EE 应用开发人员所必须熟练掌握的。Java Server Page,Java Servlet,Enterprise JavaBean,JDBC,Transactions。还有 JAXP 等 XML 相关技术,Java Message Service,Java Mail,JDO 等等是最好应该掌握的。其他 Management Technologies,Connector Architecture 等等主要是给容器提供商中间件提供商参考的,应用开发者不需要怎么关心,等用到了再去学习也不迟。

    语言学习篇

    首先是 J2SE 基础。学习一门新技术,无外乎阅读和实践了。而一本好的参考书对于初学者来说显得格外重要。现在市面上的 Java 书籍可以说是铺天盖地,质量也是良莠不齐,令初学者无所适从。所以还是先推荐几本书籍吧。目前对于 Java 基础知识,大家一般都比较推荐两本 书,<> 和 << Core Java? 2, Volume I: Fundamentals >>。第一本书不必多说了,Bruce Eckel 的大作,Jolt 获奖书籍。内容比较全面,基本涵盖了 java 语言的方方面面。这本书提供了相当丰富的例子,非常有利于对学习内容的了解。另外 书中第一部分对于 OO 基本书籍的介绍,我觉得对于刚接触OO的人来说帮助会很大。而且此书是 Open Source 的,可以从作者网上下载http://www.mindview.net/Books/TIJ/而 对于习惯于读中文版的学习者来说,侯捷翻译的中文版是不错的选择。要说这本说的缺点可能就是对于初学者来说厚了一点,这也是一些人并不推荐此书作为初学者 学习用书的原因吧。后面一本 <>,目前已经是第七版了,单从它出版的次数来看也可以看出此书受欢迎的程度,这本书特点也是讲述比较全面系统, 基本上一路啃下来的话 Java 语言基础应该算过关了。缺点也是太厚了,有点像参考手册,前面部分花了不少篇幅讲 Swing 和 Applet,可能对初学者不 是很有用。还有一些像 << Java in a nutshell>> 也是比较不错的基础书籍。

    学习了基本的语言基础,别忘了最重要也是最有用的资料还是 JDK 文档。从你学习 java 的第一天开始 JDK 文档应该是常备手头了。如果你碰到问题首 先想到的是到论坛上去提问而不是查阅 Jdk 文档,那先别继续往下学习了,学会查 JDK 文档先。不夸张的说在我们的初学者论坛中 60% 的问题是光查一下 JDK 文档就能解决问题的。最新 JDK Documentation 下载地址http://java.sun.com/j2se/1.4.2/download.html( 目前最新版是 J2SE5 http://java.sun.com/j2se/1.5.0/download.jsp)不能光说不练,同一下载页面把 JDK 给下载回来。安装完后有一点我想提一下,安装路径下有一个 src.zip( 有些 jdk 版本是 src.jar),好东西 啊 ---JDK 源代码,老是有人在论坛上问哪里有 JDK 源代码下载,你说东西就放在你家里还到处找。有了这个有些问题就需要在论坛上跟人家争来争去了,翻 开源代码瞧一下什么疑问都没有了。几个最重要的命令行工具是

    javac:            编译源文件到 class 文件

    java:              运行 class

    jar:                打包工具。

    javadoc:         生成 java doc 的工具。

    对于初学 java 的人来说,我不推荐使用 IDE 而直接用文本编辑器,然后用命令行编译运行。这样有利于理解 CLASSPATH,PATH 这些最基本 概念。CLASSPATH 是初学者比较容易感觉迷惑的地方。现在的 IDE 太聪明了,给个名字就给你自动生成 java source code,自动编译。可能你运行完了你的第一个 Hello World 程序,还不知道 java 和 javac 是用来做什么的。至于实际的项目开发,一款合适的 IDE 还是十分重要的,我们稍后再对 java 开发工具做一 些介绍。

    J2EE 基础和 Java 语言进阶

    学习完语言基础,就可以比较自然地转入 J2EE 实际技术的学习了。J2EE 实在是比较庞杂,而 EJB,Servlet,这些核心技术是作为每一个 J2EE 开发人员所需要掌握的。关于 servlet,我比较推荐 <> 和 <>,第一本是 Sun 推荐的 Servlet 教材。第二本是 当年 Amazon 最畅销 Java 书籍,五星级书籍。这本书机械工业出版社有中文版叫 <>,感觉翻译得还可以,第二版好像还没有看到有中文版。 两本书都全面系统地介绍了 JSP 和 Sevlet 知识,从 web 服务器配置,JSP,Servlet 基本编程,标记库 (Tag Lib),过滤器,事件框架都有很好地描述。提供地例子也比较实用。对于 EJB 学习,比较著名有两本书,<< Enterprise JavaBeans, 3nd Edition>> 和 << Mastering Enterprise Java Beans Third Edition>>,两位作者 Richard Monson,Ed Roman 都是属于业界重量级人物。而 Richard Monson 本身就是 EJB 规范专家组成员。对我来说,两本书难分优劣,第二本书有个好处就是可以免费下载http://www.theserverside.com/books/wiley/masteringEJB/index.tss

    还是那句话,不能光说不练,不过 J2EE 的练习做起来有一点麻烦,应用服务器是不可少的,最好还得准备个轻量级的数据库。下面简单介绍一下这些工具。

    web 服务器 (Servlet Container) 方面有。

    Tomcat:          http://jakarta.apache.org/tomcat/

    Jetty:              http://jetty.mortbay.org/jetty/

    应用服务器常用的有,

    Jboss:            http://www.jboss.org/products/index

    Weblogic:       http://www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/server

    WebSphere:    http://www-128.ibm.com/developerworks/downloads/ws/was/?S_TACT=105AGX28&S_CMP=DLMAIN

    Tomcat,Jetty,Jboss 都是 Open Source。Weblogic 和 WebSphere 是 J2EE 服务器中的老大级人物,价格也不菲。不过对于开发者有免费的试用版下载。

    如果单单只是学习 Servlet,推荐使用 Tomcat,它是 Sun 官方指定的 Servlet,JSP 规范的参考实现。对初学者最重要的是它使用比 较简单,自带文档比较齐全,使用者众多,有什么问题容易在论坛上面得到帮助。如果学习 EJB 的话,推荐使用 Jboss,不仅仅是因为它是 Open Source 的,主要是配置比较简单,使用方便。比如说对于连接数据库,对于常用的 MySQL,Oracle,MS SQL 等等都提供了 Sample Config 文件,直接拿过来做些小改动扔到 Deploy 目录下就可以用 DataSource 了,部署 J2EE 应用也简单,把整个.ear 或者.war 扔 到 deploy 下就可以了。唯一不方便的地方是从 Jboss3.0 开始,它的文档开始收费了。但是对于一些基本的配置,在网上还是非常容易找到的,毕竟它 太流行了。至于 Weblogic,也比较容易使用,不过比起 Jboss 来个头大了很多,通过强大的管理界面使得一些常用的配置工作变得十分简单。和 Jboss 比起来它的文档就太多了,简直是有点罗里八嗦,比如要部署一个.ear 文件,一般我们也就是直接扔到 domain 下的 applications 目录下就会自动 deploy 了,但是要看它的文档可是长篇大论,容易吓着初学者,以为这又是什么高深的学问。至于 WebSphere,个人不推荐初学者使 用,相比前俩个 Server 比较难使,而且狂吃内存。不过在企业级市场这个家伙表现不俗,毕竟是出生于 IBM 这样的豪门。

    数据库方面,目前常见的主要有 PostgreSQL,MySQL,Oracle,MS SQL,DB2 等等。前面两个是开源数据库,后面几个基本上垄断着大部分的数据库市场。对于初学者用来做做 EJB,JDBC 的练习,我推荐 MySQL,理 由还是很简单,开源软件不要钱,个头小使用方面,用户众多文档齐全。下载地址http://www.mysql.com/products/mysql/。PostgreSQL 也可以考虑,不过国内使用者远不如 MySQL 多,所以要在论坛上问起问题来就少方便一些了,下载地址http://www.pervasive-postgres.com/downloads/。至于后面那些比较重量级的数据库,为了做做练习而言就不用考虑了, 咱也花不起这个钱啊。

    学习完 J2EE 的这些具体技术,这个时候进行基本的 J2EE 开发应该是不成问题了。此时应该考虑提高自己的代码质量了。这里我强烈推荐 Martin Fowler 的<>,这本书不是一本非常实际的书,作者完全是手把手地教你如何提高代码质量,从具体地代码中告诉你什么是代码的 Bad Smell,如何去掉这些 Bad Smell。不少书评是这么说的,这本书对于初级,中级的读者帮助是立杆见影的。至少就我接触到的几个学习编程不久的程序员,编码质量在短期内都有很大提 高。当然重构 (Refactoring) 这一概念并不只针对 Java 语言的,它对所有 OO 语言都是适用的。重构的概念是如此深入人心,以至于今天几乎所有 流行的 IDE 工具都有对重构的支持。这里我还想再推荐一本<>。从 C++ 过来的程序员都知道<>在 C++ 领域的地位,至今还流传 着这样的趣话,C++ 程序员分为两种,一种是读过<>的,另一种是没有读过 C++ 的。虽然这本<>在 Java 领域的影响也许没有 那么大,但对于 Java 程序员绝对有相当的指导价值。作者是 Sun 公司的 Joshua Bloch,java Collection framework 的设计者。作者站在 JDK 设计者的角度向你介绍他的 Best Practice,应该这样做而不应该那样做,对于 JDK 中某些 API 设计的缺陷他也毫不袒护的指出。Java 语言之父 James Gosling 为此书写的前言是这么说的“I sure wish I had had this book ten years ago。 Some might think that I don't need any Java books, but I need this one”。这本书会让你觉得原来你对 Java 还是有很多东西不了解的。举个例子来说,对象的 equals 方法,我们认为它很简单,也许你每天都在为你新写 的 Class 重载这个方法,但是你在重载的时候注意过“自反”,“对称”,“传递”这些必须要考虑的因素,你是否同时还小心谨慎的重载了 hashcode 这个方法?如果没有,建议你要读一下这本书。读完这本书,你会觉得离 Java 的距离更近了。上面两本书都出过中文版,后面一本<>还有两个版 本的中文版,第一次翻译的比较差一点,后来机械工业出版社又委托潘爱民先生重新翻译了一遍。同一本书在同一个出版社连续被翻译了两次也说明国内出版界对这 本书还是比较重视的。

    这个阶段,在看书的同时,可以结合着学习一些优秀的开源项目的源代码。这些开源项目的代码风格,注释都是值得借鉴的。实在太懒也别忘了手头上还有个 Jdk 的源代码。其实也不用刻意去找源代码,在实际的 J2EE 项目开发中,基本上都会用到一些优秀的开源项目。Framework 可能会用到 Spring,Struts,Log 机制基本上都会 JarkartaCommons Log 或者 Log4j,单元测试会大多会用 Junit,结合项目阅读一下其中的一些源代码,既可以提高自己又对项目会有所帮助,说不定因此而得到 PM 的赏 识呢。一举两得,何乐而不为呢。呵呵,有点扯远了。过了初学者阶段,该学会如何找到适合自己的 Java 书籍了。历经数十载,今天的 Java 技术已经变的如 此之庞杂,我相信即使穷净一个人毕生之精力也不可能把 Java 所有的相关技术都学通,何况新技术还在层出不穷地推出,3 年之前谁会知道 Struts 会成为 Web 框架事实上的工业标准。2 年之前谁会知道 Hibernate 会在今天独领风骚。既然已经不能指望一次性把 java 技术的方方面面都学个通,在实际中 也只能是需要什么技术再学习什么技术了。而能否选择一本好的参考书籍带来的就是事半功倍和事倍工半的效果。所以我觉得花点时间放在选择书籍上面还是很值得 的,否则你在后面只会花更多的时间。下面我谈谈自己选择书籍的一些经验,不一定正确。首先看作者,像上面提到的那些书的作者,都是业界鼎鼎大名的,选择他 们的书一般错不了。大家看的书多了,自己胸中自然也会有一个 list,哪些作者是信得过的。二看出版社,计算机书籍方 面,Oreilly,Addison-Wesley 都是公认比较好的出版社。对于目前比较流行的 Java 技术,Oreilly 的 <> 系列是不 错的选择。另外我还会去看看 Amazon 网站 (http://www.amazon.com/) 的书评,一般小于 3 星级的书我都不会考虑。还有一个好去处 theserverside,http://www.theserverside.com/的 书评,这里的书评比较有趣,往往都有很激烈的争论,里面经常会看到一些名人在发言。我要向所有 Java 学习者推荐,如果我的收藏夹里面只能存放两个网站, 我会选择 java.sun 和 theserverside。在这里你可以了解最新的 Java 动态,可以学习第一手的 Java 资料,可以看到 Java 高手们 (里面不乏业界大腕) 激烈辩论。

    到此阶段,Java Developer 的基本功底应该算是打好了吧,往后就是不断学习喽。结束这一段之前,最后再介绍一本书 Oreilly 的 <>,因为我觉得多线程编程属于 Java 基本功,每一个想学好 Java 的人都应该好好掌握。

    提高篇

    在这个阶段应该从软件架构,Framework 层次上来学习了。作为面向对象的圣经 <>, 这本书是不得不推荐的。不用再多说了,这本在面向对象领域地位完全是属于教父级别的。不管你学习的是什么 OO 语言,不管你现在是用.Net 还是 J2EE 开 发,这本书都是你进阶之路上的必读之书。而 <> 则专门针对于 J2EE 来讨论设计模式,书中 Sun Java Center 的资深设计师描述了 J2EE 关键技术的模式。最佳实践,设计策略和经过验证的解决方案。对于每一个希望成为 J2EE 架构师或者设计师,这本书值得一读。学习设计模式的时候,建议是结合实际的源代码来看,比如看看 Junit 源代码,你可以看到很多设计模式优雅的实现,作 者之一 Erich Gamma 本身就是 <> 的作者。至于 J2EE 的设计模式,Sun 还开辟了专门的空间http://java.sun.com/blueprints/patterns/,里面有对常用模式的讨论又提供了详细的源代码样例。正如 Grady Booch 所说,模式对于普遍问题提供了通用的解决方案,利用模式就等于拥有一个强大的专家队伍。如果你还没有学习,现在就开始吧。此外对于面向对象方法论,极限编程的思想也应该有所了解http://www.extremeprogramming.org/。 对于 J2EE 项目的具体实施,Rod Johnson 的 <> 也很有价值,该书以作者丰富的实战经验向我们展示如何用尽可能简单的解决方案构建 J2EE 应用,书中作者第一次提出这样的观点,很多时候,J2EE 应用完全没有必要用到 EJB,对于言必称 EJB 的广大 J2EE 开发者来说,怎么说也有点惊世咳俗 的味道。当然,作为 Servlet 和 JDO 两个专家组的成员,这可不是作者信口胡驺的。今天风靡 Java 世界的 Spring 框架最初便是源于此书,而 IOC,AOP 等概念更是被时下的 java 开发者挂在嘴边。最后,作为对 Java 的深入学习,Java 技术的各个 Specification 也有必要一 读。