2009-12-13 12:17 35人阅读 评论(0) 收藏 举报
半个月以来自己一直在实验室里搞java.对java的数据结构和反射概念有了一点的理解。Java的数据结构是 ADT,简单的形容就是一面墙,隔着用户,可以进行的操作都在接口内部(interface),这让我联想到了在 spring的 sessionFactory中的beans都是interface或者是非final类型的类,因为只有这样,变量才能够进行实例化操作,在底层只有jdk的interface在工作,非常复杂的Ioc容器概念和反射概念其实就是对接口的管理,ADT是什么?似乎就是数据库中的字段和对应的类,一系列的概念都在Model-->Dao—>Service-->Web中产生,作为初学者,我感到这些概念让我措手不及。例如Servlet是怎样到applicationContext找到自己想要的内容,以及AOP的设计思路是怎样在Domain和DAO渗透的,去理解hibernate和Spring是怎样解耦的?
这一切似乎都在告诉我java很复杂,这几天我加入了几个JAVA爱好者的QQ群,和他们交流的时候,问题很严重,就是听不懂大家究竟在讨论什么?Swing和SWT组在讨论桌面控件,SSH组在讨论怎样将Struts1.X转化为Struts2,以便更好的整合。光是解决SSH中两个jar的冲突,我就发了两次帖,到论坛上进行求助,和一个北大青鸟的学java的朋友交流,他说:java很难。
java是很难的,但是,在多年以前,大家还在用笔记本进行软件开发,在cmd下调试的时候,是简单的么?越来越多的框架和越来越多的工具都在告诉我们,java在变得简单,只是java处理的问题变难了。在学习hibernate的时候,体验最大的就是入门很难,但是目前学习的整个过程,自己去真正写代码的时候很少,全自动的对数据库的操作进行了一层又一层的封装,我们最后得到的是服务层的函数。在Struts Action中进行DelegatingActionProxy,在后台进行sessionFactory注入,问题就解决了。于是我们看到还是一个完美的ADT,即不多什么也不少什么。而在Myeclipse中更是集成了spring,hibernate和struts的GUI开发能力,在做Jsp页面跳转的时候,就是画图的模式写代码。
那究竟是什么地方难呢?针对我自身的情况总结为以下几点,这也是也后继续学习的时候必须注意的。
1.对API的使用几乎为0.很多问题,debug到最后,都可以在API上找到问题解决方案,这是前人的经验和JDK 的 source决定的,所以,一定要学会看API,多去浏览英文的网站,应为英文的网站上的解答大都是从console看信息,然后去API找答案的,而我就是google。导致自己不会看控制台里的内容。
2.熟悉概念,例如对反模式的理解可以更好的理解数据库是如何CRUD的。可以触使自己解决看起来复杂,其实很简单的问题,就像在iBatis中,大量的原始SQL语句都要自己去写,这样可以使自己在做的过程中看见SQL是怎样映射过去的,但是针对hibernate的HibernateDaoSupport,不知道它是怎样转化过去的。
3.学习使用Junit和Ant。在整个的过程中,是不断迭代的过程,循环监测和模块调试很重要,整个结构起码有三层的时候,调试起来,只通过tomcat的窗口终究不知道哪里出了问题。而Junit和Ant都是通过annotation来完成的。所以,学会使用这些工具迫在眉睫。
4.多交流,CSDN的论坛是个好地方,第一次去CSDN是google过去的,当时是学习MFC的时候,对消息映射的机制了解不好,链接过去的。而最近我发现,被动的链接到论坛其实得到的东西很少,浏览的时候,不妨多去论坛。记得曾经有人说,简简单单学java,天天上CSDN。
这是我最近学习上的一点总结,欢迎大家交流、指正和分享体会。