您的位置:首页 > 其它

变量的存储位置和程序的效率问题

2011-03-24 16:04 316 查看
1.寄存器:
最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.循环时候使用的计数器等可能被拿来做寄存器存储
2. 栈:
存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象 存放在常量池中。)
3. 堆:
存放所有new出来的对象。
4. 静态域:
存放静态成员(static定义的)
5. 常量池:
存放字符串常量和基本类型常量(public static final)。
6. 非RAM存储:
硬盘等永久存储空间

jvm的垃圾回收针对的是堆中的数据。

减少内存使用的内存资源的方法:
1.垃圾回收的使用。
垃圾回收机制是由系统控制的,不一定马上按照自己的想法执行,比较难于控制。
像image等变量不是用的时候设置为null 系统回收
2.许多人喜欢,构造方法中进行对象的初始化,这个存在的风险就是在new的时候内存的使用达到了峰值。
使用的地方进行初始化。
if(img == null){
//初始化操作
}

3.StringBuffer 代替String 若一个字符串需要反复的进行拼接等操作 建议使用
4.使用静态常量去掉重复的拷贝和不必要的重复代码
5.不要过度设计。我认为程序设计的目的:是用最简单的方式解决问题。不是在比谁牛逼,写的代码高深。用最简单的逻辑解决复杂 的问题,巧妙的设计更使我兴奋。看见那些复杂的三元运算符感觉很费解。
减少cpu的消耗问题:
1.不在循环中定义变量,尤其是有的线程里面 不知道它要循环多少次了。你要是一不小心加进去个变量的定义,cpu多遭罪啊?
2.变量对象的重复利用。
3.用内存换取速度,定义中间变量,减少不必要的运算开支
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: