一,内存分配方式 1. 从静态存储区分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 2. 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,.....
分类:
编程语言 时间:
2015-02-02 00:34:23
阅读次数:
251
前言 前段时间在网上看到了一个百度的面试题,大概意思是如何在不使用锁和C++11的情况下,用C++实现线程安全的Singleton。 看到这个题目后,第一个想法就是用Scott Meyer在《Effective C++》中提到的,把non-local static变量放到static成员函数中来.....
分类:
编程语言 时间:
2015-02-01 00:25:38
阅读次数:
374
有时候我们需要用到static变量,有时候我们想限制这些变量的作用域便将其定义在函数内部。但是,如果我们对static变量进行了修改,那么程序在软重启的时候,这些static变量并不会被重新初始化,而是仍然使用上次的值。
这是一个潜藏的BUG,一定要注意。所以如果使用static变量,一定要注意这些变量是否需要被修改:如果不需要被修改,那么最好将其定义为const变量;如果需要被修改,那么一...
分类:
编程语言 时间:
2015-01-29 16:03:18
阅读次数:
201
程序内存分配
____________________
| Stack区(栈区)(函数参数,局部变量,数组);自动创建,函数结束时自动释放,速度快,容量小
|____________________
| Static存储区(static变量,全局变量); 程序编译的时候就分配好
|____________________
|...
分类:
其他好文 时间:
2015-01-28 17:55:18
阅读次数:
186
今天我们介绍Java序列化,以及Java序列化和static变量的关系,阐述为什么Java不能序列化static变量,并附予实例讲解。...
分类:
编程语言 时间:
2015-01-28 13:06:07
阅读次数:
127
namespace Test{ class Program { static void Main(string[] args) { Common.SetDT(); var dt = Common.DT; ...
分类:
Web程序 时间:
2015-01-16 16:10:46
阅读次数:
150
概念:静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。1.先来介绍它的第一条也是最重要的一条:隐藏当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有...
分类:
其他好文 时间:
2015-01-14 22:47:04
阅读次数:
238
Java 语言要求变量遵循先定义,再初始化,然后使用的规则。变量的初始化是自从变量定义以后,首次给它赋初值的过程。
一、成员变量
JVM将为类的instance和static变量赋上缺省值(默认值),包括数组array中的每一个元素--而不用再写初始化赋值语句。final变量没有默认值,必须在构造器结束前赋值。
默认值如下:
1、整数类型(byte、short、int、long)默认值为0...
分类:
编程语言 时间:
2015-01-12 11:00:21
阅读次数:
210
using System; namespace Param { class Class1 { static int i = getNum(); int j = getNum(); static int num = 1; static int getNu...
JAVA中通常我们会使用static域变量来在内存中缓存数据或长驻内存数据,众所周知 ,static是类的所有实例所共享. 考虑一个问题,假如在多线程情况下,共享数据肯定会有危险的, 例如使用SimpleDateFormat工具的一个...
分类:
编程语言 时间:
2014-12-29 15:43:24
阅读次数:
169