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. 【雕爷学编程】MicroPython动手做(06)——零基础学MaixPy之单目摄像头

    配套 OV2640摄像头:200W像素通用24P摄像头具有200万像素(1632x1232像素),其体积小.工作电压低,提供单片UXGA摄像和影像处理器的所有功能.通过SCCB总线控制,可以输出整帧. ...

  2. HDU3829 Cat VS Dog

    题目链接:https://vjudge.net/problem/HDU-3829 题目大意: 有\(P\)个小孩,\(N\)只猫,\(M\)只狗.每个小孩都有自己喜欢的某一只宠物和讨厌的某一只宠物(其 ...

  3. SSH_ProductCRUD的项目结构与配置文件

    项目结构 各类配置文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hib ...

  4. python-基站位置查询

    本文采用的接口是聚合数据提供的 python2.7环境,3.x环境试了下好像不支持,获取位置信息为空 如下为运用代码: #coding=utf-8 ''' Created on 2019年9月18日 ...

  5. wordpress中文章发布时间不显示?用get_the_date代替the_date

    今天发现,在主题中部分地方使用the_date函数来显示文章发布的时间时,竟然发生不显示时间的情况,再仔细看了一下这些文章,有些都是经过几次修改和保存的,可能是由于the_date只是显示文章第一次发 ...

  6. ketchup服务治理

    ketcup  git地址:https://github.com/simple-gr/ketchup 服务治理是什么 企业为了确保事情顺利完成而实施的过程,包括最佳实践.架构原则.治理规程.规律以及其 ...

  7. C# 数据操作系列 - 18 让Dapper更强的插件

    0. 前言 在前一篇中我们讲到了Dapper的应用,但是给我们的感觉Dapper不像个ORM更像一个IDbConnection的扩展.是的,没错.在实际开发中我们经常用Dapper作为对EF Core ...

  8. [优文翻译]002.陪伴我作为程序员的9句名言(9 Quotes that stayed with me as a developer)

    导读:本文是从<9 Quotes that stayed with me as a developer>这篇文章翻译而来 下面的锦句均来自于<9 Quotes that stayed ...

  9. [CSS工具推荐]0001.推荐 10 个超棒的 CSS3 代码生成工具

    引言:新的在线工具和 WebApp 帮助开发者快速地创建网站而不用写代码.前端开发已经在框架和代码库方面有了很大的进展. 现在许多开发者已经忘记了代码生成器在构建网站时的价值.下面的资源是完全免费的 ...

  10. [PHP自动化-进阶]002.CURL模拟登录带有验证码的网站

    引言:继前文<模拟登录并采集数据>,大家似乎看不过瘾,这会再出一发,模拟实现带验证码网站的登录. 这篇文章主要介绍了PHP使用CURL实现对带有验证码的网站进行模拟登录的方法,可以帮助读者 ...