本文中结论仅经本机测试,不保证在别的环境下成立。如果有什么不成立的地方务必告诉我_(:_」∠)_

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

最新文章

  1. OpenCV学习笔记——OpenCV安装
  2. 深入理解PHP内核(五)函数的内部结构
  3. ACM: Mr. Kitayuta's Colorful Graph-并查集-解题报
  4. dataserver test code
  5. uv纹理坐标设定与贴图规则
  6. Office2016 转换零售版为VOL版
  7. 删除顺序链表中重复的数 (一) leecode
  8. JQ 操作样式,背景切换
  9. ECMAScript版本号总结
  10. 从C++ int类型的变量范围谈起
  11. angular添加,查找与全部删除
  12. NOIP2017衢二中旅游记Day 1
  13. Spark1.0.0 源码编译和部署包生成
  14. svn 的truck、tag、 merge
  15. 线程 ID
  16. JQ04
  17. cdnbest如何在站点里开启强制缓存
  18. 你不能阻止DOM
  19. delphi内存映射 与 映射数据获取
  20. JFinal Web开发学习(七)使用layUI美化的登录功能

热门文章

  1. Linux下Python3.5使用pyqt5.11报错 ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtCore.so: undefined symbol: PySlice_AdjustIndices 解决方法
  2. Java数组总结
  3. Redis中算法之——Raft算法
  4. MySQL 的数据库、表基本操作
  5. windows下安装node环境,以及grunt试水笔记
  6. 【转】HttpWebRequest 保持session
  7. 启停无线网卡bat脚本
  8. php操作Excel
  9. Mysql插入Emoji表情出错
  10. 如何制作Win10系统U盘安装镜像