2005年9月7日星期三
今天“JAVA编程思想”书送到,晚上看了几页,感觉中文的确方便阅读。
今天明白了以下几个概念和知识点:
1.Upcast为“向上转型”的意思!是实现多态的主要方法。
2.一个有abstract方法的类,必然是abstract class进行定义,并且不可以实例化。
3.一个abstract 类不一定有abstract方法。
4.Abstract方法只能有public、protected进行修饰,不能用private,无方法体。
5.接口类定义用:interface class,类里面所有方法都没有实现体(说明无static 方法)。方法的修饰与普通类无差别,这有别于abstract类。
2005年9月10日星期六 [第二章 一切都是对象]
在看完这章之后,有一点手写的笔记,现整理成以下内容:
1.对象的引用存储在堆栈中,对象存储在堆中(通用内存池),基本数据类型也存储在堆栈中。
2.基本数据类型和类包装的对应关系:boolean-Boolean,char-Character,byte-Byte,short-Short,int-Integer,long-Long,float-Float,double-Double,void-Void。另外BigInteger,BigDicimal没有基本类型对应!
3.基本类型数组声明时,会为里面每个元素划分空间,并执行默认的初始化工作。如果是普通对象数组。声明的作用是生成用于保存对象引用的空间。
4.C/C++中可以外层和内层声明同一名称的变量,并确定最内层为高优先级。而Java中这种声明将不允许。视为错误!
5.类成员是基本数据类型,如果没有显式的初始化,系统将使用默认值进行自动初始化。而方法(method)的基本数据成员将不被默认初始化,需要程序员完成该部分工作。
6.Java程序中默认的导入是:import java.lang.*。
7.一个Java文件中必须存在某个类与该文件同名,且哪个类必须包含一个名为main(String[] args)的方法。
2005年9月19日星期一
很长一段时间没有记笔记了。主要有两个方面的原因:一是有时一天看书的内容需要记的东西太少。二是这几天晚上看书不多。但这几天的东西还是很有些内容,现罗列出来:
1.整数除法会直接去掉结果小数位,而不是进行四舍五入。
2.(++/――)对于前缀形式,是执行完运算后才得到值。后缀形式,运算执行之前,就得到值。
3.(==/!=)作用于对象时,比较引用是否指向同一对象。对象equals()方法,默认是比较引用,可自行覆盖!
4.关系运算符只能作用于boolean型,不能像C一样作用于数据类型。boolean应用于String时,会自动转成合适字符串。
5.逻辑操作符时,注意“短路”现象。
6.布尔类型可以执行按位操作。&,|,^,但不能~,避免于not 冲突,这个时候不存在“短路”现象。移位不能用布尔型。
7.浮点数默认为双精度,必要时在数的后面跟F。
8.基本类型执行算术运算或按位运算,只要类型比int小,如:char,byte,short。在运算之前,值会自动转换成int。
9.For语句中定义多个变量,但它们必须具有同样的类型,逗号操作符只能用在for的初始化和步进中。For(;;)==while(true)
10. Java 没有goto语句,但有标签,位于迭代语句前,在循环中可能continue/break 跟标签。这样可以中断多层循环。
11. 构造函数名必须和类名一样,且无返回类型,包括void.
12. Overload 重载:方法名相同而形式参数不同。
13. 仅参数类型不同时,传入数据类型小于方法定义的类型时,尽量匹配类型小的,而要把大的数据类型传入小的时候,必须要对传入参数进行强制类型转换。
14. 无法根据方法的不同返回类型进行重载!
15. 构造器调用构造器时,用this().在一个构造器中,不能调用多于一个的构造器。调用构造器时,必须是第一行代码,否则编译出错!