java 基础对象

java 基础对象Q1 用什么操作对象 A1 句柄 即 Handle 再换个说法 引用 甚至指针 java 基础对象 Q2 对象保存在哪里 A2 一般对象存的地方无非在这几个区域中 寄存器 堆栈 栈 静态存储区 ROM 非 RAM 存储 比如字节流 在 Java 中 主要存储在堆和栈 具体可以分为方法逃逸 存在堆 线程逃逸 存在堆 和无逃逸 存储在栈 三种方式 Q3 对象的初始化 A3

大家好,我是讯享网,很高兴认识大家。



Q1:用什么操作对象?

A1:句柄,即Handle,再换个说法,引用,甚至指针。

java 基础对象Q2:对象保存在哪里?

A2:一般对象存的地方无非在这几个区域中:寄存器,堆栈,栈,静态存储区,ROM,非RAM存储(比如字节流);在Java中,主要存储在堆和栈,具体可以分为方法逃逸(存在堆),线程逃逸(存在堆),和无逃逸(存储在栈)三种方式。

Q3:对象的初始化?

A3:对象可以分为是static和非static两种,两种对象的初始化顺序是不一样的。

就宏观上来说,假设两种对象都存在:

总的顺序是先static后非static先基类后本类

具体是先基类的static字段初始化,然后本类中的static字段初始化,再到基类的非静态,再到本类中的非静态,之后执行基类中的构造器,再到本类构造器执行。

就微观来说,在深入理解jvm里也有讲过,Java解释器先查找类的路径,定位class文件,加载class对象,创建class对象,然后初始化静态对象,当使用new关键词时,先在堆上分配空间,之后空间全部清零,即null,再开始非静态对象的初始化,再执行构造器。

Q4:static对象创建的特点?

静态变量定义时,如果是基本类型,如char,int等,先根据标准对其赋值初始值,如果是指向一个对象的句柄,则除非new一个对象连接起来,否则是null。

小讯
上一篇 2024-12-28 20:38
下一篇 2024-12-30 15:43

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/2478.html