java对象的初始化过程和创建对象的几种方式

1、加载父类,加载父类的静态属性和静态代码块

2、加载子类,加载子类的静态属性和静态代码块

3、初始化父类中的非静态属性并赋初值,执行父类非静态代码块,执行父类构造。

4、初始化子类中的非静态属性并赋初值,执行代码块,执行构造

总之一句话,静态代码块内容先执行(父先后子),接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。

静态属性和静态代码块的加载顺序:就是他们的编译顺序。

对象实例化的几种方式:

1、new对象;

2、通过工厂方法返回对象,如:String str = String.valueOf(23);

3、通过反射执行newInstance()方法;

4、对象的clone方法

5、通过I/O流(包括反序列化),如运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。

时间: 2024-12-30 03:10:28

java对象的初始化过程和创建对象的几种方式的相关文章

JAVA对象的初始化过程

出处:http://blog.csdn.net/andrew323/article/details/4665379 下面我们通过两个例题来说明对象的实例化过程. 例1:   编译并运行该程序会有以下输出 Static Block Employee Company:china soft Non-Static Block Employee phone:0755-51595599 Employee(String) Empoloyee() 下面我们来对结果做分析: 1 在代码34行实例化对象时, 先对给

深入解析Java对象的初始化过程【看完这篇,你爸爸再也不用担心你不会实例Java 对象了】

这还是从一道Java 的面试题说起.不多说直接看这道面试题: public class Base{ private String baseName = "base"; //构造方法 public Base(){callName();} //对象方法 public void callName(){ System. out. println(baseName); } //静态内部类 static class Sub extends Base{ //静态内部类的字段 private Stri

java 对象的初始化过程

类Person: public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } } Person p = new Person("zhangsan",20); 这句话做了什么事情? 1.因为new用到了Person.class,所以会先找到Person.class文件并加载到内存中.

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

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 深入理解Java对象的创建过程:类的初始化与实例化 - Rico's Blogs - 博客频道 - CSDN.NET Rico's Blogs 潜心修炼,成为一个更好的人. 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅

java中对象的初始化过程

class Parent{ int num = 8;// ->3 Parent(){ //super(); // ->2 //显示初始化 // ->3 //构造代码段 // ->4 show(); // ->5 } {// ->4 System.out.println("Parent constructor code run->"); } public void show(){//被覆盖 System.out.println("num

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

参考来源:http://blog.csdn.net/justloveyou_/article/details/72466416 摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化.在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化.本文试图对JVM执行类初始化和实例化的过程做一个详细深入地介绍,以便从Java虚拟机

Java 对象的创建过程

类的初始化与实例化一个 Java 对象的创建过程往往包括类的初始化 和 实例化 两个阶段.Java 规范规定一个对象在可以被使用之前必须要被正确地初始化.在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化.在实例化一个对象时,JVM 首先会检查相关类型是否已经加载并初始化,如果没有,则 JVM 立即进行加载并调用类构造器完成类的初始化.Java 对象的创建方式一个对象在可以被使用之前必须要被正确地实例化.在 Java 程序中,有多种方法可以创建对象,最直接的一种就是使用 new 关

Java中的初始化过程(转)

原文:http://www.cnblogs.com/mmbo/archive/2009/10/05/1578156.html 1.类成员自动初始化,基本类型总是最先初始化为0(boolean为false,(char)0),对象的引用初始化为null:2.类成员指定初始化,可以在类成员定义或构造器(包括其他方法)中给基本类型和非基本类型对象初始化,但这并不能阻止自动初始化首先进行:3.按类成员定义的顺序决定初始化的顺序:4.静态成员只有在第一次被访问时(class对象首次加载)才会被初始化,此后不

Java常见问题之初始化过程

假设有个名为Dog的类 对于静态字段: 1. 当首次创建类型为Dog的对象时,或者Dog类的静态字段/静态方法首次被访问时,Java解释器会查找类路径,以定位Dog.class文件. 2. 载入Dog.class,此时初始化所有静态字段,如果没有对静态字段进行显示初始化,则默认将所有基本类型字段都设置成标准初值,而引用字段被设置成null. 对于非静态字段: 1. 当创建类型为Dog的对象时,首先将在堆上为该对象分配存储空间,且存储空间会被清零,这就将所有基本类型字段都设置成了标准初值,而引用字