Java代码执行顺序
1 package com.cn.donleo.test; 2 3 /** 4 * @author liangd 5 * date 2020-10-20 15:23 6 * code 代码执行顺序测试 7 */ 8 public class TestCodeSequence { 9 /* 10 * 静态代码块,类变量(静态变量),可以向前引用(即引用,再定义) 11 */ 12 static { 13 username = "liangd1234"; 14 System.out.println("执行静态代码块"); 15 } 16 17 /* 18 * 类变量(静态变量),再类初始化之前初始化,无论类的实例被创建多少个,凡是被static修饰符修饰的, 19 * 都将按照顺序执行,所以输出的是liangd,而不是liangd1234 20 */ 21 22 /** 23 * 类变量(静态变量) 24 */ 25 public static String username = "liangd"; 26 27 /** 28 * 实例变量(非静态变量),定义时被赋予初始值,会比在构造器赋予值更早执行 29 */ 30 private String phone = "18090287931"; 31 32 /* 33 非静态代码块 实际上,非静态代码块在类初始化创建实例时,将会被提取到类的构造器中, 34 但是,非静态代码块会比构造器中的代码块优先被执行, 35 所以phone输出的值是构造器中定义的值,不是非静态代码块的值,更不是初始值。 36 */ 37 { 38 phone = "liangd18090287931"; 39 System.out.println("执行代码块"); 40 } 41 42 /** 43 * 构造方法 44 */ 45 private TestCodeSequence() { 46 phone = "15982600186"; 47 System.out.println("执行构造方法"); 48 } 49 50 public static void main(String[] args) { 51 TestCodeSequence testCodeSequence = new TestCodeSequence(); 52 System.out.println(username); 53 System.out.println(testCodeSequence.phone); 54 } 55 56 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix