快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

java学习体悟 作者: huli?yesky (转载)

java 出现在我们眼前,时间还很短,当他还只是一个半成品的时候,我们就被告知,java将成为软件发展的规范和希望. 然后,java出现了,jdk的出现,我们发现其实java并不习惯,因为我们已经适应了window下的visual编程,对于jdk这种编程方式已经很不喜欢,即使visual j++的出现,所增加的还不过是一个编辑环境.而且大家所认识的visual j++所支持的功能很少,可以说除了支持ActiveX之外,就是很纯粹的jdk1.1.这样的环境和功能,是根本不适合开发大型软件的所以,随着visual j++的兴起,java applet仿佛成为java唯一的功能了,几乎所有介绍java的书籍,网站,都被javaapplet充斥在许多人眼中,小应用程序是java唯一能做的事情了.可能还不如javascrip好用,当年犹如耶稣降临似的java,仿佛成了鸡肋.用处的确不大.

  但我初次接触java,我就被java 面向对象的思想,舒适的代码形式所吸引,对于面向对象的编程,大家都已经耳熟能详,c++似乎成为面向对象的标准语言,而且delphi,vb,pb似乎都挂上了面向对象的边了.但在我看来,delphi在设计上完全的面向对象,而且在他的内部,他很好的处理了对象之间的关系,但是在大家使用delphi的编程过程中,可以说已经被borland公司的对象束缚,例如面向对象有个很重要的应用,就是内部操作和外部界面的分离,也就是数据和界面的分离,但是使用过delphi的人都知道,这个在delphi中是很难的,因为你对界面的直接操作就直接写到了界面对象相应的操作中.很多人问我,为什么VC中为什么要初始化成一个Doc类,一个View类呢?我想,这就是没有理解面向对象的思想,为什么呢,就是界面实现和数据操作的分离嘛,可是很多人几乎不使用Doc类,把所有的数据操作都写到View中,因为这样免去了在View中操作Doc类的貌似复杂不必要的操作.至于vb,pb,我想大部分人在编程中,实在是很难体会面向对象的.因为这些语言和工具,本来就很不适合来实现对象操作.

  假如你用过smalltalk语言,你会发现,什么是面向对象,所有的语句,甚至赋值,条件等等基本语句都是对象,学习smalltalk语言,很烦,即使你说自己对C++都是异常的纯熟精通,为什么呢,因为我们绝大部分人使用C++,都没有真正体会到面向对象,当然在作项目的时候,也很难真正使用面向对象的方式.很希望大家有机会,学习使用一下smalltalk,因为这种语言能真正逼迫你体会面向对象.

  说了这么多面向对象,有点跑题,现在我回到java,为什么我一再的强调面向对象呢,因为smalltalk究竟不是真正高效率的编程语言,我用过很多编程工具,可以说几乎所有的我都作过东西,但是我看来,只有java的面向对象,编程方式,才是我最喜欢的.使用java编程,你会感觉到什么是对象,感觉到自己编写的程序原来也可以这样的有条理.这样的舒适.我和java斑竹lolo曾经讨论过这个感受,他也很有同样的感受.

  但是,大家或许会说,java很好,但是他能干什么呢? 除了applet他能做什么?对于这个问题,我要告诉大家,他能做的东西很多,java到底能做什么,我使用java时间不是很长,但是我感到兴奋的是,在这有限的时间里面,我接触的东西或许已经足够让我对java的前景产生了很大的爱好和信心。

  假如大家能到Sun公司主页上看看,会发现太多的东西可能是你听都没有听过的,jini,jmx,java3d,servlet,rmi……太多了,如此多的新技术,而且功能都是前所未有,起码是异常不同的。在国外,java程序员已经超过其他语言程序员,其中IBM公司就使用自己开发的visualage for java为法国开发了全国铁路治理系统。这个项目说明了java绝对不是只能开发小东西的,只能是applet,当然java的网络支持或许是所有编程语言中最强的了,他在网络的应用功能远远超过任何语言,大家或许很喜欢而且很纯熟CGI的开发,但是servlet的功能却更标准化,使用java会让你感受到恬静。

  jini可能很多人不知道是什么,我也不很清晰,但是自从lolo和我说了jini的思想的时候,我认为他,起码是他的思想绝对将在不远的将来布满我们生活的空间。

  今天我看了一本xml方面的书,再一次感觉到了java的无处不在。xml的思想很新,异常的有发展前途,记得lolo曾经告诉我,xml将会得到极大的发展。我期待这样的一天。

  我的方向是多媒体,所以我对例如3维效果异常感爱好,以前我只能通过VC,C++ builder来编写出3维图形效果,假如将这种效果放在网上,即编写出支持3D效果的applet却不能,当然也有折中的方式,但那样作出来的效果很不好,也就是不是真正的3D图形,都是线条组成的,没有openGL作出来的那种虚拟效果,不过很快我就发现java突破了这个限制,sun公司的jdk for 3d(opengl)实现了对opengl的支持,作出来的效果虽然还达不到使用VC编写的那样复杂,但是再网上已经是异常难得了。

  前些天我访问www.opengl.org,发现了jausoft公司制作的opengl支持的java类,他已经彻底的实现了几乎所有的opengl功能,但是唯一的缺陷是,他不能真正实现java的跨平台,他需要在机器上预先安装一个解释软件。

  java对于声音,图象的处理,或许还不能达到专业效果,单对于他来说已经是异常不错了。

  今天一个朋友的提醒让我想起来。java语言的跨平台是大家都公认的,但是不知道是否注重到使用java编程,有一个和别的编程语言很不相同的地方。就是虽然都是C++语言,但是VC和C++ builder之间的共享性受到了很大的限制,虽然C++ builder提供从MFC到自身支持的过程,但是详细实现上很难。

  面向对象技术最核心的就是可重用性--reuseable,可是C++,object pascal等等都把这个优势降低了。可是java却做到了这一点,无论你使用jdk,jbuilder,Vj,visualagefor java,你都能做到对象之间的充分共享。甚至你可以在编程的时候,有时候选择这个工具,有时候选择那个工具,但是,这一切自由都不妨碍这个软件的整体统一性。假如你觉得Visual j++功能太差,可是jdk的编辑支持又不能忍受,你完全可以将jdk的class让vj来调试编译。你觉得visualagefor java的select控件对数据库的支持很好,你也可以将它导出,让jbuilder来调用,一切太自由了,自由意味着解放,你不必拘束于一种软件,你不必说我不会Visualage

  而只了解jdk,这一切,在java里面都不是问题。java的reuseable,实在是让我兴奋。




返回类别: 教程
上一教程: [java技术] 2.23 J2EE开发模式说明
下一教程: 控制软件试用期的源代码(新手三个小时的结果)(原创)

您可以阅读与"java学习体悟 作者: huli?yesky (转载)"相关的教程:
· 学习Java的30个基本概念
· Java Web 服务学习报告?Web简介
· 我的Thinking in Java学习笔记(十)
· 学习javabean
· [学习笔记]Thinking in Java (the 2nd edition) Study Note (4)
    微笑服务 优质保证 索取样品