1. static代码块也叫静态代码块,作用就是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次。如果是普通代码块,每创建一个对象,就执行。

2. 类什么时候被加载?【重要背!】

(1)创建对象实例时(new)

(2)创建子类对象实例,父类也会被加载

(3)使用类的静态成员时(静态属性、静态方法)

3. 普通的代码块,在创建对象实例时,会被隐式的调用。被创建一次,就会调用一次。如果只是使用类的静态成员时,普通代码块并不会执行。(和类的加载没关系,这点要和静态代码块区分开来!)

前面3点小结:static代码块是类加载时,执行,只会执行一次。普通代码块是在创建对象时调用的,创建一次,调用一次。

4. 【重点、难点】创建一个对象时,在一个类 调用的顺序是:

(1)调用静态代码块和静态属性初始化(注意:静态代码块和静态属性初始化调用的优先级一样,如果有多个静态代码块和多个静态属性初始化,则按它们定义的顺序调用)

(2)调用普通代码块和普通属性初始化(注意:普通代码块和普通属性初始化调用的优先级一样,如果有多个普通代码块和多个普通属性初始化,则按它们定义的顺序调用)

(3)调用构造方法。

5. 构造方法(构造器)的最前面其实隐含了super()和调用普通代码块,静态相关的代码块,属性初始化,在类加载时,就执行完毕,因此是优先于 构造器和普通代码块执行的。以下举例:

6. 【面试题】我们看一下创建一个子类时(继承关系),它们的静态代码,静态属性初始化,普通代码块,普通属性初始化,构造方法的调用顺序如下:(如下图所示)

(1)父类的静态代码块和静态属性(优先级一样,按定义顺序执行)

(2)子类的静态代码块和静态属性(优先级一样,按定义顺序执行)

(3)父类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)

(4)父类的构造方法

(5)子类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)

(6)子类的构造方法

7. 静态代码块只能直接调用静态成员(静态属性和静态方法),普通代码块可以调用任意成员。

【代码块】代码块使用注意事项和细节讨论相关推荐

  1. switch注意事项和细节讨论

    1.表达式数据类型,应和case后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int 2.switch(表达式)中表达式的返回值必须是:(byte, short, ...

  2. 函数注意事项和细节讨论

    //如果希望函数内的变量能修改函数外的变量,可以传入变量的地址&, //函数内以指针的方式操作变量.从效果上看类似引用(即传递指针)  void f3(int *p) {     (*p)++ ...

  3. 块代码编程---开始使用块代码

    http://blog.csdn.net/nicktang/article/details/6906352 本章的几节使用例子代码来开始块代码的学习. 定义和使用块代码 插入符^有两个作用,一个是声明 ...

  4. Eclipse ADT 使用空格替代Tab键缩进整块整块代码

    已经设置单行缩进使用space替代Tab,但是使用Tab缩进整块代码,Eclipse还是使用Tab,真是抓狂,这个可是个很常用的功能啊,特别是在你ctr-c, ctr-v的时候. 忍受了很久,今天把所 ...

  5. typora修改主题字体、代码块字体、行内块代码字体大小、引用块字体大小、代码块背景颜色、文章可写区域宽度以及修改教程

    目录 0. 授人以渔 1.主题字体 2.代码块字体大小 3.引用块字体大小 4.代码块背景颜色 ①pink老师的样式代码 ②自己搜到的样式 5.块代码字体大小 6.修改文章可写区域的宽度 0. 授人以 ...

  6. java中构造函数-静态代码块-代码块的执行顺序

    面试题中,经常遇到这种题,我们只要记住一个原则,就不会出错. 三者的执行顺序:静态代码块>代码块>构造函数 package com.lbl.constructor;/*** Created ...

  7. 为网站代码块pre标签增加一个复制代码按钮代码

    写文章的时候,作为一名专业的码农,经常会在文章中粘贴一些代码.有的时候代码块比较长,在后期使用中需要复制这段代码就比较麻烦 参考其他比较专业的博客系统,都在代码块上有一个复制代码的按钮.用来快速复制整 ...

  8. Typora 更改编辑器、源代码模式的宽度、块代码的颜色

    文章目录 1.设置 编辑器的源代码模式 的宽度 2.自定义样式 2.1.设置 编辑器(也是主题) 的宽度 2.2.修改块代码的颜色,不是代码块的 2.3.引用样式 blockquote 2.4 标题左 ...

  9. Typora 修改块代码的颜色

    修改块代码的颜色 我现在块代码的颜色: 打开主题文件夹 设置 -> 偏好设置 -> 打开主题文件夹 打开github.css .md-fences, code, tt {border: 1 ...

最新文章

  1. Atitit.论垃圾文件的识别与清理 文档类型垃圾文件 与api概要设计pa6.doc
  2. 史上最全的技术手册整理总结,编程小白都从这篇文章迅速成为大牛
  3. 54失败是成功之母二
  4. git checkout 单个文件_IntelliJ IDEA下的使用 Git
  5. less编译工具koala(考拉)和rem的使用
  6. c语言添加收支情况,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
  7. centos linux asp,CentOS 7.4 下 如何部署 AspNetCore 结合 consul
  8. [转载] python自定义异常类型和raise抛出异常
  9. 三相桥式全控整流电路simulink仿真_维修电工高级仿真-教学软件
  10. [RK3399][Android7.1] 移植笔记 --- 音频Codec RT5640添加
  11. PPT实现单页点名的方式
  12. 屏幕小于6英寸的手机_6寸手机好不好用 手机屏幕尺寸多大合适
  13. linux命令ftps,Linux下FTP服务器应用之FTPS(FTP+SSL)
  14. eclipse设置背景色为豆沙绿
  15. 显示文件内容时显示行号命令nl
  16. 【论文笔记】 Leverage Lexical Knowledge Base for Chinese NER via Collborative Graph Network
  17. echarts合并地图,把中国各个省份分成华北,东北,华东,华中,华南,西南,西北七个大区...
  18. iOS开发-XIB、Storyboard操作小技巧
  19. android飞机大战功能,安卓飞机大战(二) SurfaceView实现自制背景
  20. 技巧/诀窍:用 .NET 3.5 创建 ToJSON() 扩展方法 (木野狐译)

热门文章

  1. WM_USER和WM_APP[转]
  2. Properties类详细解析
  3. Waiting for table metadata lock
  4. webpack----常规配置
  5. python数字图像处理(四) 频率域滤波
  6. HTML和XHTML的区别
  7. 教你如何用手机查看哪些人在蹭你家的WIFI,然后将他们屏蔽!
  8. Spring MVC笔记 添加错误页面
  9. View结合组策略进行应用程序下发
  10. _Blank主页——个人浏览器主页定制