Java基础知识复习笔记(一)

时间:2022-09-15 22:13:41

1、Java用引用操作对象,而C和C++里用指针来操纵对象。

2、创建对象的引用,通常用new操作符来实现与其相关联的一个新对象。

3、Java中创建一个数组对象时,实际上是创建了一个引用数组,并且每个引用都会自动被初始化为一个特定值null或者0;

4、若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它会获得一个默认值,以防止产生程序错误;但对于“局部”变量,即非某个类的字段,则不会被获得一个默认值;

5、static修饰的静态变量/方法可通过类的对象引用,也通过类直接引用;

6、Java要求public类名和文件名必须相同;

7、Java有两种注释风格:/*……*/和//……;

    注释文档:/**……*/,和部分标签:@see、@version、@author、@param、@return、@throws等。

8、Java编程风格:类名的首字母大写,多个单词构成则直接并在一起(不用下划线分隔);

     除了类名,几乎其他所有内容,如变量、方法、对象引用名称等,都遵循“驼峰式命令”,第一个字母小写,其他单词首字母大写。

9、Java赋值运算符:对于基本数据类型使用a=b, 复制a的是实际的数值,而并非指向一个对象的引用,即a和b是独立的,修改a不会影响b;对一个对象或数组进行操作a=b时,则复制的对象的引用,a和b都指向同一个具体对象,修改a,b也会被修改。

10、Java按位操作符,如果两个输入位都是1,则按位“与”操作符(&)生成一个输出位1;否则输出位都是0。

       如果两个输入位只要有一个是1,则按位“或”操作符(|)生成一个输出位1,只有两个输入位都是0,输出位才是0;

       如果输入位的某一个是1,但并不全是1,那么按位“异或”操作(^)生成一个输出位1;异或:相同为0,不同为1

       按位“非”(~),也称为取反操作符,是一元操作符,生成与输入位相反的值,如输入0,则输出1;若输入1,则输出0。

11、Java没有sizeof;

12、break用与强制退出循环或swith..case,不执行循环中剩余的语句或剩余case语句,注意而不只是跳出一层{};continue则是停止当前循环,返回循环开始处,开始下一次迭代。

13、Java用构造器确保初始化,并且对象的“初始化”和“创建”捆绑在一起,两者不能分离的。构造器的特征:

  ①与类名完全相同;②没有返回值;③如果运行用户通过new创建对象必须使用public修饰。

14、方法的重载,允许方法名相同而形式参数不同。区分重载方法:

  ①参数个数不同;②参数类型不同;③参数类型的顺序不同。

注:方法的返回值不能区分重载方法。

15、Java类中没有构造器,编译器会自动创建一个默认无参构造器;但如果已经定义了一个构造器,编译器就不会自动创建默认构造器了。

16、this关键字只能用在方法内部使用,表示对“调用方法的那个对象”的引用;在构造器中可以使用this调用其他构造器;但注意:static方法没有this,在static方法的内部不能调用非静态方法,但在非静态方法中就可以调用静态方法。

17、Java没有类似C++的析构函数用来对对象的销毁;Java是使用垃圾回收器负责回收无用对象占据的内存资源;而运行在类中定义名为finalize()的方法,这个方法也只是建议JVM销毁该对象,不一定会被销毁;垃圾回收器会定期进行完整的清理工作,采用“自适应”技术,即“自适应、分代的、停止-复制、标记-清扫”式垃圾回收器。

18、所有类都使用Object做为父类,Object的方法有:hashcode()、toString()、cloen()、getClass()、finalize()、equals()wait()、wait(long timeout)、wait(long timeout,int nanos)、notify()、notifyAll()

19、无论创建多少个对象,静态数据都只占用一份存储区域。如果静态数据是基本类型,且没有进行初始化,那么它就会获得基本类型的标准初值;如果他是一个对象引用,那么他的默认初始化值就是null。

20、静态初始化只有在必要时刻才会进行的,并且初始化是在对象创建或第一次访问静态数据时,初始化后便不会再次被初始化了。

21、Java初始化顺序是:先静态对象(如果它们尚未因前面的对象创建过程而被初始化),而后是“非静态”对象。并且对象定义的先后顺序决定了初始化的顺序,即使对象定义散布与方法定义之间,它们仍旧会在任何方法(包括构造方法)被调用之前就进行初始化。

22、“静态块”经执行一次:当首次生成这个类的一个对象时,或者首次访问属于那个类的静态数据成员时(即便从未生成过那个类的对象)。

如:

static int i;

static{

i =47;

}

23、数组定义有int[] a和int a[]两种方式,建议使用int[] a,它表明类型是“一个int型数组”。

       数组的创建是在运行时刻进行的;数字元素中的基本数据类型会自动初始化为空值。(对于数字和字符,就是0;对于布尔类型,是false)

24、Java枚举类型声明用enum关键字,按照命名惯例它们都用大写字母表示,实际上枚举类型的实例是常量。