StringBuffer x = new StringBuffer();执行过程为例:
Java Virtual Machine Online Instruction Reference 写道
; This example creates a new StringBuffer object. This is like the Java code:
;
; StringBuffer x = new StringBuffer();
; 1. use new to create a new object reference
new java/lang/StringBuffer
; 2. dup the object reference and call its constructor
dup
invokespecial java/lang/StringBuffer/<init>()V
; 3. assign object reference on the stack to a local variable
astore_1
; local variable 1 now contains a StringBuffer object,
; ready for use
为StringBuffer类尚未初始化对象分配内存空间,并将对象引用压入操作数栈.
复制操作数栈顶数据,这里即是复制了操作数栈顶对象引用.
栈顶对象引用出栈,调用对象所属类构造函数.
当前栈顶元素出栈,存入局部变量数组.
特别地,如果只是new StringBuffer()创建一个临时对象时,astore_1则会变更成pop.
分享到:
相关推荐
详细介绍java对象的创建过程,以致对java基础详细的掌握!
COM对象创建过程总结,包括进程内和进程外的
Java对象的创建过程结合反射进行解析。
* 执行启动类的main函数 -> 创建对象的继承树从高到底的类层次中的静态块(如果已经被执行过,则不会重复执行) -> * 继承树中的从最高层开始的实例语句块{}、然后对应的构造函数、以及构造函数中调用的方法 * ...
本文详细讲解如何在js中创建类和对象,包括各种创建对象的方法,以及各种方法的优略
讲述了java对象创建的详细过程,涉及到内存中是如何存储的,以及垃圾回收方式
本次实验进一步学习了Java的相关知识,深入理解了面向过程与面向对象语言的区别,了解了面向对象语言的三大特征,掌握类的声明和构造方法,掌握了对象的创建方法与创建机制,掌握了成员变量、类变量和局部变量区别,...
"ActiveX部件不能创建对象解决方案" 今天,我遇到了一个棘手的问题:ActiveX部件不能创建对象!经过一番分析和解决,我终于找到了解决方案。在这里,我将分享我的经验和知识,希望能够帮助到其他人。 问题现象 ...
内容概要: 本文详细演示了如何在Java中创建对象并使用...建议通过创建简单的Java项目和类,并编写、运行和调试代码来加深对对象创建和使用的理解。 如有疑问,可以参考Java官方文档或搜索相关资料,进一步扩展学习。
JVM 知识点整理:对象的创建过程类加载分配内存分配方式一:指针碰撞分配方式二:空闲列表如何选择?线程安全问题CAS + 失败重试方法线程本地分配缓存区(TLAB)后续工作 类加载 虚拟机遇到一条 new 指令时,首先...
介绍java对象的创建、初始化、和引用。并分析一下JAVA中对象创建和初始化过程中涉及的相关概念问题。
ART运行时CompactingGC为新创建对象分配内存的过程分析.docx
描述对象的创建过程,对象的内存布局,jvm指针压缩,对象访问
对于Vehicle类,我们创建了一个Vehicle对象,然后使用set方法设置其品牌和类型,最后使用start()和run()方法启动和行驶车辆。 对于Rectangle类,我们创建了一个Rectangle对象,然后使用set方法设置其长和宽,最后...
浅析Java语言中对象的创建过程
下面小编就为大家带来一篇浅谈Java内存区域与对象创建过程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
浅析Java语言中对象的创建过程.pdf
通过示例代码和详细解释,帮助读者理解对象的创建过程、内存分配和使用方法。 能学到什么: 理解对象的创建过程和内存分配。 掌握对象的成员变量和方法的访问方式。 理解栈内存和堆内存的概念和作用。 了解对象的...
1面向对象编程与面向过程编程的比较 2类与对象的关系 3类的组成 4对象的创建与使用 5多个源文件的编译
通常情况下,对象创建在堆上还是在栈上,创建多少个,这都是没有限制的。但是有时会遇到一些特殊需求。 1.禁止创建栈对象 禁止创建栈对象,意味着只能在堆上创建对象。创建栈对象时会移动栈顶指针以“挪出”适当大小...