java static关键字习题※
2021/4/22 20:25:29
本文主要是介绍java static关键字习题※,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目:
class Text { //方法区 public static int k = 0; public static Text t1 = new Text("t1"); public static Text t2 = new Text("t2"); public static int i = print("i"); public static int n = 99; //堆 public int j = print("j"); static { print("静态块"); } public Text(String str) { System.out.println((++k) + ":" + str + " i=" + i + " n=" + n); ++i;//1 2 3 4 5 6 7 8 ++n;//1 2 3 4 99 100 101 }//k 1 2 3 4 5 6 7 public static int print(String str) { System.out.println((++k) + ":" + str + " i=" + i + " n=" + n); ++n;//1 2 3 4 99 100 101 return ++i;//1 2 3 4 5 6 7 8 } public static void main(String args[]) { new Text("init"); } }
答案:
注意(此题坑点):
class AAAA { private int p = 10;//new的时候赋值一次 public AAAA(){ System.out.println(p);//先执行 private int p = 10在执行 System.out.println(p) //结果:10 this.p = 910;//这里在赋值一次 System.out.println(p); //结果:910 } public static void main(String[] args) { new AAAA(); } }
-
如果实例变量赋初始值,会在new对象的时候执行赋值,然后在执行构造方法里的代码!!!
-
static变量还没执行前,使用它,会自动赋该类型默认值
eg.
此题中的public static Text t1 = new Text(“t1”);
new的时候会先执行public int j = print(“j”);在执行 System.out.println((++k) + “:” + str + " i=" + i + " n=" + n);
public static Text t1 = new Text("t1"); public static Text t2 = new Text("t2"); public static int i = print("i");
上面代码在执行中n是从0开始的
public static int n = 99;
下面代码在执行中n从99开始
static { print("静态块"); }
这篇关于java static关键字习题※的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?