java小知识

来源:互联网 发布:苹果mac管理员密码忘记 编辑:程序博客网 时间:2024/05/01 04:19

1:当比较数值是否相等用equals()方法,当测试两个类的引用是否指向同一个对象时用==

2:栈  保存局部变量的值,1用来保存基本数据类型的值2:保存类的实例,即堆区对象的引用

3:堆,用来存放动态产生的数据,比如new出来的对象,注意创建出来的对象只包含属于各自的成员变量,并不包含成员方法,因为同一个类的对象拥有各自的成员变量,存储在各自的堆中,但他们共享该类的方法,并不是每创建一个对象就把成员方法复制一次

4:数据段:用来存放static 定义的静态成员

5:代码块:用来存放从硬盘上读取的源程序代码

分清什么是实例什么是对象。Class a= new Class();此时a叫实例,而不能说a是对象。实例在栈中,对象在堆中,操作实例实际上是通过实例的指针间接操作对象。多个实例可以指向同一个对象。

栈中的数据和堆中的数据销毁并不是同步的。方法一旦结束,栈中的局部变量立即销毁,但是堆中对象不一定销毁。因为可能有其他变量也指向了这个对象,直到栈中没有变量指向堆中的对象时,它才销毁,而且还不是马上销毁,要等垃圾回收扫描时才可以被销毁。

栈中的数据可以共享

Java的数学运算都是在栈中进行的Java会自动对i1i2进行拆箱操作转化成整型

寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制


0 0
原创粉丝点击