java - java中在静态 block 内和静态 block 外声明的静态变量之间的区别

标签 java static

<分区>

  1. 在静态 block 外声明的静态变量和在静态 block 内声明的变量有什么区别? (考虑代码段)

一段代码如下:

class A{

    static int i = 10;      //line 1

    static { int i = 20;}   //line 2

    public static void main(String[] args) {
        System.out.println(A.i); //output is 10
    }
}

2.如何在第2行访问变量'i'?

最佳答案

 static int i = 10;      //line 1  

此处变量 i 的范围在类级别。您可以在类内的任何位置访问它。

static { int i = 20;}   //line 2

此处变量 i 的范围仅限于静态 block (如循环变量)。您不能从外部 block 访问它。

关于java - java中在静态 block 内和静态 block 外声明的静态变量之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18175168/

相关文章:

Java TCP IP 连接 - 服务器上没有任何显示

java - 计算鼠标悬停时的工具提示而不是加载表格

java - 无法单击 Selenium 中表格的元素

java - 重构包含静态方法的旧类

java - 为什么这段代码有效?添加 static 关键字的任务

PHP:持久变量值

java - 为什么Spring MVC可以实例化抽象类?

Java静态方法+类

c# - 静态属性的默认值

java - 使用 JavaScript 加密字符串并从服务器端解密 (Java)