①首先说一下,GC里边在JVM当中是使用的ROOT算法,ROOT算法,什么称作为ROOT呢,就是说类的静态成员,静态成员就是static修饰的那种,是“根”的一个,根还包括方法中的成员变量,只有成员或对象不挂在根上,GC的时候就可能把他们搞掉,这里提到的循环引用,就看这个循环引用是否挂在根上,如果挂在根上,如果这个根还被JVM的Java代码所执行的话,就不会GC掉,如果说这个根已经被释放掉了,这个...
分类:
编程语言 时间:
2015-04-01 09:35:47
阅读次数:
252
static 修饰符能够与变量、方法一起使用,表示是“静态”的。静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法。静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同。请看下面的例子:...
分类:
编程语言 时间:
2015-03-11 12:44:46
阅读次数:
195
第15章 面向对象程序设计
1. 构造基类和派生类。
其中A类是基类,B类是派生类。派生类的构造函数必须重新写过,不能继承。(因为毕竟两个类的类名都不一样,不可能构造函数继承)只继承其他的成员函数和成员变量。
派生类可以覆盖基类的虚函数,但是也可以选择不覆盖(即直接使用父类的函数版本)比例A类的print_1()虚函数就没有被覆盖。
基类的静态成员:如果基类有一个静态成员...
分类:
编程语言 时间:
2015-03-10 10:28:45
阅读次数:
146
程序最终都将在内存中执行,变量只有在内存中占有一席之地时才能被访问。类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。在一个类的静态成员...
分类:
其他好文 时间:
2015-03-04 16:19:49
阅读次数:
97
类的常成员与类的静态成员相似。类的常成员包括常数据成员和常成员函数。
常数据成员
在类的成员定义中,使用修饰符const说明的数据成员称为常数据成员。常数据成员必须初始化,并且它的数值不能被更新。常数据成员是通过构造函数的成员初始化列表进行初始化的。
还是举例说明常数据成员:
#include
class A
{
public:
A(int ...
分类:
编程语言 时间:
2015-02-27 13:43:02
阅读次数:
145
--根据静态成员不能访问非静态成员的规则,外部类的静态方法,静态代码块不能访问非静态内部类,包括不能使用----非静态内部类定义变量,创建实例等
--总之,不允许在外部类的静态成员中直接使用非静态内部类
public class StaticTest{
//定义一个非静态内部类,是一个空类
private class In(){}
public static void main(Stri...
分类:
其他好文 时间:
2015-02-10 13:22:18
阅读次数:
134
const定义的常量在函数执行之后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间。但不论是Const还是static 他们定义的内容都会随着程序的结束而被系统清楚。static表示的是静态的。类的静态成员函数,成员变量是和类相关的,不是和类的具体对象相关,即使没有具体的对象...
分类:
编程语言 时间:
2015-01-30 22:12:38
阅读次数:
246
什么是内部类:定义在另外一个类中的类,称为内部类
编译完成后产生2个类 Outter.class 和 Outter$Inner.class
内部类的分类
静态内部类:定义在类中使用static描述
静态内部类中只能访问外部类的静态成员
实质:在一个类中定义了一个静态类型,该类型产生的对象可以操作包含类中的静态属性
成员内部类: 作为外部类的一个成员出现,与外部类的属性和方法并列
...
分类:
编程语言 时间:
2015-01-20 17:55:59
阅读次数:
203
C++primer第五版第七章类:有关相关类的解释:类的访问权限;类的构造函数;类的作用域;类的静态成员;同时也介绍了几个C++11特性:=default默认构造函数;委托构造函数;...
分类:
编程语言 时间:
2015-01-18 17:16:22
阅读次数:
246