博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java_静态代码块
阅读量:3672 次
发布时间:2019-05-21

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

静态代码块:

我们知道构造方法是给对象进行初始化的,对象一创立就会被实例化,在构造方法中有一个构造代码块和静态代码块,两种都是给对象进行初始化的。

但是有什么区别了?

我们知道构造代码块在执行的时候优先于构造函数和其他方法的执行

运行结果如下:

    

来看看静态代码块是如何运行的:

运行结果如下:

由此可知静态代码块比构造代码块的优先级更高

这是为什么了?因为我们在运行的时候Test类被加载了,当碰到static的时候就会被执行,构造代码之所以没有被执行是因为我们启动java虚拟机把Test.class文件加载到内存中,这里就会执行静态代码块,而创建对象是后面执行的所以比构造代码块先执行,简单来说就是随着类的加载而加载,如:

我并没有创建对象而是调用静态方法,运行结果如下:

因为我们要调用Test里面的方法所以也要加载Test类,所以静态代码块执行了,如果下列代码你能猜出结果说明你已经很熟悉静态代码块和构造代码块了

运行结果:

       

注意: 静态代码块只会执行一次因为是随着类的加载而加载而不是创建对象就会执行的,而构造代块是对象的一旦创建就会执行一次的, 

 运行结果:

你可能感兴趣的文章
Python算法和数据结构(一)——collections模块
查看>>
剑指offer(4)——二维数组查找(python 实现)
查看>>
MySQL的安装(Windows)
查看>>
你真的知道a,b = b,a是怎么实现的吗?(python交换逻辑)
查看>>
剑指offer(3)——寻找数组中的重复数
查看>>
python中的lambda匿名函数
查看>>
我最欣赏的男人
查看>>
「SQL数据分析系列」12. 事务
查看>>
c语言数据结构共享堆栈
查看>>
数据库学习笔记之数据库系统的概述
查看>>
用户设计体验概述
查看>>
python抢红包列表对数据操作的练习题
查看>>
PATpython练习题帅到没朋友
查看>>
python练习题字符串的美化使用二维列表处理
查看>>
数据库基本概念和体系结构
查看>>
数据库关系模型基本概念
查看>>
SQL创建数据库表CREATE TABLE table_name( );
查看>>
SQL使用as起别名,既什么又什么
查看>>
SQL查询时使用DISTINCT去掉重复
查看>>
SQL使用ORDER BY(DESC)关键字根据列名排序,默认为升序
查看>>