静态代码块,构造代码块和构造函数的区别
来源:互联网 发布:肌研洁面泡沫知乎 编辑:程序博客网 时间:2024/05/24 07:31
首先,静态代码块,构造代码块,和构造函数都存在于一个类中,只不过,他们执行的先后顺序和执行的次数不同。
静态代码块,只执行一次,比如,当你想要创建10个对象时,当创建第一个对象时,执行一次,然后当你继续创建剩余的对象时,这个静态代码块就不会被执行了。
而构造代码块与构造函数的异同点: 相同点:每创建一个对象,构造代码块和构造函数都执行一次,不同点:执行的顺序不同,先执行构造代码块,再执行构造方法。
首先,用代码展示静态代码块的执行过程
class StaticCode
{
static
{
System.out.println("我是静态代码块");
}
void del()
{
System.out.println("执行");
}
}
class Demo{
public static void main(String[] args)
{
for(int i=0;i<=1;i++)
new StaticCode().del();
}
}
输出结果:
我是静态代码块
执行
执行
构造代码块与构造函数执行过程:
class ant{
{
System.out.println("我是构造代码块1");
}
ant()
{
run();
}
void run()
{
System.out.println("我是构造函数");
}
{
System.out.println("我是构造代码块2");
}
}
public class asd {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0;i<1;i++)
new ant();
}
}
执行结果:
我是构造代码块1
我是构造代码块2
我是构造函数
下面是个人的理解:
看完这三者的区别,估计又会有疑问,原因是什么,这里做一个比较生动的比喻,一个类,就好比一些类似对象的抽象集合。
1 一个main方法就是一个宝藏
2 一个人就是一个对象
比如,有这么一群人一起去找宝藏,当一个人找到通往宝藏的大门时,打开就进去了(这里就相当于一个静态代码块),而后面的人就不需要打开宝藏的门了,因为门开了,每进去一个就相当于创建一个对象。
- Java构造函数、构造代码块和静态代码块的区别和调用时间
- 静态代码块,构造代码块和构造函数的区别
- 静态代码块和构造代码块的区别
- 静态代码块 构造代码块 构造函数 区别
- 静态代码块,普通代码块,同步代码块,构造代码块和构造函数解
- 黑马程序员-静态代码块、构造代码块、构造函数的区别、
- 面向对象及构造代码块、静态代码块、构造函数的区别
- 黑马程序员——构造函数,构造代码块,静态代码块的区别
- 静态代码块、构造代码块与构造函数的区别
- 父类、静态构造代码块、构造代码块、构造函数
- 静态代码块和构造代码块
- 静态代码块和构造代码块
- Java中普通代码块,构造代码块,构造函数,静态代码块区别
- java静态代码块,代码块和构造函数
- JAVA 静态代码块和构造函数
- Java中静态代码块、构造代码块的区别
- 【26】静态代码块、构造代码块和构造函数的特点及加载顺序
- 静态代码块 构造代码块 构造函数 的用法和执行顺序
- LeetCode-11 Container With Most Water
- GCD·我所理解的扩展欧几里得
- ubuntu强制关机造成grub损坏,开机黑屏进入grub自负界面修复
- captive portal
- 尺取法
- 静态代码块,构造代码块和构造函数的区别
- Log4j 2.x使用注意事项
- python连接mongodb并操作
- 设计模式--代理模式
- opencv轮廓高级应用(轮廓匹配,几何直方图)
- a declaration here must declare aparameter
- Java的TreeMap统计单词数量
- loadrunner的术语,分析等。破解
- 同时共用MOB公司的shareSDK和SMSSDK的冲突问题