search 登录 注册
arrow_back返回列表
ID:66562
light_modedark_modestar
Lv.1 韶华一笑间
edit_note帖子 177
stars积分 14,210
event加入 2011-08-01
怀旧国机

Java学习从入门到精通-过程(等会续帖)

schedule发表于 2012-11-20 09:14:00 visibility查看 425 chat_bubble回复 9
#1 楼主
我也不知道这种方法
是否是比较好的方法,只能给大家提
供一点参考了。
  学习java的第一步是安装好
jdk,写一个hello world,? 其实
jdk
的学习没有那么简单,关于jdk有两
个问题是很容易一直困扰java程序员
的地方:一个是classpath的问
题,其实从原理上来说,是要搞清楚
jre的classloader是如何加载class
的;另一个问题是package和import
问题,如何来寻找类的路径问题。把
这两个问题摸索清楚了,就扫除了学
习java和使用jdk的最大障碍。推荐
看一下王森的《java深度历险》,对
这两个问题进行了深入的探讨。
  第二步是学习java的语法。java
的语法是类c++的,基本上主流的编
程语言不是类c,就是类c++的,没
有什么新东西,所以语法的学习,大
概就是半天的时间足够了。唯一需要
注意的是有几个不容易搞清楚的关键
字的用法,public,protected,
private,static,什么时候用,为什
么要用,怎么用,这可能需要有人来
指点一下,我当初是完全自己琢磨出
来的,花了很久的时间。不过后来我
看到《thinking in java》这本书上面
是讲了这些概念的。
  第三步是学习java的面向对象的
编程语言的特性的地方。比如继承,
构造器,抽象类,接口,方法的多
态,重载,覆盖,java的异常处理机
制。对于一个没有面向对象语言背景
的人来说,我觉得这个过程需要花很
长很长时间,因为学习java之前没有
c++的经验,只有c的经验,我是大
概花了一个月左右吧,才彻底把这些
概念都搞清楚,把书上面的例子反复
的揣摩,修改,尝试,把那几章内容
反复的看过来,看过去,看了不下5
遍,才彻底领悟了。不过我想如果有
c++经验的话,应该一两天时间足够
了。那么在这个过程中,可以多看看
《thinking in java》这本书,对面向
对象的讲解非常透彻。可惜的是我学
习的时候,并没有看到这本书,所以
自己花了大量的时间,通过自己的尝
试和揣摩来学会的。
  第四步就是开始熟悉java的类
库。java的基础类库其实就是jdk安
装目录下面jrelib t.jar这个包。学习
基础类库就是学习rt.jar。基础类库
里面的类非常非常多。据说有3000
多个,我没有统计过。但是真正对于
我们来说最核心的只有4个,分别是
 第六步,java web 编程
  web编程的核心是http协议,
http协议和java无关,如果不熟悉
http协议的话,虽然也可以学好
servlet/jsp编程,但是达不到举一反
三,一通百通的境界。所以http协
议的学习是必备的。如果熟悉了
http协议的话,又有了java编程的
良好的基础,学习servlet/jsp简直易
如反掌,我学习servlet/jsp就用了不
到一周的时间,然后就开始用jsp来
做项目了。
  在servlet/jsp的学习中,重头仍
然是servlet documentation。
servlet api最常用的类很少,花比较
少的时间就可以掌握了。把这些类都
看一遍,多写几个例子试试。
servlet/jsp编程本质就是在反复调用
这些类来通过http协议在web
server和brower之间交谈。另外对
jsp,还需要熟悉几个常用jsp的标
记,具体的写法记不住的话,临时查
就是了。
  此外java web编程学习的重点
要放在web application的设计模式
上,如何进行业务逻辑的分析,并且
进行合理的设计,按照mv
c设计模
式的要求,运用servlet和jsp分别完
成不同的逻辑层,掌握如何在
servlet和jsp之间进行流程的控制和
数据的共享,以及web application
应该如何配置和部署。
  第七步,j2ee编程
  以上的学习过程如果是比较顺利
的话,进行到这一步,难度又陡然提
高。因为上面的知识内容都是只涉及
一个方面,而像ejb,jms,jta等核
心的j2ee规范往往是几种java技术的
综合运用的结晶,所以掌握起来难度
比较大。
  首先一定要学习好jndi,jndi是
app server定位服务器资源(ejb组
件,datasouce,jms)查找方法,
如果对jndi不熟悉的话,ejb,jms
这些东西几乎学不下去。jndi其实就
是javax.naming.*这个包,运用起来
很简单。难点在于服务器资源文件的
配置。对于服务器资源文件的配置,
就需要看看专门的文档规范了,比如
web.xml的写法,ejb-jar.xml的写法
等等。针对每种不同的appserver,
还有自己的服务资源配置文件,也是
需要熟悉的。
  然后可以学习jta,主要是要理
解jta对于事务的控制的方法,以及
该在什么场合使用jta。这里可以简
单的举个例子,我们知道一般情况可
以对于一个数据库连接进行事务控制
(conn.setautocommit(false)
,....,conn.commit()),做为一个原子
*
作,但是假设我的业务需求是要把对
两个不同数据库的*作做为一个原子
*作,你能做的到吗?这时候只能用
jta了。假设*作过程是先往a数据
库插一条记录,然后删除b数据库另
一个记录,我们自己写代码是控制不
了把整个*作做为一个原子*作的。
用jta的话,由app server来完成控
制。
  在学习ejb之前要学习对象序列
化和rmi,rmi是ejb的基础。接着
学习jms和ejb,对于ejb来说,最关
键是要理解ejb是如何通过rmi来实
现对远端对象的调用的,以及在什么
情况下要用到ejb。
  在学习完ejb,jms这些东西之
后,你可能会意识到要急不可待学习
两个领域的知识,一个是uml,另
一个是design pattern。java企业软
件的设计非常重视框架(framework)
的设计,一个好的软件框架是软件开
发成功的必要条件。在这个时候,应
该开始把学习的重点放在设计模式和
框架的学习上,通过学习和实际的编
程经验来掌握ejb的设计模式和j2ee
的核心模式。
  j2ee规范里面,除了ejb,jms,
jta,servlet/jsp,jdbc之外还有很
多很多的企业技术,这里不一一进行
介绍了。
  另外还有一个最新领域web
services。web services也完全没有
任何新东西,它像是一种黏合剂,可
以把不同的服务统一起来提供一个统
一的调用接口,作为使用者来说,我
只要获得服务提供者给我的wsdl
(对服务的描述),就够了,我完全
不知道服务器提供者提供的服务究竟
是ejb组件,还是.net组件,还是什
么corba组件,还是其他的什么实
现,我也不需要知道。webservices
最伟大的地方就在于通过统一的服务
提供方式和调用方式,实现了整个
internet服务的共享,是一个非常令
人激动的技术领域。web services好
像目前还没有什么很好的书籍,但是
可以通过在网络上面查资料的方式来
学习。
c设计模
式的要求,运用servlet和jsp分别完
成不同的逻辑层,掌握如何在
servlet和jsp之间进行流程的控制和
数据的共享,以及web application
应该如何配置和部署。
  第七步,j2ee编程
  以上的学习过程如果是比较顺利
的话,进行到这一步,难度又陡然提
高。因为上面的知识内容都是只涉及
一个方面,而像ejb,jms,jta等核
心的j2ee规范往往是几种java技术的
综合运用的结晶,所以掌握起来难度
比较大。
  首先一定要学习好jndi,jndi是
app server定位服务器资源(ejb组
件,datasouce,jms)查找方法,
如果对jndi不熟悉的话,ejb,jms
这些东西几乎学不下去。jndi其实就
是javax.naming.*这个包,运用起来
很简单。难点在于服务器资源文件的
配置。对于服务器资源文件的配置,
就需要看看专门的文档规范了,比如
web.xml的写法,ejb-jar.xml的写法
等等。针对每种不同的appserver,
还有自己的服务资源配置文件,也是
需要熟悉的。
  然后可以学习jta,主要是要理
解jta对于事务的控制的方法,以及
该在什么场合使用jta。这里可以简
单的举个例子,我们知道一般情况可
以对于一个数据库连接进行事务控制
(conn.setautocommit(false)
,....,conn.commit()),做为一个原子
*
作,但是假设我的业务需求是要把对
两个不同数据库的*作做为一个原子
*作,你能做的到吗?这时候只能用
jta了。假设*作过程是先往a数据
库插一条记录,然后删除b数据库另
一个记录,我们自己写代码是控制不
了把整个*作做为一个原子*作的。
用jta的话,由app server来完成控
制。
  在学习ejb之前要学习对象序列
化和rmi,rmi是ejb的基础。接着
学习jms和ejb,对于ejb来说,最关
键是要理解ejb是如何通过rmi来实
现对远端对象的调用的,以及在什么
情况下要用到ejb。
  在学习完ejb,jms这些东西之
后,你可能会意识到要急不可待学习
两个领域的知识,一个是uml,另
一个是design pattern。java企业软
件的设计非常重视框架(framework)
的设计,
一个好的软件框架是软件开
发成功的必要条件。在这个时候,应
该开始把学习的重点放在设计模式和
框架的学习上,通过学习和实际的编
程经验来掌握ejb的设计模式和j2ee
的核心模式。
  j2ee规范里面,除了ejb,jms,
jta,servlet/jsp,jdbc之外还有很
多很多的企业技术,这里不一一进行
介绍了。
  另外还有一个最新领域web
services。web services也完全没有
任何新东西,它像是一种黏合剂,可
以把不同的服务统一起来提供一个统
一的调用接口,作为使用者来说,我
只要获得服务提供者给我的wsdl
(对服务的描述),就够了,我完全
不知道服务器提供者提供的服务究竟
是ejb组件,还是.net组件,还是什
么corba组件,还是其他的什么实
现,我也不需要知道。webservices
最伟大的地方就在于通过统一的服务
提供方式和调用方式,实现了整个
internet服务的共享,是一个非常令
人激动的技术领域。web services好
像目前还没有什么很好的书籍,但是
可以通过在网络上面查资料的方式来
学习。

全部回复 (9)

ID:75472
light_modedark_modestarstar
Lv.5 甘首五朝臣
2012-11-20 10:01:00 沙发
惜缘】顶贴组!
ID:27237
light_modestarstar
Lv.1 韶华一笑间
2012-11-20 13:02:00 板凳

<br/>加入繁花家族,铸就中国红客道路!
ID:98474
light_modestarstar
Lv.1 韶华一笑间
2012-11-20 23:35:00 地板
<br/>道,可道,非常道;名,可名,非常名!
ID:96311
dark_modedark_modedark_modestarstar
Lv.1 韶华一笑间
2012-11-21 00:23:00 #5
道,可道,非常道;名,可名,非常名!
ID:101173
dark_modedark_modedark_modestarstarstar
Lv.1 韶华一笑间
2012-11-23 13:18:00 #6
<br/>钓鱼岛是中国的,苍井空才是全世界的!
ID:86898
light_modedark_modestarstarstar
Lv.1 韶华一笑间
2013-08-02 00:36:00 #7
:,,。。。。
ID:93534
light_modestarstarstar
Lv.1 韶华一笑间
2015-05-22 09:49:00 #8
好吧好吧
登录 后才能回复