到 Google 资讯主页   
EasyJF首页   资料   源码   软件    论坛   网站    
   使用帮助    
    该信息为本站MyRSS系统缓存内容,部分图片及附件有可能无法正常使用.easyjf.comBlogJava无关,不对该信息负责.通过http://kb.csdn.net/keyword/java//../../java/Articles/200606/c73b3b89-b668-4717-95b5-15b1d38cefd4.html访问该信息的原始内容.
页面功能  【加入收藏】 【推荐给朋友】 【字体:  】 【关闭】   
Thinking in java review
作者:junhong 来源:BlogJava  发布时间:2006-06-27 00:00:00.0

1、? Java? 中所有的 member function 都是动态绑定

2、? Java 中所有的对象都是通过 new 来动态产生

3、? 所有的容器 (collection) Object array( 对象数组 e.g String []str=new String[10]) 内都包含都是对象的 reference

4、? java 中, java 编译器有责任产生“将 stack 指针前后移动“的程序代码,所以 它必须能够完全掌握它所编译的的程序中“存在 stack 里头的所有数据的实际大小和存活时间“, 如此一来便会限制程序的弹性。 由于这个限制,尽管我们可以将对象的 reference 存储与 stack 内,但却不能将一般的 java 对象放在 stack
特例:( primitive types
基本型别会经常被使用,如果使用 new 来产生此类极小,极简单的变量,会因“ new 将对象置于 heap 之上“ 而效率不好。因此对于此类变量 java 采取 c/c++ 的方式,也就是不用 new 分配器空间,而是产生一种所谓的 ”automatic “变量,存于 static

5、? 当你产生某个存储对象的数组,真正产生的是个存储 reference 的数组。此数组建立之后,其中的每一个 reference 都会被自动设为某个特殊的值 null,

6、? { String s=new String(“ddd”);} s 这个 reference 会在生存空间之外消失无踪,但是, s 先前所指的那个 String 对象仍然会继续占用内存

7、? Class 内的基本型别变量都有初值,但是在函数内的 local variable 是没有初值的

8、? Java 中,所有传递的对象的场合,传递的都是对象的 reference.

9、? Return 说明这个函数运行结束,返回到其调用函数。 Return 2 :返回一个数 2 给调用者,同时结束本函数的运行。

10、????????????? Class 内的 non-static data(state) method , 都是和特定的对象绑定的,一般情况下,你的产生某个对象,再通过该对象取用其数据和函数。所以 non-static 数据 / 函数必须知道他们隶属于哪一个对象,才有办法运行 .static 函数内不能使用 non-static 数据和函数

11、????????????? (object1= = object2 ) 两个对象的 reference = = 比较得是两个对象的内存的地址。所以我们不能使用 = = 来测试两个对象的内容是否相等。如果想测试对象的内容是否相等,应该使用 equal(), 任何一个对象都拥有这个函数。不过你自己的 class 需要 override 这个函数,否则默认的 equal() 函数是还是比较的两个对象的内存地址。
Java
标准程序库中的大多数 class override equal(), 所以他们都会比较对象的内容是否相等。

12、????????????? 位运算符都是作用于基本正数类型。该运算符主要是针对硬件编程使用(我们用得不多,)

待续

?

?



junhong 2006-06-27 17:40 发表评论

 
相关文章
 
页面功能  【加入收藏】 【推荐给朋友】 【字体:  】 【关闭】   


EasyJF.com 2006 隐私政策 使用EasyJF前必读