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项目实战

第四步: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项目实战

    第四步: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
      >> Web瑟维斯(Service)(Service)与观念的分布式总计技较
      >> Web服务普通拔取于下列场面
      >> SOAP(Simple ObjectAccess
            Protocol)5
      >> Web服务(Web Services)SOA的
            服务契约WSDL
      >> WebService(Service)底层原理
      >> 调用网上的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(Service)(管理流程定义)
      >> RuntimeService(Service)(执行管理,包括
            启动、推进、删除流程实例等操作)
      >> 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

    >> 介绍,分布式计Web瑟维斯(Service)
    >> Web瑟维斯(Service)(Service)与观念的分布式总结技较
    >> 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(Service)(管理流程定义)
    >> Runtime瑟维斯(Service)(执行管理,包括
          启动、推进、删除流程实例等操作)
    >> TaskService(任务管理)
    >> History瑟维斯(Service)(历史管理(执行完
          的多少的田间管理))
    >> IdentityService(Service)(协会机关管理)
    >> FormService(一个可选服务,任务
          表单管理)

  • #### 第4阶段 Orcale

    >> SQL
    >> PL/SQL
    >> JAVA调用存储过程和函数
    >> 触发器
    亚洲城误乐城ca88网站,>> 数据字典
    >> 用户安全
    >> 闪回
    >> 分布式数据

  • #### 第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技术序列图

亚洲城误乐城ca88网站 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)(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
瑟维斯(Service)(Service)s的形式宣布。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 瑟维斯(Service)(Service)s即为注册服务。一般的话,注册服务总是以Web
瑟维斯(Service)s的款型运行的。

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语言功底学习的书本,我们一定会推荐BruceEckel的《Thinking in
    Java》。它是一本写的非常深远的技艺书籍,Java语言基础部分骨干没有此外任何一本书可以超过它。该书的作者布鲁斯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》,琼斯 和Bartlett(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 哈罗德的随笔。两本书的品格基本一致,推荐阅读是第一版的《Jvava
    I/O》,讲得相比浅显,内容相对相比较集中,实例也很多。第二版二〇一九年五月海外才出版,很幸运我在网络上下载了第二版,讲得极其详细――726页的大块头
    (我化了四个礼拜),本次将NIO和IO和在一块,还包括J2ME部分的,然则串口、并口通信部分好像类库扶助不够,自己不可以实际操作。

  4. 4

    Java数据库

     
     数据库的图书太多太多了,也是太烂太烂了!这方面的书本身为主都探究过,推荐的你就看看Apress的《JDBC
    Recipes A Problem Solution Approach
    》很不利,国外二零零五年初才出版,(国内类似从没粤语版,不过出了中文版也不必然值得看――国内平时将外国的书翻译得一塌糊涂、不堪入目)但是我们真正
    很幸运,网络上有电子版的。值得一看。推荐自己看的首先本相比较满意的――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也有必要一
读。