zoukankan      html  css  js  c++  java
  • Java中的静态块(static{})

    静态块(static{})

    (1) static关键字还有一个比较关键的作用,用来形成静态代码块(static{} 即static块 )以优化程序性能。

    (2) static块可以置于类中的任何地方,类中可以有多个static块。

    (3) 在类初次被加载的时候执行且仅会被执行一次(这是优化性能的原因!!!),会按照static块的顺序来执行每个static块,一般用来初始化静态变量和调用静态方法。

    下面通过两段代码,说明 static{} 为什么能优化程序性能。

    实例

    /**
     * 每次调用isBornBoomer的时候
     * 都会生成startDate和birthDate两个对象,造成了空间浪费
     */
    class Person{
        private Date birthDate;
         
        public Person(Date birthDate) {
            this.birthDate = birthDate;
        }
         
        boolean isBornBoomer() {
            Date startDate = Date.valueOf("1997");
            Date endDate = Date.valueOf("2019");
            return birthDate.compareTo(startDate)>=0 && birthDate.compareTo(endDate) < 0;
        }
    }
    
    /**
     * 这里使用了static块
     * 只需要进行一次的初始化操作
     * 节省内存空间,优化性能
     */
    class Person{
        private Date birthDate;
        private static Date startDate,endDate;
     
        static{
            startDate = Date.valueOf("1997");
            endDate = Date.valueOf("2019");
        }
         
        public Person(Date birthDate) {
            this.birthDate = birthDate;
        }
         
        boolean isBornBoomer() {
            return birthDate.compareTo(startDate)>=0 && birthDate.compareTo(endDate) < 0;
        }
    }
    

    注意:强调一下static块是会按照顺序执行,与main入口函数无关。

    参考

    [1] https://blog.csdn.net/qq_41647999/article/details/87966487

    Top
    收藏
    关注
    评论
  • 相关阅读:
    Interesting Finds: 2008.06.12
    8月19号
    8月22号
    8月20号
    8月21号
    第七章 Nginx配置虚拟主机
    第六章 Nginx配置文件详解
    第五章 Nginx搭建上传作业平台
    sqlserver2005提供的xml数据类型操作xml串
    事必躬亲利与弊
  • 原文地址:https://www.cnblogs.com/JasonCeng/p/15532604.html
Copyright © 2011-2022 走看看