static 类里的static变量和非static类里static变量生命周期各是多少?

比如在ssh里,定义一个static 类的static变量和一个非static类static变量 它们的生命周期各是多长呢? 是到应用程序结束? 还是用户登陆的时候创建用户登出的时候销毁? 还是由垃圾回收器决定,具体时间不确定?

4个回答

类不能定义为static的。
只有类的成员才可以是static(包括变量和方法)

static成员第一次用的时候创建,之后就一直在了。直道应用程序关闭。

可以有静态类,只是得这样定义(内部静态类)
[code="java"]
public class AA {

/**
 * 
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: Copyright (c) 2011
 * </p>
 * <p>
 * Company: suziwen
 * </p>
 * 
 * @author suziwen
 * @Date 2011-5-10
 * @version:
 */
public static class GG {

}

}[/code]

static可修饰的东西很多,分别有如下一些:

  1. static修饰类中的变量,称这样的变量为类成员变量;
  2. static修饰类中的方法,称这样的方法为类成员方法;
  3. static修饰类中的内部类,称这样的类为静态内部类;

类的static成员会在该类第一次加载时被创建,一般直到程序结束才会销毁。

类加载大致有如下一些情况(类未加载的情况下,如下动作会导致类加载):

  1. 创建类实例;
  2. 类名.static变量 访问静态变量时;
  3. 类名.static方法 访问静态方法时;
  4. 使用Class.forName()动态加载类时; ……
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问