`
leeray3018
  • 浏览: 558 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

静态变量和静态块这样使用有什么后果

 
阅读更多
在类中我这样使用该类不变的几个参数,因为考虑到该类可能产生多个实例,为了节省
内存而使用了静态常量和静态块来对该静态常量进行初始化:
public class exampleA {
// 需要设置权限按钮的函数列表
final static List methodsList = new ArrayList();
// 初始化需要设置按钮权限的函数列表
static {
// 获取处理流程页面
methodsList.add(new String("AssignedDetail"));
// 修改
methodsList.add(new String("forupdate"));
methodsList.add(new String("update"));
// 分配
methodsList.add(new String("getAssignedJsp"));
methodsList.add(new String("updateassigned"));
// 处理
methodsList.add(new String("fordeal"));
methodsList.add(new String("deal"));
// 解决
methodsList.add(new String("resolved"));
// 关闭
methodsList.add(new String("getClosedJsp"));
methodsList.add(new String("closedForAppraisalAndinsertKn"));
methodsList.add(new String("closedAndinsertKn"));
methodsList.add(new String("closed"));
// 升级
methodsList.add(new String("escalateToManager"));
      }
             ......
}

我的同事告诉我,这样使用有可能造成该变量或者成员常驻内存,不如使用非静态的,这样JAVA的垃圾回收器会随时回收使用过的内存,声明成静态的,就不能释放了
分享到:
评论
2 楼 找不到服务器 2009-03-11  
应该没有什么影响,你的数据不多,就几个string而已
但是注意的是不应该往里面添加其他数据,如User对象。。。这样会导致添加的其对象不能被回收。
所以最好是用泛型

另外,如果真的在意那么点空间,可以卸载exampleA 类。就可以回收内存了
1 楼 mazzystar 2009-03-11  
确实不能释放了,不过数据又不多应该没事,我感觉你用的没错

相关推荐

    Java中的静态变量静态方法静态块与静态类.docx

    Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着紧密的关系。下面将对这四个概念进行详细的介绍。 一、静态变量...

    static静态变量使用@Value注入方式.md

    通过上述分析和示例,我们可以看到,在Spring框架中,虽然不能直接使用`@Value`注解为静态变量注入值,但可以通过定义一个非静态方法并使用`@Value`注解来间接实现这一目标。这种方法不仅避免了潜在的警告和错误,还...

    static 静态变量加载

    statilocal java 静态变量和静态块加载顺序,静态变量和同名静态变量块加载的顺序。

    全局变量、局部变量、静态变量即内存管理

    3. 全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后有系统释放。 4. 文字常量...

    静态全局变量,静态局部变量,全局变量,局部变量

    - **静态变量**: 在程序多次调用过程中保持原有的赋值状态不变。 - **变量作用范围**: 通过`static`关键字限定变量的可见性范围。 - **静态存储方式**: 改变变量的存储位置,使之在整个程序运行期间都存在。 - **...

    CC++中的静态全局变量,静态局部变量,全局变量,局部变量的区别

    - 设计和使用访问静态变量的函数时,需考虑重入问题,因为静态变量都位于静态数据存储区,全局可见。 - 需要一个可重入的函数时,应避免在函数中使用`static`变量,以免出现内部存储器问题。 - 当函数返回值为指针...

    什么是静态(static)什么是静态方法,静态变量,静态块

    在Java编程语言中,"静态"(static)关键字是一个非常重要的概念,它具有多种用途,包括定义静态变量、静态方法、静态初始化块以及静态类。理解这些概念对于编写高效的Java代码至关重要。 首先,我们来解释静态变量...

    局部变量、全局变量、堆、堆栈、静态和全局

    静态变量分为静态局部变量和静态全局变量。静态局部变量只在函数首次调用时初始化,之后每次调用函数时,其值会保留,不会被重置。静态全局变量只在定义它的源文件内可见,避免了全局变量的命名冲突,且其生命周期...

    构造函数与静态块的执行顺序

    在探讨继承中子类与父类构造函数及静态块的执行顺序时,我们首先需要理解构造函数和静态块的基本概念及其在Java中的作用。构造函数主要用于初始化对象的状态,而静态块则是在类加载到内存中时执行的一段代码,通常...

    java-静态变量方法块

    在Java编程语言中,静态变量、静态方法、静态代码块以及非静态变量和非静态方法是核心概念,它们对于理解和编写Java程序至关重要。下面将详细解释这些概念,并通过实例程序来阐述它们的使用和内存管理。 首先,静态...

    全局变量、局部变量、静态全局变量、静态局部变量的区别

    1. **作用域**:全局变量和静态全局变量的作用域为整个程序,而局部变量和静态局部变量的作用域仅限于声明它们的函数或块。 2. **生命周期**:全局变量和静态全局变量在整个程序运行期间都存在,而局部变量和非静态...

    Java成员变量局部变量静态变量成员方法全局方法等概念的区

    以下是关于Java成员变量、局部变量、静态变量以及成员方法和全局方法的基本概念和区别的详细阐述。 1. 成员变量(Member Variables): 成员变量是类的一部分,它们定义了对象的状态。它们可以是实例变量(非静态...

    Java中的静态变量、静态方法与静态代码块

     静态变量有两种情况:  ● 静态变量是基本数据类型,这种情况下在类的外部不必创建该类的实例可以直接使用  ● 静态变量是一个引用。这种情况比较特殊,主要问题是由于静态变量是一个对象的引用,那么必须...

    ios-block的局部变量和全局变量和static的静态变量联系.zip

    在iOS开发中,Block、局部变量、全局变量和静态变量(`static`)是编程中常见的概念,它们各自有自己的特点和用途,同时在特定情况下,它们之间也存在一定的联系。让我们详细探讨一下这些知识点。 首先,Block是...

    全局变量、静态全局变量、静态局部变量和局部变量的区别2.pdf

    - **全局变量和静态变量**:如果未手动初始化,则由编译器自动初始化为0。 - **局部变量**:如果不进行初始化,则其值是不确定的,具体取决于编译器的实现细节。 #### 五、示例分析 下面通过一个具体的代码示例来...

    关于Java静态成员变量和静态初始化块等的初始化顺序的详细介绍

    详细介绍了Java的静态成员变量、静态数据块、非静态成员变量和非静态成员变量等初始化顺序

    JAVAStatic静态变量.doc

    Java中的`static`关键字是用来声明静态变量或静态方法的,它是面向对象编程中非常...理解静态变量和方法的使用是成为一名熟练的Java开发者的关键。在编写代码时,明智地使用`static`可以帮助提高程序的效率和可维护性。

    JS脚本静态变量调用方法2

    在给定的场景中,我们有两个脚本,text1.js 和 text2.js,它们之间需要通过静态变量进行通信。 首先,让我们深入理解如何在JavaScript中声明和使用静态变量。在Unity3D中,你可以使用`static`关键字来定义一个静态...

Global site tag (gtag.js) - Google Analytics