1、一切都是对象,用句柄操作对象
句柄和对象可以比作遥控器和电脑;即使没有电视机,遥控板也可以独立存在,拥有一个句柄并不一定要有个对象与他链接;创建一个句柄,没有初始化,会出异常,你并没有给其创建对象;
2、所有对象都必须创建
创建对象时,我们希望它与一个对象相连接,通过new关键字,意思为把我创建一个新对象;
2、1数据保存在什么地方
1、寄存器:这是保存最快的地方,因为它存在与其它存储器不同的地方,处理器内部;(我们对寄存器没有任何控制权,在程序里你也找不到寄存器的影子);
2、堆栈,位于常规ram,但它可以通过堆栈指针获得处理器的支持,堆栈指针下移会创建新的内存,上移则会释放内存,这是一种特别快特别有效的存储方式,速度仅次于寄存器,java数据要保存在此,特别是句柄,对象不保存于此;
3、堆,是一种常规存储的内存池,保存了java对象,
4、静态存储;这的静态是指位于固定位置,程序运行期间,静态存储的数据将随时等候调用。可用static关键字指出一个对象的特定元素是静态的。但Java对象本身永远都不会置入静态存储空间。
5、其它的;
2.2特殊情况和特殊类型
有一些类需要特别对待,可以理解为基本类型或主类型,进行程序设计时需要频繁的使用它们。之所以特别对待,因为new创建对象并不是特别对象,因为将新创建的对象放在了堆里,不是用new创建变量,而是创建一个并非句柄的“自动”变量。这个变量容纳了具体的值,并置于堆栈中,能够更高效地存取。
Java决定了每种主要类型的大小。类型有int char byte short long float double
2.3java数组
创建数组时很可能之创建了个数组句柄,并未真正创建数组对象