博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础知识
阅读量:4341 次
发布时间:2019-06-07

本文共 1833 字,大约阅读时间需要 6 分钟。

 

1、类中的静态语句块只能访问到在块之前定义的变量,定义在块之后的变量,可以在块中进行赋值,但是不能访问。如下示例:

1 package com.cfang.loadClassTest; 2  3 public class TestClsStatic { 4  5     //public static int i = 123;  //① 6      7     static{ 8         i = 456; 9         System.out.println(i); //Cannot reference a field before it is defined10     }11     12     public static int i = 123; //②13 }

  上述第9行报错“非法向前引用”,可以注释掉所在行,放开行。

2、调用静态字段,只有直接定义这个字段的类才会被初始化,所以通过子类调用父类的静态字段,只会触发父类的初始化而不初始化子类。如下程序示例:

1 package com.cfang.loadClassTest; 2  3 public class TestLoadClass { 4  5     public static void main(String[] args) { 6         //通过子类去调用父类的静态字段,只会触发父类初始化,而子类本身并不初始化 7         System.out.println(SubClass.value); 8          9         //对自身常量池的引用,不会触发初始化操作10 //        System.out.println(SubClass.value1);11         12         //不会触发初始化操作13 //        SuperClass[] arr = new SuperClass[10];14 //        System.out.println(arr.toString());15         16 //        SuperClass cls = new SuperClass();17         18 //        SuperClass cls = new SubClass();19 //        System.out.println(cls.value3);20     }21 }22 23 class SuperClass{24     static{25         System.out.println("init superClass");26     }27     public static int value = 123;28     public static final int value1 = 456;29     public int value3 = 111;30 }31 32 class SubClass extends SuperClass{33     static{34         System.out.println("init subClass");35     }36 }

  输出结果为:

init superClass123

 

3、类成员变量会初始化值,而局部变量必须进行初始化。如下:

1 package com.cfang.loadClassTest; 2  3 public class TestInit { 4  5     private static String str; 6      7     public static void main(String[] args) { 8         String str2; 9         System.out.println(str); //输出:null10         System.out.println(str2); //编译不通过,报错信息:The local variable str2 may not have been initialized11     }12 }

 

。。。

转载于:https://www.cnblogs.com/eric-fang/p/10385085.html

你可能感兴趣的文章
ASP.NET MVC:通过 FileResult 向 浏览器 发送文件
查看>>
CVE-2010-2883Adobe Reader和Acrobat CoolType.dll栈缓冲区溢出漏洞分析
查看>>
使用正确的姿势跨域
查看>>
AccountManager教程
查看>>
Android学习笔记(十一)——从意图返回结果
查看>>
算法导论笔记(四)算法分析常用符号
查看>>
ultraedit激活
查看>>
总结(6)--- python基础知识点小结(细全)
查看>>
亿级曝光品牌视频的幕后设定
查看>>
ARPA
查看>>
JSP开发模式
查看>>
我的Android进阶之旅------>Android嵌入图像InsetDrawable的使用方法
查看>>
Detours信息泄漏漏洞
查看>>
win32使用拖放文件
查看>>
Android 动态显示和隐藏软键盘
查看>>
raid5什么意思?怎样做raid5?raid5 几块硬盘?
查看>>
【转】how can i build fast
查看>>
null?对象?异常?到底应该如何返回错误信息
查看>>
django登录验证码操作
查看>>
(简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
查看>>