我学j2se一年了。但是还是很糊涂。请大师详细的给我讲下学习java的路线,及将来进阶的方向。什么ejb  ,struts ,jsp,我很迷茫,我需要一条清晰地学习路线,按部就班的学习java,最好java的发展方向也详细系统的说下。我是要制定自己的事业蓝图。请高手指点迷经。先谢谢各位了,小弟新手,手里还没分,对不住大哥大姐。请包涵

解决方案 »

  1.   

    no 分 no way 哈哈
      

  2.   

    hehe,照顾小弟下吗,初来咋到,囊中真的羞涩,
      

  3.   

    首先声明一下我不是大师级。我曾经也同样的遇到过你的困惑。现在社会上,甚至学校里都在流行着这做Java的就是J2ee,弄的慢大街都是做j2ee的。
    这样搞的做Java的越来越不值钱(当然,一些j2ee大师级别的人物除外)。
    而且这方面学的东西太多。
    浅一些的(Java基础,Jsp,Html,js,ajax,JDBC,等等等。)
    深入点的(设计模式,数据库,缓存,负载均衡,性能调优等,分布式运算等)
    当然还有复杂的业务知识。
    在这个方向上千万不要为各种框架迷惑,不然就可能沦为IT民工。其实在Java领域还有一些其他的方向你可以选择。
    Eclipse插件开发。国内做这个一般的都是比较牛的外企。比如IBM。而且做这个方面的人比较少,待遇不错。还有就是手机开发,也不错。目前google的手机开发貌似很火的,将来也应该不错。个人感觉后两个要好于j2ee。不管做什么,业务知识很重要,基础天天变,业务要沉淀下来。
      

  4.   

    thank you  !!!
    不过还是想知道,到底应该先学什么,在学什么,有个路线,一点一滴,一步一趋,该怎么走,注意什么
      

  5.   

    呃,本菜鸟见过一个比较老的帖子,里面大概介绍了下,虽然帖子比较老,但是觉得还是可以参考一下:第七步,J2EE编程
    以上的学习过程如果是比较顺利的话(指的是Java基础),进行到这一步,难度又陡然提高。因为上面的知识内容都是只涉及一个方面,而像EJB,JMS,JTA等核心的J2EE规范往往是几种Java技术的综合运用的结晶,所以掌握起来难度比较大。首先一定要学习好JNDI,JNDI是App Server定位服务器资源(EJB组件,Datasouce,JMS)查找方法,如果对JNDI不熟悉的话,EJB,JMS这些东西几乎学不下去。JNDI其实就是javax.naming.*这个包,运用起来很简单。难点在于服务器资源文件的配置。对于服务器资源文件的配置,就需要看看专门的文档规范了,比如web.xml的写法,ejb-jar.xml的写法等等。针对每种不同的App Server,还有自己的服务资源配置文件,也是需要熟悉的。然后可以学习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之外还有很多很多的企业技术,这里不一一进行介绍了。
      

  6.   

    看上面回复 一个一个都把问题复杂化了首先学java,哪怕任何一门语言都不要想它有多难,无论是面向对象还是,函数语言,或者脚本都跑不出
    1.顺序、2.选择3.循环 这三大基本。学java要熟悉的是java的API,API不熟悉不要谈精通。学.net也是如此。
    c/c++则要求你算法,和思维灵活程度很高,相对java/.net要有考验,这也是为什么很多人说c++没几年学不出什么,那是因为思维没有跟上去。如果换做java/.net则就简单的多了,因为只要你在开发项目,api早晚 熟悉,就像从来没有人交你汉语而你却会。像ejb,struts,jsp,还有spring什么的乱七八糟的都放到一起。总结起来都是j2se、都是基础,如果你拆开它们都是1.顺序、2.选择3.循环。只是如何调用而已。struts可以说是MVC模式的现实版。
    spring可以说是IOC/Factory的现实版。
    ......
    这些东西不要着急去学,越着急越学不成,学语言不是立杆见影的。学习java,我推荐你的是不要上来就学习struts、spring、hibernate回把你搞晕甚至会晕几年。
      

  7.   

    首先,自己设计一个认为足够猛的项目不要考虑自己的技术掌握程度如何,尽管大胆去设计。完善你的设计直到你认为你的设计可以称的上产品。然后,分析你的设计去挖掘你不能实现的和你能实现的。然后对所有不能实现的东西进行取舍,像公 认很复杂的系统那你就舍弃。或者你也可以考虑全部舍弃。接着重新规划你的设计,把舍弃之后的项目在考核一遍,着时候你会发现你的项目可能与之前你想做的东西完全不一样,这无所谓反正你在学习,你可以往里面添加其他乱七八糟的动能。比方考试系统里面增加个BBS,blog系统啊什么的用来泥补。我在初学javaWeb时候就自己想设计一个社区,BBS、积分、Blog、甚至江 湖都想往里面加。
      

  8.   

    接着耗费半年到1年时间去编写你的项目。请不要认为1年做一个项目比不上看300小时的教程。哪怕你的项目最后做出来只有1万行不到的代码量。这是最大的误区,教程有一套就可以了看多了就是浪费时间。
    我当时选择的j2se教程是孙_鑫的教程一共12CD但是我只看到前6讲后面都没看。因为在此之前看过浙大java教程16讲才发现没必要看孙_鑫的了。总共教程时间不过48小时。看教程只会加重你的依赖性,你必须要独立,这是从最开始就要培养的,不是后天培养的。
    (后文不知道能不能发出来系统一直提示我有非法词,我TNND找不到,所以能发出来更好)
      

  9.   

    在写web程序时候首先使用最基本的j2ee技术,那就是jsp + servlet + filter + listener。使用这4技术就可以足够让你统治所有web项目,只是要看你的实力如何。所以功底深厚就要看着四技术用的怎么样。刚开始学也就能使用上jsp + servlet 随着你要求增加filter + listener会陆续而来。学习web项目和控制台项目一样。都要先设计系统在实现,因为程序员不会设计以后薪水别想能拿多了。
    像系统架构师满脑子都是设计。接着学习struts,有了jsp + servlet的基础 struts 学习飞快。着时候千万别学什么ssh,想学那就接着糊涂把。学习struts主要就是了解MVC 因为在jsp+servlet时候就已经接触过MVC所以单独学习struts很快。hibernate建议你使用控制台单独学习,hibernate很庞大不要一口都吃了。能配映射文件,能执行数据库CURD操作就可以。至于HQL会查就可以,HQL只是SQL换个名换个写法而已。学习spring也是单独学习,千万不要把SSH在你没有完全单独接触他们时候学习,那只能加重你的晕。学习spring主要就是理解ioc/aop。有关些方面的理论知识满世界都是。如果你喜欢扣低层可以去翻java api Class Method这些类。能发现spring很简单甚至你都可以写一个。
    接着耗费半年到1年时间去编写你的项目。请不要认为1年做一个项目比不上看300小时的教程。哪怕你的项目最后做出来只有1万行不到的代码量。这是最大的误区,教程有一套就可以了看多了就是浪费时间。
    我当时选择的j2se教程是孙鑫的教程一共12CD但是我只看到前6讲后面都没看。因为在此之前看过浙大java教程16讲才发现没必要看孙鑫的了。总共教程时间不过48小时。看教程只会加重你的依赖性,你必须要独立,这是从最开始就要培养的,不是后天培养的。刚开始学习java所以我建议从控制台开始,包括数据库连接使用JDBC技术。控制台当年我学习时候写的是老_虎_机游戏。自己写东西很不习惯因为没有参考代码,由于是首次可以考虑借鉴,我说的借鉴是照者人家的代码自己写一份而不是copy,哪怕你的项目都是借鉴的也不要copy,一定要自己一个字母一个字母的写出来。刚开始程序时候每天的代码量基本要在5000~10000行左右,如果时间少那也要保证3000~6000行(不计大括号、注释、包导入、分号)
    当然这些代码量不是最后写完之后的代码行数,是你调试代码,删除代码的总计。当年我学习java老师问我每天打多少行我说我不知道,老师说你大概每天6000~10000行代码。我估计目前我写的代码恐怕也无法超过6000~10000。因为好多代码不用调试了,在我的真言里eclipse只要不报红叉就是80%无错误的。在编码时候一定要注意注释编写,良好的编程习惯也包括注释,这也是需要先天培养不能后天养成,你可以把你的思路先用注释写出来比方如下:
    1.获取已经存在的数据
    2.获取新数据
    3.数据检查
    4.将新数据覆盖老数据
    5.保存数据
    然后你在你的各个部分编写代码
    最后可能写完的代码是如下
    1.获取已经存在的数据
    xxxxx
    2.获取新数据
    xxxxxx
    3.数据检查
    xxxxxx
    4.将新数据覆盖老数据
    xxxxxx
    5.保存数据
    xxxxxx
    在写web程序时候首先使用最基本的j2ee技术,那就是jsp + servlet + filter + listener。使用这4技术就可以足够让你统治所有web项目,只是要看你的实力如何。所以功底深厚就要看着四技术用的怎么样。刚开始学也就能使用上jsp + servlet 随着你要求增加filter + listener会陆续而来。学习web项目和控制台项目一样。都要先设计系统在实现,因为程序员不会设计以后薪水别想能拿多了。
    像系统架构师满脑子都是设计。我当年学spring看API无意发现Class.forName().method(...,...).invoke(..,..) 这不就是Spring么。
    配上XML整个一个山 塞的Spring。接着使用控制台组合spring 和 hibernate 写小项目。或者 struts+spring 写web项目。最后才是ssh。这样才能循序渐进。一口吃个胖子那是浮肿,只有慢慢吃,经常吃才是胖子。学程序代码量是首要的,另外就是不要依赖别人的代码。  别人的代码看看就可以了写不出来就抄,决不拷贝。
    当然像Base64,MD5这样的算法程序拷贝无所谓~就这样1年后你就发现自己的能力大长。没事时候就自己写库,什么连接池,数据访问层,山 塞Spring,山 塞Struts。
    ============================在我的学历里程中 连接池,数据访问层,山 塞Spring,山 塞Struts、山 塞Log4j、工作流引擎都写过
    最后才在今年写出的我第一个可以正式应用在项目上的框架More。在以后会对外发布more的免费版本。============================
    最后我也不是你所谓的大师,在我眼里大师可以轻而一举的使用简单技术解决任何复杂的问题。而且不借用任何成熟的框架技术。 只是纯粹的j2se/j2ee。(完毕)
      

  10.   

    其实说实在的,要是LZ为了钱就别搞程序,要是为了爱好兼顾钱的话去搞C/C++或者数据库管理员,要是纯为了兴趣,那。。
      

  11.   

    看到大家这样热情的回答了在下的问题,感动万分,总结出来如下,请看看还有什么注意地方没
      学习分三步   :
         第一步就是,   java编程基础 + html + JDBC + 数据库
         第二步就是,   JSP + servlet + filter + listener
        第三步就是,   struts + hibernate + spring
        最后看看       ssh  是吗?还是想得到更精彩的答案
      

  12.   

    菜鸟我认为,你的第三步跟最后一步是一样的,难道ssh有新解释?第二步的listener不是java基础里的吗?