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 = " + num);
	}
}

class Child extends Parent{
    int num = 9;// ->6

	Child(){
	     super();// ->1
	     //显示初始化  ->6
		 //构造代码段  ->7
	     num = 10; // ->8
		 System.out.println("after Child constructor code && Child constructor num = " + num);// ->9
	}

	{// ->7
	   System.out.println("Child constructor code run->");
	   System.out.println("after Child constructor num = " + num);
	} 

	public void show(){
	    System.out.println("num = " + num);
	}
}

public class PC{
     public static void main(String[] args){
	     new Child();
	 }
}

  

java中对象的初始化过程

时间: 2024-11-16 16:40:00

java中对象的初始化过程的相关文章

java中对象的初始化问题

最近又把java编程思想看了看.又有些收获.此书确实不错 java中的初始化相信很多人都知道.但是具体的初始化步骤,初始化几次确不一定.上代码 public class A{ public static A a = new A(); public static int i; public static int j= 2; public A(){ i++; j++; } public static void main(String[] args){ A a1= new A(); System.ou

java中对象的初始化顺序

class HelloA { public HelloA() { System.out.println("HelloA"); } { System.out.println("I'm A class"); } static { System.out.println("static A"); }}public class HelloB extends HelloA { public HelloB() { System.out.println(&quo

java中一个对象的初始化过程

// 对象初始化的过程 class Fu { int num=55;// 1, num=0;对象中的成员变量默认初始化.5, 显示初始化 num=55 { System.out.println("FU类构造代码块");// 6, 构造代码块初始化 } Fu() { // 3 FU类构造函函数初始化 super(); // 4 object构造函函数初始化 // 5 显示初始化,初始化成员变量 // 6 构造代码块初始化类 System.out.println("FU构造函数&

java中对象的创建过程

举例:类A的的对象a的创建过程 1,因为构造器实质上是静态方法,当首次创建A类的对象时(即执行了A类的静态方法),或者A类的静态方法/静态域首次被访问时,java解释器必须查找类路径,以定位A.class文件. 2,载入A.class文件,有关静态初始化的所有动作都被执行.因此,静态初始化只在Class对象首次加载的时候执行一次. 3,为将要创建的a对象分配足够多的存储空间. 4,执行所有出现在字段定义处的初始化动作. 5,执行构造器(如有继承,先执行基类的构造器). 原文地址:https://

细谈 对象的初始化过程------内存中的实现过程?

今天对于内存的理解 又加深了一步: 对下面代码的理解: class Person { private String name="xiaohong"; private int age=23; private static String country="CN"; { System.out.println(name+" "+age); } public Person(String name,int age) { this.name = name; t

JVM中对象的创建过程

JVM中对象的创建过程如以下流程图中所示: 对其主要步骤进行详细阐述: 为新生对象分配内存: 内存的分配方式: 指针碰撞:假设Java堆中内存是绝对规整的,所有用过的内存放在一边,空闲的内存在另一边,中间防着一个指针作为分界的指示器,那么当分配内存时仅需移动指针即可. 空闲列表:维护一个列表,记录那些内存可用,分配时找出一块足够大的空间进行划分,并更新列表记录. 选择:内配方式的选择依赖于内存大小是否规整,内存大小的规整,依赖于垃圾收集器是否带有压缩整理功能. 并发情况下保证线程安全: 方法一:

java中的显示初始化和特定初始化

public class Test{ public static void main(String[] args){ Child child = new Child(); } } class Parent{ public Parent(){ super(); show();//this.show(); 因为是Child类对象调用了super()来构造其父类的部分;所以父类中的this(随着其构造方法入栈的)是指向Child类对象的!所以调用的就是Child类对象的show方法! return ;

java基础-对象的初始化

一 前言 本节内容将会提到方法重载,对象的初始化,对象的构造器,和this关键字的使用,以及会简要的概括一下java中对象回收机制.觉得文章不错的读者可以关注一下作者的博客和公众号(同博客名称) 二 方法重载 2.1 方法重载的定义 方法重载是指同名的方法具有不同的参数列表:不同的参数列表是指参数列表个数不同或者相同的个数的参数,但具有不同的参数类型: 代码示例: /** * @Author lsc * <p> 方法重载</p> */ public class OverLoadZ

对象的初始化过程

对象的初始化过程: class Person{ private String name; private int age; ...//set,get person(String name,int age){ ... } } ... 例如 Person p = new Person("战士",30);1,因为new用到了Person.class.所以会先找到Person.class文件并加载到内存中. 2,执行该类中的static代码块,如果有的话,给Person. class类进行初始