1. 注释可以在Java程序中起到文档标记的作用
类文档标记:
1)@version
2)@author
3)@param
4)@return
5)@exception
2. Java的字符占两个字节,是Unicode编码
3. 作用域——
Java不存在全局和局部作用域。
不重名:Java程序块不能将内部作用域声明的变量与其外部作用域声明的变量重名。
4. Java程序不可能在类外的全局区域有方法。
5. Java数组
定义:
int arr[ ] = new int[10];
与数组相关的方法:
1)复制数组
System.arrycopy(...);
2)数组排序
Array.sort(arrayname);
6. Java的类
1)new语句的类名后要有一对圆括号
Man p1 = new Man();
类名后的句柄 p1,相当于C++的指针,引用一个Man的对象
2)对象的比较
操作符==时
两个变量所指内存地址相等的时候,才能返回true
3)this引用句柄
构造方法中可以通过this调用另一个构造方法
{... this(...,...,...);}
7.垃圾回收机制
数组和对象分配在堆上
数组和对象在没有引用变量指向它时才会变成垃圾,不能再被使用,但仍然占据着内存,在随后一个不确定的时间被垃圾回收器释放掉,这也是Java占内存的原因。
8.static关键字
注意:不能把任何方法体内的变量声明为静态(只能把类的成员声明为静态成员)
1)静态代码块
class Code{ { System.out.println("Code的构造块"); } static{ System.out.println("Code的静态代码块"); } public Code(){ System.out.println("Code的构造方法"); } }
不包含在任何方法体中的,当类被载入时,自动执行静态代码块,且只被执行一次,经常用作初始化类中属性;
在Java中,一个类装入JVM中经过3个步骤:装载、链接和初始化。因此,静态代码块执行在构造函数之前。
2)main方法是静态的
这个main()方法的声明为:public static void main(String args[])。必须这么定义,这是Java的规范。
因此在main()方法中,不能直接访问该类中的非静态成员。
9.类的继承
class A {} class B extends A {} class C extends B
子类构造的时候,需要在构造函数中super(参数)构造父类。在子类有方法或变量与父类有冲突时,可以用super. 来加以区别。
class Student extends Person{ public Student (String name, int age, String school) { super(name,age); this.school=school; } }
10.抽象类与接口
1)必须用abstract 关键字来修饰抽象类;抽象方法也必须用abstract来修饰。
含有抽象方法的类必须被声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个子类还是抽象类。
2)接口interface——Java对C++多重继承的改进
接口是抽象方法和常量值的定义集合;
接口可以看作一种特殊的抽象类,只包含常量和方法的定义,而没有变量和方法的实现;
接口里的变量默认使用public static final标识的,因此,接口中定义的变量就是全局静态常量;
用implements关键字去实现一个接口中的所有或部分方法;
11. 对象的多态
Java中所有类都继承自Object类,Object是Java类层中最高层类
Object类中的getClass()、notify()、notifyAll()、wait()等方法不能被重写,因为这些方法被定义为final类型。