Java学习之代码块(静态,构造代码块,构造方法)执行顺序
2024-10-15 10:39:50
静态代码块 static{ 代码 } 随着类的加载而加载,随类的消失而消失,存在于类中,方法外,最先执行,且只加载1次,可用来加载驱动及初始化对象属性.
构造代码块 { } 也存在于类中,方法外,由多个构造方法中相同的代码存放到一个代码块中调用执行,由于构造方法执行.
具体执行顺序参考下面代码.
例:
public class Demo4 {
static{
System.out.println("Demo静态代码块执行了");
}
{
System.out.println("Demo构造代码块执行了");
}
public Demo4(){
System.out.println("Demo构造方法执行了");
}
public static void main(String[] rgs){
new Demo4();
}
}
运行结果为:
Demo静态代码块执行了
Demo构造代码块执行了
Demo构造方法执行了
例2:
第一个类Demo4:
public class Demo4 {
static{
System.out.println("Demo静态代码块执行了");
}
{
System.out.println("Demo构造代码块执行了");
}
public Demo4(){
System.out.println("Demo构造方法执行了");
}
public static void main(String[] rgs){
new Demo5();
new Demo4();
}
}
public class Demo5 {
String name = "王五";
static{
System.out.println("Demo5静态代码块执行了");
Demo5 ps = new Demo5();
System.out.println(ps.name); }
{
System.out.println("Demo5构造代码块执行了");
}
public Demo5(){
System.out.println("Demo5构造方法执行了");
}
}
第二个类Demo5
执行顺序为:
Demo静态代码块执行了
Demo5静态代码块执行了
Demo5构造代码块执行了
Demo5构造方法执行了
王五
Demo5构造代码块执行了
Demo5构造方法执行了
Demo构造代码块执行了
Demo构造方法执行了
如图所示,图中将Demo改成了Demo4
注:认真思考,总结,万变不离其中.
最新文章
- c#取得应用程序根目录
- 简述TCP连接的建立与释放(三次握手、四次挥手)
- 多线程相关------临界区CriticalSection
- Spring Rabbitmq HelloWorld实例
- Ehcache 缓存使用
- 【转】Selenium 面试题总结(乙醇Blog记录的面试题)
- C++ 内存的分配方式 (摘选自网络)
- webform:分页组合查询
- Linux下如何设置和查看环境变量
- logback详细配置(三)
- Python之路【第二篇】:Python基础(一)
- HDU 5622 KK's Chemical DP
- Android把图片保存到SQLite中
- HibernateSessionFactory类的主要方法
- ACCP8.0 HTML标签
- Linux环境下部署开源版“禅道”方法
- sqlserver使用存储过程跟踪SQL
- windows server 2012 流媒体服务器搭建(直播与点播)
- [c/c++] programming之路(6)、ASCII码,数据类型、随机数、字符转换及拼接等
- day2 大纲笔记