`

java中构造代码块、static代码块和局部代码块的区别

    博客分类:
  • java
 
阅读更多
class StaticCode{
    int age;
    // static 代码块
    static{
        System.out.print("static ");
    }
    //构造代码块
    {
        System.out.print("55 ");
    }    
    // 构造函数
    StaticCode(int age){
        this.age=age;
        System.out.print(age+",");
    }
    void show(){
    // 局部代码块
        {
            int age=30;
        }
        System.out.print("show:"+age+",");
    }
}
static class StaticCodeDemo{
    public static void main(String[] args){
        StaticCode p1=new StaticCode(20);
        p1.show();
        StaticCode p2=new StaticCode(20);
    }
}

// 执行结果为:static 55 20,show:20,55 20,

 

// 分析: 
// 1、先执行StaticCode这个类,所以static
// 2、创建p1对象,执行构造代码块,55
// 3、执行构造函数初始化,20
// 4、执行p1.show(),show:20
// 5、 创建p2对象,执行构造代码块,55
// 6、执行构造函数初始化,20

// 总结: static 代码块随着类的加载,只加载一次。作用是初始化类。
// 构造代码块,可以给所有对象进行初始化的。创建几个对象就调用几次,是给对象进行通用性的初始化。
// 构造函数是给对应的对象进行针对性的初始化。
// 局部代码块限定函数中变量的生命周期,age=30局部代码执行完。自动释放掉了。

 

转自:http://www.cnblogs.com/bigben223/p/7986179.html

分享到:
评论

相关推荐

    Java 中普通代码块,构造代码块,静态代码块区别及代码示例

    Java编程语言中有三种类型的代码块,它们分别是普通代码块、构造代码块和静态代码块,每种都有其特定的用途和执行顺序。 1. **普通代码块**: 普通代码块(也称为局部代码块)是在方法或者类的成员变量声明之间...

    Java构造代码块,静态代码块原理与用法实例分析

    Java构造代码块和静态代码块是Java中两种特殊的代码块,它们的运行机制和应用场景不同,下面将详细介绍Java构造代码块和静态代码块的原理、用法和注意事项。 一、局部代码块 局部代码块是指在某个特定的范围内定义...

    java代码-日常练习33,代码块### 静态代码块 static{代码内容;} 随着类的加载就执行一次 构造器代码块 {代码内容;} 每创建对象就执行一次 局部代码块 {代码内容;} 方法执行一次执行一次

    在日常练习33中,我们关注的是三种不同类型的代码块:静态代码块、构造器代码块和局部代码块。下面将详细讲解这三种代码块的特点和用法。 1. 静态代码块: 静态代码块由`static`关键字标识,它是在类被加载到Java...

    java中final和static的总结

    在Java编程语言中,`final` 和 `static` 是两个非常重要的关键字,它们分别具有不同的含义和用法,但都对代码的结构和行为产生深远影响。本文将深入探讨这两个关键字,并结合实际示例来解释它们的应用场景。 首先,...

    java代码块测试

    1. **局部代码块**:这些代码块定义在方法内部,仅在该方法调用时执行。它们通常用来限制变量的作用域,提高内存效率。 2. **构造器代码块**或**实例初始化块**:当创建类的新实例时,这些代码块会执行。它们可以...

    Java代码块与代码加载顺序原理详解

    Java代码块主要有三种类型:局部代码块、构造代码块和静态代码块。 (一)局部代码块 局部代码块是指在方法内部使用的代码块,以{ }括起来,用于限定变量的生命周期,尽早释放,节约内存。局部代码块的调用是以...

    13_Java面向对象_第5天(static、final、匿名对象、内部类、包、修饰符、代码块)_讲义

    本讲义主要涵盖了Java中的几个核心概念,包括`static`、`final`、匿名对象、内部类、包、修饰符以及代码块。下面将逐一详细阐述这些知识点。 1. **`static`关键字**: `static`关键字在Java中用于声明类级别的变量...

    java基础中的final和static

    3. **static代码块**:静态初始化块在类加载时执行,用于初始化静态变量。这在需要在类加载时进行复杂初始化的情况下非常有用。 在继承方面,`final`和`static`的关键区别在于: - `final`类不能被继承,所以它...

    Java面向对象的相关信息

    代码块是Java中的一段代码,根据其位置和用途分为局部代码块、构造代码块和静态代码块。局部代码块定义在方法内部,用于限制变量的作用域,通常用于提高代码的组织性和可读性。构造代码块位于类的成员变量区域,目的...

    static和代码块小总结

    通过这个例子,我们可以理解`static`和构造代码块如何协同工作,以实现特定的逻辑,比如统计类的实例数量。这只是一个简单的应用,实际开发中`static`和代码块的使用场景更为广泛,包括但不限于初始化静态数据、控制...

    JAVA内嵌类代码.rar

    局部内嵌类定义在方法、构造器或者块中,其作用域仅限于定义它的代码块。这种类型的内嵌类可以访问其所在代码块的所有局部变量,但只有当这些变量是final或effectively final时,才能在内嵌类中使用。局部内嵌类...

    java的部分基础知识(5)

    代码块分为局部代码块、构造代码块和静态代码块。局部代码块限定了变量的作用域,常用于控制变量生命周期。构造代码块则用于抽取构造方法中的重复代码,确保在创建对象时先于构造方法执行。静态代码块在类加载时执行...

    Java成员变量类变量局部变量的区别共5页.pdf.zip

    - **作用域**:成员变量在整个类中有效,类变量在整个程序中有效,局部变量只在其定义的代码块中有效。 - **生命周期**:成员变量随着对象的创建而创建,随着对象的销毁而销毁;类变量随着类的加载而存在,随着类的...

    Java中static、this、super、final用法

    在Java编程语言中,`static`, `this`, `super`, 和 `final` 是四个非常重要的关键字,它们分别代表不同的概念并具有特殊的用法。 一、`static` `static` 关键字用于声明类级别的成员(变量或方法),这意味着它们...

    java 内部类 局部内部类 匿名类 实例代码

    2. **局部内部类**:局部内部类只存在于某个方法、构造器或者代码块中,它的作用域仅限于该方法、构造器或代码块。下面是一个局部内部类的例子: ```java public class Test1 { public void display() { class ...

    Java开发技术大全(500个源代码).

    staticBlock.java 演示静态块的使用 staticVar.java 定义静态变量 supplyTest.java 对象作为静态成员使用示例 trySwap.java 试图交换两个形参的值 useOnlyTest.java 创建多个对象,演示this的作用 ...

    final关键字和static_用法

    - **局部变量**:仅限于方法、构造器或块内的变量,也可以是`final`的。 示例代码: ```java public class Test3 { private final String S = "final实例变量S"; private final int A = 100; public final int B...

    java中面向对象思维导图

    静态代码块和非静态代码块是Java中两种特殊的代码块。静态代码块随着类的加载而执行,只执行一次;非静态代码块随着对象的创建而执行,每创建一个对象就执行一次。 内部类 内部类是Java中的一种特殊的类,它可以被...

    java, java培训,团队转型技术培训

    - **实例化**:接着执行成员变量的初始化,然后是构造代码块和构造方法。 类的执行顺序总结如下: 1. 静态变量的初始化 2. 静态代码块的执行 3. 成员变量的初始化 4. 构造代码块的执行 5. 构造方法的执行 理解这...

Global site tag (gtag.js) - Google Analytics