1.先为对象分配空间,并按属性类型默认初始化

ps:八种基本数据类型,按照默认方式初始化,其他数据类型默认为null

2.父类属性的初始化(包括代码块,和属性按照代码顺序进行初始化)

3.父类构造函数初始化

4.子类属性的初始化(同父类一样)

5.子类构造函数的初始化

class A{

int a = 8;

{
//初始化块 无名语句块
//System.out.println("1");
printA();
}
int b = 9;
public A()
{
//System.out.println("2");
printA();
}
public void printA()
{
System.out.println(a);
}

}

class B extends A{

int a = 6;

{

printA();

}

public B(){

printA();

}

public void printA(){

System.out.println(this.a);

}

@Override
protected void finalize() throws Throwable {
System.out.println("被收了");
super.finalize();
}

}

调用new B()输出结果:0066

首先为对象分配存储空间

a(A)->并默认赋值为0

a(B)->并默认赋值为0

1.根据对象实例化过程,初始化父类属性,int a = 8,将a(A)中的值修改为8

2.执行A中代码块中的代码,由于子类复写了printA()方法,调用子类的printA(),B类中的a仍为0,所以打印0

3.调用父类的构造函数,执行printA()方法,同上,执行子类中的printA()方法,打印0

4.初始化子类的属性,将a(B)中的值修改为6,执行代码块中printA()方法,打印6

5.初始化子类的构造函数,执行子类的printA()方法,打印6

6.输出结果为:0066

补充:当一个对象没有被任何变量引用的时候,或者将一个对象置为null的时候,系统的垃圾回收机制会在下一次垃圾回收的时候销毁该对象,调用对象的finalize()方法

主动调用System.gc()方法也会主动触发垃圾回收机制销毁对象

Java对象实例化的过程的更多相关文章

  1. 深入理解Java对象的创建过程:类的初始化与实例化

    摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类 ...

  2. 深入学习Java对象创建的过程:类的初始化与实例化

    在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完 ...

  3. java 子类对象实例化的过程

    大家往往听说  子类继承了父类就有了父类中的所有的非私有的属性,但是怎么就有了父类的属性了呢 ?且听下面分解 子类对象实例化的过程: 1 从结果上来看:(继承性) 子类继承了父类以后 就获取了父类中声 ...

  4. Java对象的创建过程:类的初始化与实例化

    一.Java对象创建时机 我们知道,一个对象在可以被使用之前必须要被正确地实例化.在Java代码中,有很多行为可以引起对象的创建,最为直观的一种就是使用new关键字来调用一个类的构造函数显式地创建对象 ...

  5. (转)深入理解Java对象的创建过程

    参考来源:http://blog.csdn.net/justloveyou_/article/details/72466416 摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一 ...

  6. 图解JAVA对象的创建过程

    前面几篇博文分别介绍了JAVA的Class文件格式.JVM的类加载机制和JVM的内存模型,这里就索性把java对象的创建过程一并说完,这样java对象的整个创建过程就基本上说明白了(当然你要有基础才能 ...

  7. java --- 对象的创建过程

    java 对象创建的过程 存在了继承关系之后,对象创建过程如下: 1.分配空间.要注意的是,分配空间不光是分配子类的空间,子类对象中包含的父类对象所需要的空间,一样在这一步统一分配.在分配的空间的时候 ...

  8. JAVA对象实例化方式总结

    JAVA对象实例化的方法 New对象实例 // 直接new对象实例 Productor productor = new Productor(); 反射机制 Java反射机制是在运行状态中,对于任意一个 ...

  9. 基础篇:详解JAVA对象实例化过程

    目录 1 对象的实例化过程 2 类的加载过程 3 触发类加载的条件 4 对象的实例化过程 5 类加载器和双亲委派规则,如何打破双亲委派规则 欢迎指正文中错误 关注公众号,一起交流 参考文章 1 对象的 ...

随机推荐

  1. 6-JVM常用工具和优化

    JVM 常用工具和优化 JDK 自带的 jconsole jvisualvm 三方的工具 arthas 调优关注点(内存.GC): 内存 MAT XElephant 在线:perfma GC 拿到GC ...

  2. Jenkins-插件开发(简单demo)

    推荐:官网创建插件案例:https://jenkins.io/doc/developer/tutorial/run/ 官方的这篇文章讲的很详细了,我就补充补充其中遇到的一些问题. 前置条件:maven ...

  3. How To Mitigate Slow HTTP DoS Attacks in Apache HTTP Server

    http://www.acunetix.com/blog/web-security-zone/articles/slow-http-dos-attacks-mitigate-apache-http-s ...

  4. 浙工大新生赛莫队处理+区间DP+KMP+分析题

    题目描述 读入一个长度为n的整数数列a1,a2,…,an,以及一个整数K. q组询问. 每组询问包含一个二元组(l, r), 其中1≤l≤r≤ n, 求所有满足以下条件的二元组(l2, r2)的数目: ...

  5. poj1780欧拉回路

    转载 #include<cstdio> #include<cstring> ; bool vis[N]; char ans[N]; int main() { int n; wh ...

  6. 欧拉函数 BZOJ2705

    2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 3154  Solved: 1968[Submit][ ...

  7. GYM101635E Ingredients

    题目链接:https://vjudge.net/problem/Gym-101635E 题目大意: 给定一个有 \(N\) 条边的有向无环图(有多个起点),每条边都有其费用和收益,现要从一个或多个起点 ...

  8. PHP常量的定义和用法

    我们通常把不经常变的值定义成常量,常量一般用全部大写来表示,前面不加美元符号,也可减少团队开发的出错.那么define和const有什么区别呢? 1.const是一个语言结构:而define是一个函数 ...

  9. indetityserver4-implicit-grant-types-请求流程叙述-上篇

    说明:使用项目代码是这个,做了一点体力活:将 implicit grant types(简化授权类型)的页面跳转流程抓了个包. QuickstartIdentityServer 项目的发布地址:127 ...

  10. 脚本学习一(echo、echo off、@、start)

    1.echo表示显示此命令后的字符 脚本: 输出结果: 2.echo off表示在此语句后所有运行的命令都不显示命令行本身 脚本: 输出结果: 3.@与echo off相象,但它是加在每个命令行的最前 ...