对象生命周期之--实例化
实例化一个类有四种途径:
1、使用new操作符;
2、调用Class或者newInstance()方法;
3、调用任何现有对象的clone()方法;
4、通过java.io.ObjectInputStream类的getObject()方法反序列化;
虚拟机为实例变量赋初值会根据创建对象的方法不同采用三种技术:
1、如果对象是clone()调用创建,虚拟机把原来被克隆的实例变量中的值拷贝到新对象中;
2、如果是通过一个ObjectOutputStream的readObject()调用反序列化的,虚拟机通过从输入流中读入的值来初始化哪些非暂时性的实例变量;
3、调用对象的实例初始化方法;
针对源代码中每一个类的构造方法,虚拟机都产生一个<init>()方法;
一个<init>()方法中可能包含三种代码:
1、调用另一个<init>()方法;
2、实现对任何实例变量的初始化;
3、构造方法体代码;
构造方法中包含this()调用(同一个类的另一个构造方法),对应的<init>()方法将由两部分组成:
1、一个同类的<init>()方法的调用;
2、实现了对应构造方法的方法体的字节码;
如果不含this()调用,且此对象不是Object,<init>()方法则由三部分组成:
1、一个超类的<init>()方法调用;
2、任意实例变量初始化方法的字节码;
3、实现了对应构造方法的方法体的字节码;
如果构造方法没有明确地从this()或者super()调用开始,对应的<init>()方法默认调用超类的无参<init>()方法;
分享到:
相关推荐
一个文档让你读懂什么事java虚拟机,让你的编程生涯更加的透彻!
资源名称:Scala程序设计:Java虚拟机多核编程实战资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
主题:java虚拟机分析与优化 ——演讲者 李 镭 您是否曾经对WebSphere所使用的JVM如何运作感到好奇?您如何调整它使得Java应用运行得稳定顺畅?它能够提供哪些信息让您的Java应用充分利用系统资源?为了能够使得您...
深入理解Android(二):Java虚拟机Dalvik
Android虚拟机ART
《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和...
《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和...
java虚拟机学习 java虚拟机学习java虚拟机学习java虚拟机学习java虚拟机学习
第1章 :简单地介绍了Java虚拟机的历史并吹捧了←_← 一下Java的平台无关性(一次编译,到处运行); 第2章:概览Java虚拟机整体架构; 第3章:介绍如何将Java语言编写的程序转换为虚拟机指令集; 第4章:定义...
java虚拟机OutOfMemoryError:Java heap space堆dump文件,可以直接用来分析。
《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和...
第二章:java虚拟结构(运行时区域内存:寄存器,java虚拟机栈,java堆,方法去,运行时常量池,本地方法栈); 第三章:为java虚拟机编译; 第四章:Class文件格式; 第五章:加载、链接与初始化
《深入理解Android:卷I》,资源大小:2.66 MB,欢迎下载
与我一起学 JVM:Java 虚拟机内存组成概念前言Java 虚拟机内存划分运行时数据区域程序计数器Java 虚拟机栈局部变量表本地方法栈Java 堆方法区运行时常量池直接内存 前言 刚开始看《深入理解Java虚拟机》,文章主要就...
本书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机,取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机,整个过程不仅能让读者做到对...
《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和...
java 虚拟机
4.6 网络移动性:java设计的中心 4.7 资源页 第5章 java虚拟机 5.1 java虚拟机是什么 5.2 java虚拟机的生命周期 5.3 java虚拟机的体系结构 5.3.1 数据类型 5.3.2 字长的考量 5.3.3 类装载器子...
本书循序渐进地介绍了Scala的函数式编程基础,虽然篇幅短小,却切中要害。读者可以学会使用Scala静态语言的强大功能创建简洁、可扩展、高度可并行的代码。对于多核时代JVM上的并发编程,Scala是绝好的工具,而本书是...
《Java虚拟机规范 7》是一份完整的描述Java虚拟机是如何设计的规范文档。这份文档对于任何一个希望实现Java虚拟机的编译器作者,或者希望实现一个与规范相兼容的Java虚拟机的程序员来说都是必不可少的。