精华内容
下载资源
问答
  • 构造代码块

    2015-08-21 08:28:37
    构造代码块构造代码块的作用:给对象进行统一的初始化。构造函数的作用: 给对应的对象进行初始化。 构造代码块的格式: { 构造代码块 }注意: 构造代码块的大括号必须位于成员 位置上。 代码块的类别: 1. ...
    /*
    构造代码块:
    
    构造代码块的作用:给对象进行统一的初始化。
    
    构造函数的作用: 给对应的对象进行初始化。
    
    
    构造代码块的格式:
    
        {
            构造代码块
        }
    
    注意: 构造代码块的大括号必须位于成员 位置上。
    
    
    代码块的类别:
        1. 构造代码块。
        2. 局部代码块.   大括号位于方法之内。  作用:缩短局部 变量 的生
        命周期,节省一点点内存。
        3. 静态代码块  static 
    */
    
    class Baby{
    
        int id; //身份证
    
        String  name;  //名字
    
        //构造代码块...
        {
            //System.out.println("构造代码块的代码执行了......");
    
        }
    
        //带参构造函数
        public  Baby(int i , String n){
            id  = i;
            name = n;
        }
    
        //无参构造方法
        public Baby(){
        }
    
        public void cry(){
            System.out.println(name+"哇哇哭...");
        }   
    }
    
    
    
    class Demo4 
    {
        public static void main(String[] args) 
        {
            Baby b1 = new Baby(110,"狗娃");  //  狗娃 狗剩 铁蛋
            System.out.println("编号:"+ b1.id + " 名字:"+b1.name);
            /*
            System.out.println("编号:"+ b1.id + " 名字:"+b1.name);
    
            new Baby(112,"狗剩");
            new Baby();
            */
            /*
            new Baby(110,"狗娃");
            new Baby(112,"狗剩");
            new Baby();
            */
        }
    }
    
    /*
    构造 代码块要注意的事项:
        1. java编译器编译一个java源文件的时候,会把成员变量的声明语句提
        前至一个类的最前端。
        2. 成员变量的初始化工作其实都在在构造函数中执行的。
        3. 一旦经过java编译器编译后,那么构造代码块的代码块就会被移动构造
        函数中执行,是在构造函数之前执行的,构造函数的中代码是最后执行的。
        4. 成员变量的显示初始化与构造代码块 的代码是按照当前代码的顺序执行
        的。
    */
    class Demo5 
    {
    
    
    
        //构造函数
        public Demo5(){   //构造函数
            i = 300000000;  
        }
    
        //构造代码块   //构造代码块的初始化
        {
            i = 200000000;
        }
    
        int i = 100000000;   //成员变量的显初始化
    
    
    
        public static void main(String[] args) 
        {
            Demo5 d = new Demo5();
            System.out.println("i = "+d.i); //    双、吴、刘 :2000   :
        }
    }
    
    展开全文
  • 今天有个同事问我关于代码块的问题 只记得静态代码块要提前执行 怕说错,查了...//所有类中有一个默认的构造函数,这里的代码块为构造代码块,在类中的对象被创建时执行 } public static void main(String[] args) {

    今天有个同事问我关于代码块的问题   只记得静态代码块要提前执行 怕说错,查了资料,实测的一下,供大家参考

    public class book {

    {
    System.out.println("这里是构造代码块");//所有类中有一个默认的构造函数,这里的代码块为构造代码块,在类中的对象被创建时执行
    }
    public static void main(String[] args) {

    {
    System.out.println("这里是普通代码块A");
    }
    new book();//第二次类加载时静态代码块不执行
    new book();

    {
    System.out.println("这里是普通代码块B");
    }
    }
    static{
    System.out.println("这里是静态代码块");
    }
    }

    运行结果

    这里是静态代码块
    这里是普通代码块A
    这里是构造代码块//实例化时才创建 
    这里是构造代码块
    这里是普通代码块B



    静态代码块:每个静态代码块只会执行一次(类在内存中加载时执行,类在内存中加载后类已经存在)由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行。

    构造块:(直接在类中定义)且没有加static关键字的代码块称为{}构造代码块。

    构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。

    子类父类有继承关系

    class book {

    {
    System.out.println("这里是父类构造代码块");
    }


    static {
    System.out.println("这里是父类静态代码块");
    }
    }

    class Englishbook extends book {


    {
    System.out.println("这里是子类构造代码块");
    }
    static {
    System.out.println("这里是子类静态代码块");
    }


    public static void main(String[] args) {


    {
    System.out.println("这里是子类普通代码块");
    }


    new Englishbook();
    new Englishbook();


    }
    }

    结果

    这里是父类静态代码块
    这里是子类静态代码块
    这里是子类普通代码块
    这里是父类构造代码块
    这里是子类构造代码块
    这里是父类构造代码块
    这里是子类构造代码块

    简单总结:父类静态代码块初始化时执行一次,只要在类里面,方法外面都属于构造代码块,子类每次new都会调用父类的构造代码块,普通代码块按顺序执行。

    Ps实践是检验真理的唯一标准

    展开全文
  • 所谓的代码块是指使用“{}”括起来的一段代码,根据位置不同,代码块可以分为构造代码块、构造函数、静态代码块。 静态代码块:用staitc声明,jvm加载类时执行,仅执行一次 构造代码块:类中直接用 {} 定义,每一...

    所谓的代码块是指使用“{}”括起来的一段代码,根据位置不同,代码块可以分为构造代码块、构造函数、静态代码块。

    • 静态代码块:用staitc声明,jvm加载类时执行,仅执行一次
    • 构造代码块:类中直接用 {} 定义,每一次创建对象时执行。
    • 构造函数:创建对象时执行

    执行顺序优先级:静态代码块 > 构造代码块 > 构造函数。

    静态代码块

    static {
         System.out.println(" I am 静态代码块");
    }
    • 静态代码块优先于主方法执行,而在类中定义的静态代码块会优先于构造块执行,而且不管有多少个对象产生,静态代码块只执行一次。
    • 静态代码块其实就是给类初始化的,而构造代码块时给对象初始化的。
    • 一个类中可以有多个静态代码块

    构造代码块

    {
         System.out.println(" I am 构造代码块");
    }
    • 构造代码块的作用是给对象进行初始化。
    • 对象一建立就运行构造代码块,而且优先于构造函数执行
    • 构造代码块与构造函数的区别是:构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化,因为构造函数是可以多个的,运行哪个构造函数就会建立什么样的对象,但无论建立哪个对象,都会先执行相同的构造代码块。也就是说,构造代码块中定义的是不同对象共性的初始化内容。

    构造函数

    public Test() {
        System.out.println(" I am 构造函数");
    }

    每创建一个对象时就会执行一次。同时构造函数是给特定对象进行初始化,而构造代码块是给所有对象进行初始化

    示例代码:

    class Test {
        static {
            System.out.println(" I am 构造函数");
        }
    
        {
            System.out.println(" I am 静态代码块");
        }
    
        public Test() {
            System.out.println(" I am 构造代码块");
        }
    }
    
    
    public class CodeBlock {
        /**
         * @itmyhome
         */
        public static void main(String[] args) {
            Test test1 = new Test();
            System.out.println("-------");
            Test test2 = new Test();
        }
    }

    输出结果:

     I am 静态代码块
     I am 构造代码块
     I am 构造函数
    -------
     I am 构造代码块
     I am 构造函数
    展开全文
  • Java--构造代码块

    千次阅读 2019-06-13 13:53:52
    构造代码块 对象一建立就运行,而且优先于构造函数运行。 构造代码块中定义的是不同对象共性的初始化内容。 作用: 给对象进行初始化。 构造代码块与构造函数的区别: 构造代码块是给所有对象进行统一初始化,构造...

    构造代码块

    对象一建立就运行,而且优先于构造函数运行。
    构造代码块中定义的是不同对象共性的初始化内容。
    作用: 给对象进行初始化。
    构造代码块与构造函数的区别:
    构造代码块是给所有对象进行统一初始化,构造函数是给对应的对象初始化。
    细节: 构造代码块可以放在类中的任意位置。都会优先于构造函数执行,跟放置的位置无关。如:构造代码块可以分别放在以下代码举例中的①②③④⑤号位置,都会优先于构造函数运行。

    代码举例:

    class Person
    {
    	private String name;
    	private int age;
    	//①号位置
    	Person()
    	{
    		System.out.println("A:name="+name+"   age="+age);
    	}
    	//②号位置
    	Person(String name)
    	{
    		this.name = name;
    		System.out.println("B:name="+name+"   age="+age);
    	}
    	//③号位置
    	Person(int age,String name)
    	{
    		this.age = age;
    		this.name = name;
    		System.out.println("C:name="+name+"   age="+age);
    	}
    	//④号位置
    	public void cry()
    	{
    		System.out.println("cry……");
    	}
    	//⑤号位置
    	{
    		cry();
    	}
    }
    public class PersonDemo
    {
    	public static void main(String[] args)
    	{
    		Person p1 = new Person();
    		Person p2 = new Person("lishi");
    		Person p3 = new Person(10,"zhangsan");
    	}
    }
    

    程序运行结果:

    cry……
    A:name=null   age=0
    cry……
    B:name=lishi   age=0
    cry……
    C:name=zhangsan   age=10
    
    展开全文
  •  构造代码块的大括号必须位于成员位置上(类之内,方法之外)  2.局部代码块。 局部代码块的大括号位于方法之内。作用:缩短局部 变量 的生命周期,节省一点点内存。很少用  3.静态代码块。 静态代码块是...
  • 构造代码块 和 构造方法 执行顺序

    千次阅读 2019-01-03 11:42:57
    构造代码块:定义在类的成员位置,直接使用{ },在{}中写代码内容。 位置:类中,方法外,和方法并列,和先后位置无关。 执行时机:创建对象的时候执行一次。在构造方法隐式3步的最后一步。当构造代码块执行结束...
  • 根据位置和声明不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块 局部代码块:在方法中出现,限定变量生命周期,及早释放,提高内存利用率 构造代码块(初始化块):在类中方法外出现 静态代码块:...
  • 构造函数与构造代码块
  • 静态代码块和构造代码块

    千次阅读 2014-06-19 02:32:45
    静态代码块和构造代码块的 所谓代码块是指使用“{}”括起来的一段代码。Java有四种代码块,分别是普通代码块(如方法后大括号中的代码)、构造代码块、静态代码块、同步代码块(与多线程数据安全有关)。 1....
  • 构造代码块:执行时间比静态代码块晚,比构造函数早,和构造函数一样,只在对象初始化的时候运行。没有名字、参数和返回值。构造函数:执行时间比构造代码块时间晚,也是在对象初始化的时候运行。没有返回值,构造...
  • )静态代码块>main方法>构造代码块>构造方法。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。class StaticBlock { int num = 9; StaticBlock() { System.out.print("d "); } //静态代码块 ...
  • java中普通代码块、构造代码块、静态代码块的区别: //执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。 其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。 1,普通代码...
  • 构造代码块: 作用:给对象进行初始化。 对象一建立就运行,而且优先于构造函数执行。 构造代码块与构造函数的区别: 构造代码块是给所有对象进行统一初始化, 而构造函数是给对应的对象初始化。 构造代码快中...
  • 今天我总结了一下java中静态代码块 构造代码块 构造方法的执行顺序及其注意问题 执行顺序: 静态代码块>构造代码块>构造方法体 首先要知道静态代码块是随着类的加载而加载,而构造代码块和构造方法都是随着对象...
  • 构造代码块与静态代码块1.构造代码块:每次创建对象时执行 2.静态代码块:JVM加载类(加载在运行之前)时执行,静态代码块只执行一次 3.public static B t1 = new B();也是静态代码块 4.执行顺序:静态代码块>...
  • package gt; /** * Created by Cronous on 2017/10/29. * 静态代码块和构造代码块的区别 */ public class day01 { public static void main(String[] args){ Person p1 = new Person("tom"); Person p2 =
  • 我是构造代码块! 我是构造方法! 我是构造代码块! 我是构造方法! 构造代码块先于构造方法加载 */ class Student{ static { System.out.println("Student 静态代码块!")...
  • Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序阅读目录构造函数构造代码块静态代码块Java类初始化顺序静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义...
  • 构造代码块、静态代码块与构造方法是三种不同的代码块,那么他们到底有什么区别呢? 一、简单认识一下构造代码块、静态代码块与构造方法 class A { //构造代码块 { System.out.println("构造代码块A"); } //...
  • Java中构造方法,构造代码块和静态代码块执行顺序详解 前言: 构造方法,构造代码块和静态代码块的执行顺序是一个常见的面试题,精通Java的人都知道执行顺序为:“静态代码块——>构造方法——>构造代码块”,...
  • 1.构造代码块 2.局部代码块 1.构造代码块 构造代码块在类中定义,作用是初始化对象,那有人问了,那跟构造函数有什么区别呢?构造函数可以有多个,例如有A,B,C三个构造函数,他们如果都有System.out....
  • 执行优先级:静态代码块 > mian方法 > 构造代码块 > 构造方法 废话不多说,我们来介绍一下大家不经常接触到的静态代码块和构造代码块。1. 静态代码块随着类的加载而执行,只执行一次,并优先于主函数执行,是对类...
  • 在Java中,静态代码块、构造代码块、构造函数、普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序。 回到顶部 1、静态代码块  ①、格式  在java类中(方法中不能...
  • Java基础:构造函数与构造代码块构造函数构造代码块 构造函数 构造函数是Java中的一个重要概念,它的作用是对对象的数据进行初始化。怎么去理解这个初始化呢,以新生入学为例,我们当然可以在学生入学后去给他分配...
  • 闲暇之余,总结并撸码测试了一下静态代码块、构造代码块、构造方法的执行顺序及需要注意的问题 当然,首先大家得知道静态代码块是跟着类的加载而加载的,而构造代码块和构造方法是随着对象的加载而加载的,相比这个...
  • 今天我总结了一下java中静态代码块 构造代码块 构造方法的执行顺序及其注意问题 首先要知道静态代码块是随着类的加载而加载,而构造代码块和构造方法都是随着对象的创建而加载 当时做了这么一个小案例(想必这个...
  • 除了说普通代码块,静态代码块,构造代码块的执行顺序外,还有静态方法,静态变量等,都放在一起的话,这个执行顺序,怎么确定。 我就实际弄个代码,看下执行顺序。 public class Line { static { System.out....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 445,390
精华内容 178,156
关键字:

构造代码块