1,早期经常这样定义变量
int value=100;
前面的示例中这样定义变量
MyClass obj = new MyClass();
不一样 因为第一种是原始数据类型定义 而第二种是通过引用类名创建一个对象来引用出来
定义对象类型的变量时没有进行赋值而是null
而定义原始类型的变量分配内存
2,对象变量不能用“==”来判断两变量值相等
3,用同一个类声明两个对象不相等 因为他们看的是地址
比较是否是同一个对象
3,Object:定义一个类时不显式指明其父亲类则默认Object
其是JAVA最顶层基类定义了equals()
4,在本类用同名是构造函数
没有返回值
5,如果创造了一个构造函数那么系统不再默认构造所以
其构造函数括号类型不对
6,对于有初始化块 构造方法和字段初始值 先构造函数再初始值!!!重要(顺序是1,执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。
2,执行类的构造函数。)
7,使用静态函数访问实例成员用声明一个新对象然后调用新对象的实例成员
public class MyFileReader {int x = 5; static int y = 2; public static void Method()//静态方法 { System.out.println("实例变量x = " + new MyFileReader().x); System.out.println("静态变量y = " + y); } public static void main(String[] args) {MyFileReader.Method(); MyFileReader ex= new MyFileReader(); System.out.println("x = " + ex.x); } }
8,Integer 用intValue进行比较数值
而且其有-128到127的缓存只有这中间的可以直接进行比较