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)
    >> 函数及其应用
    >> 数组及其使用
    >> 水仙花,裴波纳契数列,数据加密
          等藏问题之详解讲解。

  • #### 第2品级 面向对象

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

  • #### 第3等 Eclipse的采取与常用API

    >> Eclipse的设置以及使用
    >> Java API的介绍与应用
    >> 字符串类的广大操作
    >> 正则表达式的运用
    >> 日期类的行使
    >> 集合体系布局及其应用
    >> 异常系布局及其应用
    >> File类的概述及其使用
    >> IO流体系布局及其应用
    >> 递归算法,装饰设计模式,泛型的只要
          用,增强for循环,可易参数,静态导
          入等特性的详实讲解。

  • #### 第4阶段 JavaSE高级

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

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

  • #### 视频下载

    >>基础幽默版下载
    >>基础精华版下载

第二步:JavaWeb部分

  • #### 第1阶段 JavaWeb前端

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

  • #### 第2阶段 JavaWeb基础

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

  • #### 第3阶段 JavaWeb中级

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

  • #### 第4阶段 JavaWeb-jdbc

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

  • #### 第5阶段 JavaWeb-高级

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

  • #### 第6品 项目实战

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

视频下载

>>JavaWeb视频下载

老三步:SSH框架部分

Struts2框架

  • #### 1. Struts2入门

    >> 框架介绍
    >> Struts2框架介绍
    >> Struts2飞入门
    >> Struts2配置
    >> 等等

  • #### 2. action

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

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

  • #### 3. 拦截器

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

  • #### 4. Struts2核心-拦截器

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

  • #### 5. ognl与valueStack

    >> ognl介绍和基本以
    >> valueStack介绍及应用
    >> ognl获取valueStack中
          信息

  • #### 6. Struts2标签库

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

  • #### 7. Struts2归纳案例

    >> Struts2防表单重交
    >> Struts2吃json插件使用
    >> struts案例-员工信息保管

Spring框架

  • #### 1. Spring入门

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

  • #### 2. 断面编程

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

  • #### 3. 事务管理

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

  • #### 3. SSH整合

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

Hibernate框架

  • #### 1. Hibernate开发基础

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

  • #### 2. Hibernate中间开发

    >> Hibernate持久化对象的状态转换
    >> Hibernate的一级缓存及原理
    >> Hibernate关联关系安排和运用
    >> Hibernate检索方式

  • #### 3. Hibernate高等开发

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

SSH项目实战

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

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

  • #### 视频下载

    >>Struts2框架视频下载
    >>Spring框架视频下载
    >>Hibernate框架视频下载

第四步:JavaScript部分

  • #### 第1阶段 JavaScript

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

  • #### 第2阶段 Ajax

    >> 同步交互与异步交互

     

     

    传智播客J2EE学习路线图

    (2014版最新)

    第一步:JavaSE部分

    • #### 第1流 Java基础知识

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

    • #### 第2等 面向对象

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

    • #### 第3品级 Eclipse的用及常用API

      >> Eclipse的安装以及行使
      >> Java API的牵线和运
      >> 字符串类的大规模操作
      >> 正则表达式的采取
      >> 日期类的使用
      >> 集合体系布局及其使用
      >> 异常系布局及其应用
      >> File类的概述及其使用
      >> IO流体系布局及其使用
      >> 递归算法,装饰设计模式,泛型的使
            用,增强for循环,可换参数,静态导
            入等特点的事无巨细讲解。

    • #### 第4阶段 JavaSE高级

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

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

    • #### 视频下载

      >>基础幽默版下载
      >>基础精华版下载

    第二步:JavaWeb部分

    • #### 第1阶段 JavaWeb前端

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

    • #### 第2阶段 JavaWeb基础

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

    • #### 第3阶段 JavaWeb中级

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

    • #### 第4阶段 JavaWeb-jdbc

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

    • #### 第5阶段 JavaWeb-高级

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

    • #### 第6号 项目实战

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

    #### 视频下载

    >>JavaWeb视频下载

    老三步:SSH框架部分

    ### Struts2框架

    • #### 1. Struts2入门

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

    • #### 2. action

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

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

    • #### 3. 拦截器

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

    • #### 4. Struts2核心-拦截器

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

    • #### 5. ognl与valueStack

      >> ognl介绍及核心使用
      >> valueStack介绍和祭
      >> ognl获取valueStack中
            信息

    • #### 6. Struts2标签库

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

    • #### 7. Struts2归纳案例

      >> Struts2防护表单重交
      >> Struts2饱受json插件使用
      >> struts案例-员工信息保管

    ### Spring框架

    • #### 1. Spring入门

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

    • #### 2. 断面编程

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

    • #### 3. 事务管理

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

    • #### 3. SSH整合

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

    ### Hibernate框架

    • #### 1. Hibernate开基础

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

    • #### 2. Hibernate中等开发

      >> Hibernate持久化对象的状态转换
      >> Hibernate的一级缓存及原理
      >> Hibernate关联关系安排以及使用
      >> Hibernate检索方式

    • #### 3. Hibernate高级开发

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

    ### SSH项目实战

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

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

    • #### 视频下载

      >>Struts2框架视频下载
      >>Spring框架视频下载
      >>Hibernate框架视频下载

    第四步:JavaScript部分

    • #### 第1阶段 JavaScript

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

    • #### 第2阶段 Ajax

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

    • #### 第3阶段 jQuery

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

    • #### 第4阶段 EasyUI

      >> 如何运用EasyUI
      >> EasyUI的常用控件
      >> EasyUI的实在案

    #### 视频下载

    >>JavaScript视频下载

    率先独品类(软件项目管理)

    • ERP
    • 和谐办公OA系统
    • 江山电力系统
    • BOS宅急送

    #### 视频下载

    >>协调办公OA

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

    • #### Maven

      >> MAVEN的安装以及部署
      >> 坐标与因
      >> 仓库
      >> 生命周期

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

    • #### 软件类管理

    第六步:其他框架和技能

    • #### 第1阶段 WebService

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

    • #### 第2等 强大的之Apache CXF              Web服务

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

    • #### 第3阶段 Activiti

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

    • #### 第4阶段 Orcale

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

    • #### 第5阶段 Spring MVC

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

    • #### 第6阶段 MyBatis

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

    • #### 第7阶段 Mongdb

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

    • #### 第8阶段 Lucene 和Solr

      >> 全文检索的基本概念
      >> lucene 索引的操作(增删改查分页)
      >> lucene 索引的得分机制原理分析
      >> 分词器的规律与利用
      >> 索引库优化
      >> 高亮器的施用
      >> lucene 各种查询条件的牵线
      >> 全文检索与数据库检索的分

      >> lucene 在类型中的下以及要
            注意的题材
      >> solr 的牵线及环境的搭建
      >> solr 的提供的rest 的接口介绍
      >> 使用solrj 来调用solr 的服务
      >> solr 的单核心与多中心的打算
      >> solr 索引结构的辨析与配备文件介绍
      >> solr 插件的牵线与安装(与数据库
             整合插件)
      >> solr 怎么成及我们的其实利用当中

    #### 视频下载

    >>Activiti工作流视频下载

    老二个门类(软件项目管理)

    • 挪电子商城
    • 医药集中打平台
    • 杰信商贸综合管理平台
    • 新巴巴运动网
>> 异步交互原理  
>> 异步交互实现步骤  
>> 异步交互的实际案例  
>> 请求响应使用的数据格式
  • #### 第3阶段 jQuery

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

  • #### 第4阶段 EasyUI

    >> 如何利用EasyUI
    >> EasyUI的常用控件
    >> EasyUI的实在案

视频下载

>>JavaScript视频下载

先是个类型(软件项目管理)

  • ERP
  • 和谐办公OA系统
  • 江山电力系统
  • BOS宅急送

视频下载

>>协调办公OA

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

  • #### Maven

    >> MAVEN的安装与布局
    >> 坐标与因
    >> 仓库
    >> 生命周期

    >> 聚合与持续
    >> Nexus私服
    >> SSH项目+MyEclipse+maven

  • #### 软件类管理

第六步:其他框架和技艺

  • #### 第1阶段 WebService

    >> 介绍,分布式计WebService
    >> WebService与习俗的分布式计算技较
    >> Web服务普通采取叫下列场合
    >> SOAP(Simple ObjectAccess
          Protocol)5
    >> Web服务(Web Services)SOA的
          服务契约WSDL
    >> WebService底层原理
    >> 调用网上的web services服务,天气
          预报
    >> 如何看wsdl文件?
    >> 如何发布温馨之web服务
    >> 增强,修改wsdl的内容

  • #### 第2品级 强大的之Apache CXF              Web服务

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

  • #### 第3阶段 Activiti

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

  • #### 第4阶段 Orcale

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

  • #### 第5阶段 Spring MVC

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

  • #### 第6阶段 MyBatis

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

  • #### 第7阶段 Mongdb

    >> 非关系项目数据库的牵线
    >> mongodb数据库存储和相
    >> mongdb 的数据备份
    >> mongodb的安全控制
    >> mongodb 的集群(主从复制,
          副本集)
    >> mongdb 分布式存储
    >> mongodb 与java 整合

  • #### 第8阶段 Lucene 和Solr

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

    >> lucene 在档次当中的以和需要
          注意的题目
    >> solr 的介绍及环境的搭建
    >> solr 的提供的rest 的接口介绍
    >> 使用solrj 来调用solr 的服务
    >> solr 的单核心与大多中心的意图
    >> solr 索引结构的解析和部署文件介绍
    >> solr 插件的牵线和安装(与数据库
           整合插件)
    >> solr 怎么构成到我们的实在利用当中

视频下载

>>Activiti工作流视频下载

亚个档次(软件项目管理)

  • 走电子商城
  • 医药集中进货平台
  • 杰信商贸综合管理平台
  • 新巴巴运动网

 

 

 

(注:前文对Java技术做了框架性的剖析,包括Java SE、Java EE和Java
ME,让读者了解了Java由什么技术结合。为了系统地读书这些技能,本文将制定同学完整的Java技术上路线)

 

Java技术体系图

EasyUI 1

 

自从前文中我们既了解及,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:mm: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:mm: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技术。虽然说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 &
    Out》《Using C++》和《Thinking in Patterns》的作者,同时还是《Black
    Belt
    C++》文集的编排。他的修被读者称“最好之Java参考书……绝对让人口震
    惊”;“购买Java参考书最神之选项”;“我表现了的绝精的编程指
    南”。作者的别致才华,极其跨越语言的力,使笔者给捎呢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参考资料:&lt;&lt;Core Servlet and JSP
2Edition&gt;&gt;和&lt;&lt;More Servlets and Java Server
Pages&gt;&gt;  
EJB参考资料:&lt;&lt; Enterprise JavaBeans, 3nd
Edition&gt;&gt;和&lt;&lt; Mastering Enterprise Java Beans Third
Edition&gt;&gt;  

web服务器、应用服务器:Tomcat,Jetty,JBoss,Weblogic,WebSphere(后两个收费)  
数据库:PostgreSQL,MySQL,Oracle,MS
SQL,DB2(前2个开源)  
如果单单只是学习Servlet,推荐使用Tomcat,如果学习EJB的话,推荐使用Jboss,不仅仅是因为它是Open
Source的,主要是配置比较简单,使用方便。对于初学者用来做做EJB,JDBC的练习,推荐MySQL,理由简单,用户文档齐全。
PostgreSQL国内使用者远不如MySQL多。  

提高参考资料:&lt;&lt;Refactoring: Improving the Design of Existing
Code &gt;&gt;,&lt;&lt;Effective
Java&gt;&gt;提高代码质量和规范性。结合着学习一些优秀的开源项目的源代码。这些开源项目的代码风格,注释都是值得借鉴的。  

实际中也只能是需要什么技术再学习什么技术!  

再提高:从软件架构,Framework层次上来学习。可参考面向对象的圣经&lt;&lt;Design
Patterns&gt;&gt;, &lt;&lt;Core J2EE
Patterns&gt;&gt;。学习设计模式的时候,建议是结合实际的源代码来看,比如看看Junit源代码,你可以看到很多设计模式优雅的实现。

![](http://my.csdn.net/uploads/201206/11/1339428286_5303.png)

![](http://my.csdn.net/uploads/201206/11/1339428302_9175.JPG)  




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://blog.csdn.net/jinxfei/archive/2009/09/27/4602449.aspx)》的文章互相呼应,就转过来了。

转自:<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学习路线图:  
[![](http://hi.csdn.net/attachment/201005/4/0_1272935769KNxA.gif)](http://hi.csdn.net/attachment/201005/4/0_1272935756z51q.gif)

 

 

 

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

学习了基本的语言基础,别忘了最重要也是最有用的资料还是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,我比较推荐&lt;&gt;和&lt;&gt;,第一本是Sun推荐的Servlet教材。第二本是
当年Amazon最畅销Java书籍,五星级书籍。这本书机械工业出版社有中文版叫&lt;&gt;,感觉翻译得还可以,第二版好像还没有看到有中文版。
两本书都全面系统地介绍了JSP和Sevlet知识,从web服务器配置,JSP,Servlet基本编程,标记库(Tag
Lib),过滤器,事件框架都有很好地描述。提供地例子也比较实用。对于EJB学习,比较著名有两本书,&lt;&lt;
Enterprise JavaBeans, 3nd Edition&gt;&gt;和&lt;&lt; Mastering
Enterprise Java Beans Third Edition&gt;&gt;,两位作者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的&lt;&gt;,这本书不是一本非常实际的书,作者完全是手把手地教你如何提高代码质量,从具体地代码中告诉你什么是代码的Bad
Smell,如何去掉这些Bad
Smell。不少书评是这么说的,这本书对于初级,中级的读者帮助是立杆见影的。至少就我接触到的几个学习编程不久的程序员,编码质量在短期内都有很大提
高。当然重构(Refactoring)这一概念并不只针对Java语言的,它对所有OO语言都是适用的。重构的概念是如此深入人心,以至于今天几乎所有
流行的IDE工具都有对重构的支持。这里我还想再推荐一本&lt;&gt;。从C++过来的程序员都知道&lt;&gt;在C++领域的地位,至今还流传
着这样的趣话,C++程序员分为两种,一种是读过&lt;&gt;的,另一种是没有读过C++的。虽然这本&lt;&gt;在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的距离更近了。上面两本书都出过中文版,后面一本&lt;&gt;还有两个版
本的中文版,第一次翻译的比较差一点,后来机械工业出版社又委托潘爱民先生重新翻译了一遍。同一本书在同一个出版社连续被翻译了两次也说明国内出版界对这
本书还是比较重视的。

这个阶段,在看书的同时,可以结合着学习一些优秀的开源项目的源代码。这些开源项目的代码风格,注释都是值得借鉴的。实在太懒也别忘了手头上还有个
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的&lt;&gt;系列是不
错的选择。另外我还会去看看Amazon网站(<http://www.amazon.com/>)的书评,一般小于3星级的书我都不会考虑。还有一个好去处theserverside,<http://www.theserverside.com/>的
书评,这里的书评比较有趣,往往都有很激烈的争论,里面经常会看到一些名人在发言。我要向所有Java学习者推荐,如果我的收藏夹里面只能存放两个网站,
我会选择java.sun和theserverside。在这里你可以了解最新的Java动态,可以学习第一手的Java资料,可以看到Java高手们
(里面不乏业界大腕)激烈辩论。

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

提高篇

在这个阶段应该从软件架构,Framework层次上来学习了。作为面向对象的圣经&lt;&gt;,
这本书是不得不推荐的。不用再多说了,这本在面向对象领域地位完全是属于教父级别的。不管你学习的是什么OO语言,不管你现在是用.Net还是J2EE开
发,这本书都是你进阶之路上的必读之书。而&lt;&gt;则专门针对于J2EE来讨论设计模式,书中Sun
Java
Center的资深设计师描述了J2EE关键技术的模式。最佳实践,设计策略和经过验证的解决方案。对于每一个希望成为J2EE
架构师或者设计师,这本书值得一读。学习设计模式的时候,建议是结合实际的源代码来看,比如看看Junit源代码,你可以看到很多设计模式优雅的实现,作
者之一Erich
Gamma本身就是&lt;&gt;的作者。至于J2EE的设计模式,Sun还开辟了专门的空间<http://java.sun.com/blueprints/patterns/>,里面有对常用模式的讨论又提供了详细的源代码样例。正如Grady
Booch所说,模式对于普遍问题提供了通用的解决方案,利用模式就等于拥有一个强大的专家队伍。如果你还没有学习,现在就开始吧。此外对于面向对象方法论,极限编程的思想也应该有所了解<http://www.extremeprogramming.org/>。
对于J2EE项目的具体实施,Rod
Johnson的&lt;&gt;也很有价值,该书以作者丰富的实战经验向我们展示如何用尽可能简单的解决方案构建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基础知识,大家一般都比较推荐两本
书,&lt;&gt;和&lt;&lt; Core Java? 2, Volume I:
Fundamentals &gt;&gt;。第一本书不必多说了,Bruce
Eckel的大作,Jolt获奖书籍。内容比较全面,基本涵盖了java语言的方方面面。这本书提供了相当丰富的例子,非常有利于对学习内容的了解。另外
书中第一部分对于OO基本书籍的介绍,我觉得对于刚接触OO的人来说帮助会很大。而且此书是Open
Source的,可以从作者网上下载<http://www.mindview.net/Books/TIJ/>而
对于习惯于读中文版的学习者来说,侯捷翻译的中文版是不错的选择。要说这本说的缺点可能就是对于初学者来说厚了一点,这也是一些人并不推荐此书作为初学者
学习用书的原因吧。后面一本&lt;&gt;,目前已经是第七版了,单从它出版的次数来看也可以看出此书受欢迎的程度,这本书特点也是讲述比较全面系统,
基本上一路啃下来的话Java语言基础应该算过关了。缺点也是太厚了,有点像参考手册,前面部分花了不少篇幅讲Swing和Applet,可能对初学者不
是很有用。还有一些像&lt;&lt; Java in a
nutshell&gt;&gt;也是比较不错的基础书籍。

学习了基本的语言基础,别忘了最重要也是最有用的资料还是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,我比较推荐&lt;&gt;和&lt;&gt;,第一本是Sun推荐的Servlet教材。第二本是
当年Amazon最畅销Java书籍,五星级书籍。这本书机械工业出版社有中文版叫&lt;&gt;,感觉翻译得还可以,第二版好像还没有看到有中文版。
两本书都全面系统地介绍了JSP和Sevlet知识,从web服务器配置,JSP,Servlet基本编程,标记库(Tag
Lib),过滤器,事件框架都有很好地描述。提供地例子也比较实用。对于EJB学习,比较著名有两本书,&lt;&lt;
Enterprise JavaBeans, 3nd Edition&gt;&gt;和&lt;&lt; Mastering
Enterprise Java Beans Third Edition&gt;&gt;,两位作者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的&lt;&gt;,这本书不是一本非常实际的书,作者完全是手把手地教你如何提高代码质量,从具体地代码中告诉你什么是代码的Bad
Smell,如何去掉这些Bad
Smell。不少书评是这么说的,这本书对于初级,中级的读者帮助是立杆见影的。至少就我接触到的几个学习编程不久的程序员,编码质量在短期内都有很大提
高。当然重构(Refactoring)这一概念并不只针对Java语言的,它对所有OO语言都是适用的。重构的概念是如此深入人心,以至于今天几乎所有
流行的IDE工具都有对重构的支持。这里我还想再推荐一本&lt;&gt;。从C++过来的程序员都知道&lt;&gt;在C++领域的地位,至今还流传
着这样的趣话,C++程序员分为两种,一种是读过&lt;&gt;的,另一种是没有读过C++的。虽然这本&lt;&gt;在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的距离更近了。上面两本书都出过中文版,后面一本&lt;&gt;还有两个版
本的中文版,第一次翻译的比较差一点,后来机械工业出版社又委托潘爱民先生重新翻译了一遍。同一本书在同一个出版社连续被翻译了两次也说明国内出版界对这
本书还是比较重视的。

这个阶段,在看书的同时,可以结合着学习一些优秀的开源项目的源代码。这些开源项目的代码风格,注释都是值得借鉴的。实在太懒也别忘了手头上还有个
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的&lt;&gt;系列是不
错的选择。另外我还会去看看Amazon网站(<http://www.amazon.com/>)的书评,一般小于3星级的书我都不会考虑。还有一个好去处theserverside,<http://www.theserverside.com/>的
书评,这里的书评比较有趣,往往都有很激烈的争论,里面经常会看到一些名人在发言。我要向所有Java学习者推荐,如果我的收藏夹里面只能存放两个网站,
我会选择java.sun和theserverside。在这里你可以了解最新的Java动态,可以学习第一手的Java资料,可以看到Java高手们
(里面不乏业界大腕)激烈辩论。

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

提高篇

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