零零碎碎的java知识:static属性、普通属性、static代码块、普通代码块、构造函数
2024-10-01 18:14:44
本文中结论仅经本机测试,不保证在别的环境下成立。如果有什么不成立的地方务必告诉我_(:_」∠)_
java的内存是动态分配的,其机制和c/c++相当不一样……emmm在此不表。
static:
·static属性:每个类只分配一次内存,构造(new)类的对象、调用类的static方法、调用类的static属性时分配内存。
·static代码块:每个类只执行一次,构造(new)类的对象、调用类的static方法、调用类的static属性时(对,和static属性条件一样)时执行。
·在上述条件下,按照在类中书写顺序依次执行代码块中代码/为属性分配内存。
普通:
·普通属性:构造(new)类的对象时分配内存。
·普通代码块:构造(new)类的对象时按照类中代码块的书写顺序执行。
第一次构造(new)类的对象时,各活动执行顺序为:先static,后普通,最后构造函数。
其实不用知道得这么细致的……只是习惯性地好奇了一下。
测试代码(无视丑陋的格式吧):
class Hello{
static int i = 0; Hello(){
System.out.println("hello " + (++i));
}
} class HelloWrapper{
{
System.out.println("block 1");
}
static {
System.out.println("static block 1");
}
static Hello h = new Hello();
private Hello h2 = new Hello();
static {
System.out.println("static block 2");
}
HelloWrapper(){
System.out.println("construct");
}
{
System.out.println("block 2");
}
} public class Test { public static void main(String[] args) {
HelloWrapper hw = new HelloWrapper();
}
}
输出:
static block
hello
static block
block
hello
block
construct
最新文章
- OpenCV学习笔记——OpenCV安装
- 深入理解PHP内核(五)函数的内部结构
- ACM: Mr. Kitayuta's Colorful Graph-并查集-解题报
- dataserver test code
- uv纹理坐标设定与贴图规则
- Office2016 转换零售版为VOL版
- 删除顺序链表中重复的数 (一) leecode
- JQ 操作样式,背景切换
- ECMAScript版本号总结
- 从C++ int类型的变量范围谈起
- angular添加,查找与全部删除
- NOIP2017衢二中旅游记Day 1
- Spark1.0.0 源码编译和部署包生成
- svn 的truck、tag、 merge
- 线程 ID
- JQ04
- cdnbest如何在站点里开启强制缓存
- 你不能阻止DOM
- delphi内存映射 与 映射数据获取
- JFinal Web开发学习(七)使用layUI美化的登录功能
热门文章
- Linux下Python3.5使用pyqt5.11报错 ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtCore.so: undefined symbol: PySlice_AdjustIndices 解决方法
- Java数组总结
- Redis中算法之——Raft算法
- MySQL 的数据库、表基本操作
- windows下安装node环境,以及grunt试水笔记
- 【转】HttpWebRequest 保持session
- 启停无线网卡bat脚本
- php操作Excel
- Mysql插入Emoji表情出错
- 如何制作Win10系统U盘安装镜像