java中初始化时机和顺序呢

class Pupil{
        Pupil(int age){
                System.out.println("Pupil:"+age);
            }
    }

class Teacher{
        Pupil p1=new Pupil(9);
        Teacher(){
                System.out.println("Teacher()");
                p3=new Pupil(10);
            }

        Pupil p2=new Pupil(11);
        void teach(){
                System.out.println("teach()");
            }

        Pupil p3 =new Pupil(12);
    }

    public class Sequence{
            public static void main(String [] args){
                    Teacher t=new Teacher();
                    t.teach();
                }
        }
时间: 2024-08-28 07:26:47

java中初始化时机和顺序呢的相关文章

Java中 初始化的先后顺序?

我们在java中 Java中初始化的顺寻? java代码: package sru.love.c; class Person { String name = "Person"; static { System.out.println("我是 Person 的 static 代码块"); } { System.out.println("我是 Person 构造代码块"); } Person() { System.out.println("

Java中初始化对象的顺序,静态代码块的用法以及Static的用法详解

(一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用 比如main方法就必须是静态的 这是程序入口 两者的区别就是:静态代码块是自动执行的; 静态方法是被调用的时候才执行的. 静态方法 (1)在Java里,可以定义一个不需要创建对象的方法,

[转载]Java中异常的捕获顺序(多个catch)

http://blog.sina.com.cn/s/blog_6b022bc60101cdbv.html [转载]Java中异常的捕获顺序(多个catch) (2012-11-05 09:47:28) 转载▼ 标签: 转载 分类: 转载 原文地址:Java中异常的捕获顺序(多个catch)作者:leesa Java代码 import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething(

Java中初始化块的真实作用

声明:本博客为原创博客,未经允许,不得转载!原文链接为 http://blog.csdn.net/bettarwang/article/details/27128323. 对于普通的类而言,可以放在初始化块中的初始化工作其实完全可以放到构造函数中进行,只不过有时会带来些许不便,如有多个构造器,就要在多个地方加上初始化函数完成初始化工作,而如果放到初始化块中的话则只要写一次即可.如下例所示: import java.util.*; public class Car { private void i

Java中初始化的顺序问题小结

以下内容有一部分是自己的总结,还有一部分是借鉴别人的总结. 一.基础概念: 1.构造方法: 构造方法用于执行类的实例初始化工作 ,构造方法又称构造函数.创建对象时,根据传入的参数列表,将自动调用相应的构造方法.  每个类都有构造方法,如果没有显示声明构造方法,编译器会自动生成一个默认的无参数的构造方法.默认构造方法实例化对象,并将未赋值的字段赋予默认值. 注意:如果声明了带有参数的构造方法,编译器则不会自动生成默认的无参数的构造方法,此时如果需要无参数的构造方法,则需要显示声明. 2.初始化代码

java中类加载时机

java虚拟机规范虽然没有强制性约束在什么时候开始类加载过程,但是对于类的初始化,虚拟机规范则严格规定了有且只有四种情况必须立即对类进行初始化,遇到new.getStatic.putStatic或invokeStatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化.生成这4条指令最常见的java代码场景是: 1)使用new关键字实例化对象 2)读取一个类的静态字段(被final修饰.已在编译期把结果放在常量池的静态字段除外) 3)设置一个类的静态字段(被final修饰.已在编

java中初始化块、静态初始化块和构造方法

(所谓的初始化方法init()是另一回事, 在构造方法之后执行, 注意不要混淆) 在Java中,有两种初始化块:静态初始化块和非静态初始化块.它们都是定义在类中,用大括号{}括起来,静态代码块在大括号外还要加上static关键字. 非静态初始化块(构造代码块):作用:给对象进行初始化.对象一建立就运行,且优先于构造函数的运行.与构造函数的区别:非静态初始化块给所有对象进行统一初始化,构造函数只给对应对象初始化.应用:将所有构造函数共性的东西定义在构造代码块中. 静态初始化块:作用:给类进行初始化

Java中代码块执行顺序

代码块:在Java中,使用{}括起来的代码被称为代码块.根据其位置和声明的不同,可以分为 局部代码块:局部位置,用于限定变量的生命周期.构造代码块:在类中的成员位置,用{}括起来的代码.每次调用构造方法执行前,都会先执行构造代码块.作用:可以把多个构造方法中的共同代码放到一起,对对象进行初始化.静态代码块:在类中的成员位置,用{}括起来的代码,只不过它用static修饰了.作用:一般是对类进行初始化. 静态代码块,构造代码块,构造方法的执行顺序? 首先执行静态代码块 接着执行构造代码块 最后指向

java中初始化方法

本文主要是讲从<java编程思想>中看到的东西,是第七章复用类的开头内容,主要是类初始化的几种方法的位置,主要包括 1.在定义对象的地方.这意味着他们总是在构造器被调用前被初始化. 2.在类的构造器中 3.在要使用这些对象之前,这种方式称为惰性初始化.在生成对象不值得以及不必每次都生成对象的情况下,这种方式可以减少额外的负担. 4.使用实例初始化. 下面是这四种方式的示例. 1 class Soap{ 2 private String s; 3 Soap() { 4 System.out.pr