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

问题描述

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

解决方案

类不能定义为static的。只有类的成员才可以是static(包括变量和方法)static成员第一次用的时候创建,之后就一直在了。直道应用程序关闭。
解决方案二:
static可修饰的东西很多,分别有如下一些: 1. static修饰类中的变量,称这样的变量为类成员变量; 2. static修饰类中的方法,称这样的方法为类成员方法; 3. static修饰类中的内部类,称这样的类为静态内部类;类的static成员会在该类第一次加载时被创建,一般直到程序结束才会销毁。类加载大致有如下一些情况(类未加载的情况下,如下动作会导致类加载): 1. 创建类实例; 2. 类名.static变量 访问静态变量时; 3. 类名.static方法 访问静态方法时; 4. 使用Class.forName()动态加载类时; ……
解决方案三:
可以有静态类,只是得这样定义(内部静态类)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 {}}
解决方案四:
http://www.iteye.com/topic/691013

时间: 2024-08-22 14:56:47

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

static变量-如何引用不同文件里的全局变量

问题描述 如何引用不同文件里的全局变量 如何在a.h中定义的变量在其他cpp文件中也能使用. 我使用的编译器是vs2010,尝试了如下几种方法. 1)在类里定义static变量,引用时编译不通过,为lnk2001错误. 2)在一个头文件里定义static变量,其他文件里extern声明,编译通过,但调试时无法修改,如在b.cpp中进行修改,在c.cpp中引用时还是初始化的0值. 3)去掉static,编译不通过,为lnk2005错误, 求大神们帮助

c++ 类和对象-【C++】写在构造函数里的变量能够被同一个类中其他成员访问吗?为什么?

问题描述 [C++]写在构造函数里的变量能够被同一个类中其他成员访问吗?为什么? class rational { private: long denom,den; //denom为分子,den为分母 double a; public: rational(int n, int m) { denom=n; den=m;a=(double)denom/(double)den; //比如这里构造函数里的a能被其他成员函数访问吗?为什么? } int operator<(rational r) cons

VC++实现非窗口类中使用定时器的方法

定时器在Windows 的程序中的作用不可忽略,也随处可见.设定一个时间间隔每0.5秒或者1秒钟刷新一次时钟,这样就可以完成一个简单的电子钟程序.在不同的编程工具中定时器的用法也不同,Visual C++中也给我们提供了实现这种功能的方法,而且方法不只一种.在窗口类中是使用定时器比较很简单,用SetTimer()设置了定时器之后,并在Class Wizard中添加了WM_TIMER消息映射后,您就可以在映射函数OnTimer()中添加代码实现,来定时完成您的任务,而且还支持任意多个定时器,这种方

asp.net中静态变量和非静态变量的区别

静态变量:静态变量使用 static 修饰符进行声明在所属类被装载时创建通过类进行访问所属类的所有实例的同一静态变量都是同一个值非静态变量:不带有 static 修饰符声明的变量称做非静态变量在类被实例化时创建通过对象进行访问同一个类的不同实例的同一非静态变量可以是不同的值示例: [复制到剪贴板]CODE: using System;using System.Collections.Generic;using System.Text;namespace Example01{    class P

非窗口类中使用定时器的方法及相关知识的介绍

本文代码运行效果图如下: 摘 要:本文主要通过一些简单的例子,介绍了如何在Visual C++的窗口和非窗口类中使用定时器.重点介绍了如何用静态成员函数和静态数据成员在非窗口类中使用定时器,同时,又介绍了与定时器相关的知识,例如回调函数,C++类中的静态成员,以及模板类中的映射类等. 关键字 C++ 类 定时器 静态函数 静态成员函数 静态数据成员 回调函数 映射类 摘 要:This page introduce how to use timer in window class and none

java非静态方法可以调用静态变量吗?

问题描述 java非静态方法可以调用静态变量吗? 初学java,看到书上的编纂,可能出现了错误. 第二版(中文版)284页中原话: 问:非静态的方法可以存取静态的变量吗? 回答:当然可以.非静态方法不可以调用该类静态的方法或静态的变量. 实在是头大,网上查询都说非静态方法可以调用静态的方法和变量.但我自己试了一下 class Duck{ private int size; static int duckCount=0; public Duck(){ duckCount++; } } public

既然非静态构造函数里可以对静态字段赋值,那还要静态构造函数干嘛?

问题描述 既然非静态构造函数里可以对静态字段赋值,那还要静态构造函数干嘛?难道是为了在本类被实例化之前就可以使用静态字段吗? 解决方案 本帖最后由 syncsdn9 于 2016-03-23 16:29:23 编辑解决方案二:你没见过不需要实例化就能用的类吗?比如System.Array解决方案三:静态构造函数是你在调用这个函数的任何方法.属性(尤其是static的)之前执行,非静态构造函数是在new的时候才执行,这能一样吗?解决方案四:你最后句话还真说对了,静态字段与实例无关,不需要实例化就可

PHP静态成员变量和非静态成员变量详解

数据成员可以分静态变量.非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员. 非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员

cwinthread-在VS2005中单个工程里建立两个CWinThread的派生类,编译时发出C2084错误,怎么解决?

问题描述 在VS2005中单个工程里建立两个CWinThread的派生类,编译时发出C2084错误,怎么解决? =====描述===== 我在VS2005中用项目->添加类添加了两个CWinThread类的派生类--CMyThread与CFloatWndThread,现在编译时报C2084错误,百度上都说是函数有定义了两个函数体,但我没发现有什么重定义啊~~请问大家有何高招?? =====代码===== //MyThread.h #include "stdafx.h" // CM