下面这段代码,如果Lazyholder没有static修饰,则编译不过 "非静态内部类不能拥有静态变量" ,可以这样理解,因为JVM类加载的顺序为: 1.先加载类 2.执行static变量的初始化 3.对象创建 如果LazyHolder没有static,则本质上,它其实是Singleton2的非静态 ...
分类:
其他好文 时间:
2016-08-08 17:08:20
阅读次数:
111
1.static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是: 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可 ...
分类:
其他好文 时间:
2016-08-08 12:30:32
阅读次数:
119
Static翻译出来是“静态”“静止”的意思,在C语言中的意思其实和它的本意差不多,表示“静态”或者“全局”的意思,用来修饰变量和函数。经static修饰过后的变量或者函数的作用域或者存储域会发生变化,而由static修饰的变量在初始值方面也会表现出static关键字的优势。想知道经static修饰 ...
分类:
编程语言 时间:
2016-08-05 08:49:21
阅读次数:
193
一. C++类的引用成员,类的常量成员,类的static成员的初始化方式 类的引用成员和常量成员初始化放在初始化列表里,因为初始化只有一次,需要在构造函数之前进行初始化, 写在类的构造函数会出错。 类的static变量要放在类声明的外边定义,因为static变量属于整个类,而不是类对象,所以不能放在 ...
分类:
编程语言 时间:
2016-08-02 18:48:44
阅读次数:
195
1.栈(stack) 保存局部变量的,函数结束,其局部变量的生命就结束了(当然是不包括static变量)。即释放了栈的空间(顺便提一下:栈特点为后进先出的!). 函数return后需要释放栈,函数被调用的时候需要分配栈。 2.堆(heap)是操作系统申请的内存空间,需要程序主动申请,主动释放,绝大多 ...
分类:
其他好文 时间:
2016-08-02 16:50:28
阅读次数:
117
1.避免创建不必要的对象 2.如果方法用不到成员变量,可以把方法声明为静态(static),这样性能会提高百分之十五到百分之二十 3.避免使用get/set存取字段,可以把字段声明为public直接访问 4.静态(static)变量如果不需要修改,应使用static final修饰符定义为常量 5. ...
分类:
移动开发 时间:
2016-07-31 22:08:19
阅读次数:
195
malloc()与 alloc() C语言跟内存分配方式 (1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释 ...
分类:
其他好文 时间:
2016-07-25 12:57:06
阅读次数:
124
1.是否可以在static环境中访问非static变量? static变量在Java中是属于类的,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何 ...
分类:
编程语言 时间:
2016-07-21 00:52:16
阅读次数:
309
转自:http://bbs.csdn.net/topics/390183594 在头文件中定以后,应在类的生命之外,重新定义一次。 ...
分类:
编程语言 时间:
2016-07-15 12:57:36
阅读次数:
198
1、用static修饰符修饰的变量和方法不属于任何一个类的具体对象,而专属于类。 2、static方法是类方法,但可以被所有对象所访问。 3、static方法内部的代码,只能访问类中的static变量或方法,不能访问类中的非static变量或方法,但非static方法(对象方法)可以访问static ...
分类:
编程语言 时间:
2016-07-11 18:44:27
阅读次数:
152