Tekkaman

导航

 

2011年5月26日

摘要: 【哪些情况下变量不会初始化】 将变量作为类成员使用,就要特别注意由Java 分配的默认值。这样做可保证主类型的成员变量肯定得到了初始化(C++不具备这一功能),可有效遏止多种相关的编程错误。然而,这种保证却并不适用于“局部”变量——那些变量并非一个类的字段。所以,假若在一个函数定义中写入下述代码: int x; 那么x 会得到一些随机值(这与C 和C++是一样的),不会自动初始化成零。 我们责任是在正式使用x 前分配一个适当的值。如果忘记,就会得到一条编译期错误,告诉我们变量可能尚未初始化。这种处理正是Java优于C++的表现之一。许多C++编译器会对变量未初始化发出警告,但在Java 里却是 阅读全文
posted @ 2011-05-26 18:28 Tekkaman 阅读(908) 评论(0) 推荐(3)
 
摘要: 【不允许变量重定义】 在C/C++里,上述是对的,在Java里,编译不通过。Java设计者认为,上述代码有可能混淆读者对程序的理解,非常危险。 阅读全文
posted @ 2011-05-26 18:12 Tekkaman 阅读(1126) 评论(0) 推荐(1)
 
摘要: 【数组】 Java 的一项主要设计目标就是安全性。Java 可以保证被初始化,并且不可在它的范围之外访问。由于系统自动进行范围检查,所以必然要付出一些代价:针对每个数组,以及在运行期间对索引的校验,都会造成少量的内存开销。但由此换回的是更高的安全性,以及更高的工作效率。为此付出少许代价是值得的。 创建对象数组时,实际创建的是一个句柄数组。而且每个句柄都会自动初始化成一个特殊值,并带有自己的关键字:null(空)。一旦Java 看到null,就知道该句柄并未指向一个对象。正式使用前,必须为每个句柄都分配一个对象。若试图使用依然为null 的一个句柄,就会在运行期报告问题。因此,典型的数组错误在J 阅读全文
posted @ 2011-05-26 18:08 Tekkaman 阅读(443) 评论(0) 推荐(1)
 
摘要: 【基类型数据】 1、boolean 1 位 - - Boolean 2、char 16 位 Unicode 0 Unicode 2 的16 次方-1 Character 3、byte 8 位 -128 +127 Byte 3、short 16 位 -2 的15 次方 +2 的15 次方-1 Short 4、int 32 位 -2 的31 次方 +2 的31 次方-1 Integer 5、long 64 位 -2 的63 次方 +2 的63 次方-1 Long 6、float 32 位 IEEE754 IEEE754 Float 7、double 64 位 IEEE754 IEEE754 Dou 阅读全文
posted @ 2011-05-26 17:07 Tekkaman 阅读(457) 评论(0) 推荐(1)
 
摘要: 【用句柄操作对象】 每种编程语言都有自己的数据处理方式。有些时候,程序员必须时刻留意准备处理的是什么类型。您曾利用一些特殊语法直接操作过对象,或处理过一些间接表示的对象吗(C 或C++里的指针)?所有这些在Java 里都得到了简化,任何东西都可看作对象。注意,尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“句柄”(Handle)。还可看到有的人将其称作一个“引用”,甚至一个“指针”。可将这一情形想象成用遥控板(句柄)操纵电视机(对象)。只要握住这个遥控板,就相当于掌握了与电视机连接的通道。但一旦需要“换频道”或者“关小声音”,我们实际操纵的是遥控板(句柄),再由遥控板自己操纵电视 阅读全文
posted @ 2011-05-26 16:45 Tekkaman 阅读(5202) 评论(5) 推荐(2)