-
Java学习心得 (2)
2007-09-07
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
● java禁止块嵌套变量定义。
http://jiazhou.blogbus.com/logs/8138113.html
● boolean值一定是false或true,不可为1或0。
● 在java中int整型占4个字节,与平台无关,而C++与目标机器和操作系统相关。
● 在java中没有unsigned类型。
● 返回可变对象时,要用到clone技术,该对象要支持clone,实现cloneable接口。
● 每一个类都可以有一个main函数,方便单元测试。
● static数据域用类名访问或static方法,不推荐后者。
● "string"+2结果是"string2"。
● Java中参数传递是值传递,即使是可变对象(值为对象的引用,此时最多改变原参数对象的状态)。
● 类域会自动初始化(0或false或null),而局部变量则不会!
● Java可直接初始化类数据域,C++则不行(有一个初始化列表,在java中没必要,因没有子对象,只有引用)。
● 构造器可调用另一个构造器,而C++不行。
● 目录与包名不一致,可能可以编译,但无法解释运行(找不到class文件)。
● 由于包的可见性,类中的数据一般都应该private。(现在有了包密封jar技术)。
● Java中的继承都是公有继承,并取消多继承(多余的机制)。
● Java子类不可访问超类的私有成员,可用公用接口(super.F())。
● Java的多态默认处理方式是动态绑定。
● 可将子类放入超类数组,取出时强制转换(先用instanceof检查)(不推荐,可考虑超类的设计)。
● 抽象类不一定包括抽象方法,包括抽象方法的类一定是抽象类。抽象类不能实例化,但可引用其非抽象子类的实例。
● getClass返回一个非空对象的类型名称。
● 定义类时最好重写equals、hashCode、toString方法,必要时加个clone。
● 接口无实例域,只有未实现的方法(默认公有)和常量(默认公有静态final),可继承。
● 内部类可访问外围类实例域,并由编译器为内部类构造器添加外围类引用(outerClassName.this)。
● 局部内部类只可访问final局部变量。
● 静态内部类没有访问外围类的特权。
● AWT将处理用户界面元素的任务交给目标平台本地GUI工具箱,“一次编写,到处运行”,但结果是:1. 外观依赖于平台。2. 可移植库小。 3. “一次编写,到处调试”。
● swing实现所有平台外观一致性、平台相关的bug少、丰富便捷的元素集合。
● 异常处理原则:早传递(throws),晚处理(catch)。不可替代简单测试。无需也无法处理系统error和runtimeerror。
收藏到:Del.icio.us







