博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java静态块学习
阅读量:6437 次
发布时间:2019-06-23

本文共 726 字,大约阅读时间需要 2 分钟。

hot3.png

静态块是类里面的构造器,对象有构造器那么类也有构造器,类里面的构造器叫做初始化方法。也就是new一个对象他会经过一个构造器。加载一个类,也有被初始化的一片代码,这个就称之为静态块。一个类里面可以有很多个静态块,静态块的运行过程是,如果一个类里面有多个静态块,那么他是从上到下运行的。如图7.5所示:

  

 

  图7.5

  他是从上到下的运行,但是需要哪一个的时候他就会被加载实例化,但静态块还是从上到下执行。里面可以包含很多代码 ,但是静态块不能被实例的成员访问。如图7.51所示:

  

 
 图7.51

  静态块是类被加载的时候就会被创建,静态块会被4种方式加载。第一种new对象静态块会初始化激发类被加载。如图7.52所示:

  

 

  图7.52

  第二种访问静态的属性,也会激发类被加载。如图7.53所示:

  

 

  图7.53

  第三种调用里面的静态方法,也会触使类加载起来。如图7.54所示:

  

  图7.54

  第四种用Class.forName(“Test”);可以通过字符串加载起来,这种方式叫做动态加载,也可以触使一个类加载起来。如图7.55所示:

  图7.55

  常量成员不能被初始化加载如图7.56所示:

  图7.56

  打印的是10,但是静态块的东西没有打印出来,那就说明这个类没有被加载起来,因为他是一个静态的常量,静态的常量不属于类的内存,他没有分配在这个类内存里面,他不需要初始化这个类。静态的属性为什么能,因为静态的属性内存必须要分配在这个类里面,所以他会被初始化加载,所以图中的静态块不会被加载起来。

转载于:https://my.oschina.net/u/3016358/blog/782085

你可能感兴趣的文章
【Java】Float计算不准确
查看>>
mybatis在xml文件中处理大于号小于号的方法
查看>>
Codeforces Codeforces Round #319 (Div. 2) A. Multiplication Table 水题
查看>>
各大浏览器CSS Hack收集
查看>>
再谈 $* 和 $@ 在 Bash 中的表现
查看>>
Apache Commons工具集简介
查看>>
【翻译】Nginx的反向代理
查看>>
htm、html、shtml网页区别
查看>>
SpringCloud学习笔记:服务注册与发现Eureka(2)
查看>>
学习新 api 的思考过程 4.18
查看>>
想要设计自己的微服务?看这篇文章就对了
查看>>
一起撸个朋友圈吧(step5) - 控件篇【评论控件优化】
查看>>
一起撸个朋友圈吧 图片浏览(上)【图片点击前景色】
查看>>
[译] 原生 JavaScript 值得学习吗?答案是肯定的
查看>>
29岁了还一事无成是人生的常态?
查看>>
gRPC-rs:从 C 到 Rust
查看>>
Mysql-高性能索引
查看>>
chrome浏览器最小字号解决方案
查看>>
富文本编译器UEditor+SSM的使用
查看>>
Java EE之旅02 CSS基础
查看>>