java

来源:互联网 发布:淘宝上的组装电脑 编辑:程序博客网 时间:2024/04/26 16:32

 首先说明我只是一个Java初学者,没有对Java深入的了解,只能从学习的角度去写下自己对Java的认识,没有任何语言攻击行为,也有不对的地方,希望大家指正。

学习环境(Windows Server 2003 + EditPlus + JDK1.5)
学习时间:一天

 一、 古怪的命名规则
    拿一个简单的Hello,Java来说,如果说定义类时写下的是class HelloJava,那么在保存文件名时就必须是“HelloJava.java”而且大小是严格区分的(仅文件名)。假如我存储为Hello.java,用javac编译时完全可以无误的通过而当用用java解释时,就会出现下面的错误,java.lang.NoClassDefFoundError: Hello (wrong name: Hello)。关于这一点,我估计java在解释Hello.class文件来可能会动态的生成该类的一个对象,可能就是根据这个文件名。再来说说大小写的问题,同样存储为 helloJava.java时,也会出现上面的问题,如果上面的估计是正确的,那么这一点很容易解释,定义一个类的对象时,在C++/C#下是区分大小的,java也一样,我们定义的类为HelloJava,而解释时却为helloJava,自然而然就成了简单的“语法”错误了。

二、 N多个.class文件
    我一口气敲下了N多个Java程序,编译运行还行,就是有点慢,突然想到,在一个没有JDK的机器上这个.class文件如何执行?虚拟机?这是问题一。又试了一个JButton类的使用,例子的组织方式是将Button组织到一个JPanel上。最后一个范例是Event,我没有去试,只是看了看,从WindowsAdapter派生出一个类ExitWindow并重写了windowClosing()事件,然后又建立一个Java文件,从JFrame派生一个ExitFrame的类并使用上次生成的ExitWidnow以响应windowClosing事件。这一个动作又产生了两个.class文件,结果一个稍微大点的Java程序差不多全是由.class文件构成(肯定还有其它的比如资源文件,DLL文件等)。

三、 从C++过来的命名
    Java程序中很多对象的命名采用了“驼峰式”。比如:setVisible、setContentPane等等,我当时在学C++时,也喜欢这种命名规则,时间久了就发觉这样的命名有点不适应,尤其是在.NET下,.NET下命名很是统一,使用一个颜色Color.Red,或者是Refresh等等,对于较长的名称我倒认为.NET下命令更漂亮一些。

四、 没有好的IDE
    我准备学习Java时,下了一个NetBeans,晕,本来机器不好,结果可想而知,慢的要命,感觉不舒服就Uninstall掉了,现在装了个JBuilder 2006,说实话,论IDE环境,没有VS.NET 2003好。

posted on 2006-03-22 11:12 散步的鱼 阅读(200) 评论(4)  编辑 收藏 引用 网摘 所属分类: 程序人生
 

FeedBack:
# re: 学习Java2006-03-22 11:24 | 状元

为什么不试试eclipse很有名的IDE
建意你看看这本书-<Eclipse从入门到精通>(陈刚写的强锋科技出的)
  回复  更多评论
 
# re: 学习Java2006-03-22 11:56 | Cavingdeep

幸好你不是在Java论坛中说这些话,否则会被骂死!:) 我来帮你理解一下你上面提出的问题:

1) 实际上并不是命名规则,而是环境机制,Java这样做是为了在不同的平台下能够以统一简单的方式找到所需的资源,而文件系统(File System)正好是很好的可利用的东东。比如说,如果你有一个FullName的类是mypackge.MyClass,那么运行java时它就会在PATH在寻找文件夹为mypackage文件名为MyClass.class的文件,很简单高效的location方法,不是嘛!

2) 这正是为问题1所决定的,因为Java是面向对象的,一切都是对象,所以用class文件来组织资源是很显而易见的。不知道你听说过JAR没有,这正是一种解决太多class文件的方法,它将class文件的结构存放在一个jar文件中(可选压缩),你可以把它看做是微软下的.dll。

3) 这是所谓的命名规范,每种语言基本上都有自己的一套命名规范,没有哪个更好,一切都是习惯使然。

4) Eclipse是非常好的一个Free Java IDE,我不相信你没有听说过它,另外如果想花钱的话也可以考虑IntelliJ IDEA,最强的IDE,.NET下可没有这么好的IDE。  回复  更多评论 

原创粉丝点击