zoukankan      html  css  js  c++  java
  • java静态属性初始化注意

    1.非静态类包含静态属性时,初始化:
      如果静态属性被初始化一个非静态对象,系统启动时就会报错!
      (应为初始化静态属性的类还没加载)
      案例:
    public class XXX
    {
       
        private static Config config = Config.getInstance();
     
        private static String port = config.getPort();
       
        。。。。

    这里错误了使用非静态类型去实例化静态变量;导致现象很怪异:会报出spring的配置文件不能实例化其他bean。因为Config的getInstance()不是静态的

    改进方法:系统启动完成后,在第一个要执行的方法中,初始化静态变量

    public void contextInitialized(ServletContextEvent e)
        {
            // 系统的参数初始化
            Config.getInstance().init();
           
            static Config config = Config.getInstance();
     
            static String port = config.getPort();

    总结:凡是涉及到静态变量的初始化(使用类赋初始值),最好在系统启动完成后,在第一个要执行的方法中进行初始化。

  • 相关阅读:
    倍增
    「BZOJ 2152」聪聪可可
    「POJ 1741」Tree
    点分治
    高斯消元
    网络流24题之餐巾计划问题
    网络流24题之骑士共存问题
    网络流24题之方格取数问题
    网络流24题之负载平衡问题
    网络流24题之分配问题
  • 原文地址:https://www.cnblogs.com/qqzy168/p/3135372.html
Copyright © 2011-2022 走看看