1、向上造型减少了点,强转增加了点(能点出派生类特有的方法)
2、数组的元素也是实例变量
3、方法(包括main)里面的变量都是局部变量,只有new了才有对象
4、java里面只有值传递(地址也是值)
5、局部变量存的是地址,若赋值null则清空了地址
6、垃圾一般指的是对象
7、有几个new在堆中就有几个对象
8、不再使用的对象还有指向,需要设置为null或者重新赋值(只有一个指向才行)才能使其变成垃圾被GC回收
9、无返回值的方法也可以用return,代表方法的结束
10、GC只回收堆中的对象,栈中的会自动清除
11、先加载类,所以先画方法区,.class只有一份,只加载一次,且.class中的局部变量和方法只有一份;
注意:同一.java文件中,能声明public的类只有一个,其他默认
12、this只在方法中(构造或者普通方法),谁调就是谁,帮助方法区分对象地址
注意:静态方法不能调用实例成员(实例变量,实例方法)
13、数组元素也是实例变量,只要放在方法之外
14、state!=1与!(state=1)同理
15、if......elseif 可以做二选一,可以没有else
16、系统默认所有类都直接或间接继承了Object类 直接:原类没有继承任何类,默认继承objec 间接:由于传递性,原类继承的超类继承了object
间接:由于传递性,原类继承的超类继承了object
17、所有类的顶级父类是object,只要是对象,都能点出object的东西,所有对象都最少具有两种形态
18、object顶级父类,没有父类
19、首字母大写了,一定是类,类之前的所有都是包名
20、关于空指针异常
//型一:解释:b=null相当于清除了b的指向,此时的b没有指向任何对象,所以会空指针异常;
public class Test1 {
public static void main(String[] args) {
Bomb b=new Bomb(100,200);
b.y=203;
System.out.println(b.y);//203
b=null;
b.y=405;
System.out.println(b.y);//空指针异常
}
}
class Bomb {
public int x;
public int y;
Bomb(int x,int y){
this.x=x;
this.y=y;
}
//型二:引用类型默认初始化为null
Bomb[] b=new Bomb[3];
for (int i = 0; i <b.length ; i++) {
System.out.println(b[i]);
}//b[0]=null;b[1]=null;b[2]=null
21、关于String
public class Test1 {
public static void main(String[] args) {
String s="hello";
Test1.test(s);
System.out.println(s);//hello
}
public static void test(String ss){//方法没有访问对象的属性,与对象无关,可以设计为静态方法
ss="hello world";
}
}