1、抽象类可以有构造器,可以有一个非抽象的父类
2、 垃圾回收机制回收的是堆里面的内存,栈里面的数据自动入栈自动出栈
3、 引用类型的数据在堆当中,内存中操作的只有栈,new关键字在堆里面分配一块内存
4、 java中是值传递
5、 String是不可变字符,即一旦分配了内存,此内存的值将不会改变,又将String赋值是,会重新分配一块内存,字符串池: StringBuffer
6、 在堆中的东西叫对象
Ø 运行时异常:
ArithmeticException 当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例。
ArrayIndexOutOfBoundsException用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
ArrayStoreException试图将错误类型的对象存储到一个对象数组时抛出的异常。如:
Objectx[] = new String[3];
x[0]= new Integer(0);
ClassCastException视图将对象转换为不是实例的子类时,抛出该异常。如:
Objectx = new Integer(0);
System.out.println((String)x);
illegalArgumentException表明向方法传递了一个不合法或不正确的参数
NegativeArraySizeException如果应用程序视图创建大小为负的数组,则抛出该异常
Ø 编译时异常:
NoSuchMethodException无法找到某一特定方法时,抛出该异常
7、 unicode码范围
汉字:[\u4e00,\u9fa5]
数字:[0x30,0x39]
小写字母:[0x61,0x7a]
大写字母:[0x41,0x5a]
8、 final类
final类能够修饰非抽象类、非抽象类成员方法和变量(静态变量、实例变量、局部变量)
final类不能被继承,没有子类
final方法可以被继承,但不能被子类的方法覆盖
final成员变量表示常量,声明成员变量时,必须赋值(要么在声明的时候赋值,要么在构造器中赋值),赋值后不能被改变
publicfinalint E; //final空白,必须在初始化对象的时候赋初值
public Test3(int x) {
E= x;
}
final不能用于修饰构造方法2.5
9、 static只能修饰成员变量,表示所有对象共享这个数据
static能够修饰成员变量和方法,内部类,也可以形成静态static代码块,不能修饰局部变量
被static修饰的成员变量可以直接用类名来调用,语法如下:
类名.静态放大名();
类名.静态变量名;
静态方法中不能用this和super关键字,不能直接访问不带static的成员变量和成员方法
因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract
先运行静态代码块,再运行构造器
10、static和final一块表示什么
staticfinal用来修饰成员变量和成员方法,可理解为全局变量(java中没有全局变量的概念)
staticfinal修饰变量,表示一旦给值就不可修改,并且通过类名就可以访问
staticfinal修饰方法,表示不可覆盖,并可通过类名直接访问
staticfinal修饰一些容器类型(ArrayList、HashMap)的变量,不可以改变容器变量本省,但可以修改容器中存放的对象
11、类成员变量分类
被static修饰的变量叫静态变量或者类变量;
没有被static修饰的变量叫实例变量。
12、命令行参数
java主类参数(即命令行参数)
eclipse中java输入命令行参数,在选定的类中,点击右键run as—Runconfigurations—Arguments-Program arguments-Variables-选择string_prompt