美文网首页
@自己 | 那些年困惑的代码块

@自己 | 那些年困惑的代码块

作者: 采风JS | 来源:发表于2017-06-27 23:07 被阅读0次

    代码块是一个独立的数据体,用于实现特定的算法,必须需要运行主体,否则不能单独运行;下面具体来分析代码块中的常见问题;

    一、四种代码块####

    • 普通代码块
      普通代码块必须紧跟在方法名的后面,也必须由方法名具体调用;
    • 同步代码块
      用关键字synchronized修饰,保证同一时间仅有一个线程实现访问;
    • 静态代码块
      用关键字static修饰,用于初始化静态变量 ;
    • 构造代码块
      编译器会将代码块按照它们的顺序插入到所有构造函数的前端,每个构造函数执行时均会调用构造代码;注意构造代码块不是在构造函数之前运行,而是依托构造函数运行;

    二、静态代码块、构造代码块和构造函数的执行顺序####

    public class Code {
        
        private String codeAuthor;
        private String codeStyle;
        private static int codeLines;
        // 用于初始化静态变量
        static{
            codeLines = 111;
            System.out.println("静态代码块初始化");
        }
        
        public Code(){
            System.out.println("无参构造函数"+codeLines);
        }
        
        public Code(String codeStyle){
            this.codeStyle = codeStyle;
            System.out.println("有参构造函数"+codeStyle+codeLines);
        }
        // 用于在构造函数前执行,初始化实例变量
        {
            codeAuthor = "CaiFeng";
            System.out.println("构造代码块"+codeLines);
        }
        
        public static void main(String[] args) {
            Code c = new Code();
            Code c1 = new Code("casual");
        }
    }
    
    // 代码打印结果
    静态代码块初始化
    构造代码块111
    无参构造函数111
    构造代码块111
    有参构造函数casual111
    
    • 静态代码块 > 代码块 > 构造函数

    无数优秀的学长学姐强调基础的重要性,在Java进阶的道路上,砥砺前行。欲知后事如何,且听下回分解。

    相关文章

      网友评论

          本文标题:@自己 | 那些年困惑的代码块

          本文链接:https://www.haomeiwen.com/subject/jtrycxtx.html