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-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略