[Java]变量及其初始化 与 类对象的初始化
目录
1 变量
1.1 变量的【定义】

1.2 变量的【作用域】

1.3 变量的【初始值】

1.4 补充:缓存变量

1.5 变量的【分类】与【未初始化情况】

2 类对象
2.1 类对象的初始化/构造过程
- 1 【对象】的初始化流程

- 2 实验
class Base{
static { System.out.println("[Base:static area]"); }//step1
{ System.out.println("Base:instance area"); }//step3
Base(){ System.out.println("<Base:constructor>"); }//step4
}
public class Create extends Base{
static { System.out.println("[Create:static area]"); }//step2
{ System.out.println("Create:instance area"); }//step5
Create(){//step6
// super();//默认:首先调用super()
System.out.println("<Create:constructor>");
}
public static void main(String args[]){ Create create = new Create(); }
}
//Output
[Base:static area]
[Create:static area]
Base:instance area
<Base:constructor>
Create:instance area
<Create:constructor>
- 3 360公司2020春招技术C卷试题
(题目小有改动)
class Clazz {
public static int x;
public boolean z;
public static String printX(Clazz clazz) { return "x:" + clazz.x; }
public static String printZ(Clazz clazz){ return "z:" + clazz.z; }
}
public class Singleton {
private static Singleton singleton = new Singleton();
public int counter0;//[值域/类的属性 →基本类型变量] 默认 初始化为0
public static int counter1;//[值域/类的属性] 默认 初始化为0
public static int counter2 = 0;//[值域/类的属性]
public Clazz clazz;//[值域/类的属性 → 引用类型变量]
private Singleton() {
int x;//[局部变量]
// System.out.println(x);//局部变量未初始化 ∴编译时报错 [局部变量]
System.out.println(Clazz.printX(clazz));//x:0 /[值域/类的属性 → 引用类型变量 de 静态属性]
// System.out.println(Clazz.printZ(clazz));//运行时报错 (ExceptionInInitializerError) [值域/类的属性 → 引用类型变量 de 非静态属性]
counter0++;
counter1++;
counter2++;
}
public static Singleton getInstance(){ return singleton; }
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();
System.out.println(singleton.counter0);//1
System.out.println(Singleton.counter1);//1
System.out.println(Singleton.counter2);//0
}
}
x:0
1
1
0

本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen/p/12586027.html
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen/p/12586027.html
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2018-03-28 团队协作小结