热文推荐
热点推荐
主页>社区>IT 技术与微软技术>编程开发>JAVA>JAVA技巧

Java代码优化--尽可能地使用stack(栈)变量_1


 2009/6/29 20:25:55 阅读 121 次


非续读浏览 | 发布资讯 | 评论 | 置顶 | 打印

java程序包含了大量的对象,我们需要了解它们是从哪里被访问的,变量存储于何处对程序的性能有显著的影响--尤其是某些需要被频繁访问的变量。

我们写一个Java类,在其内部方法中定义的局部变量或对象是存储在stack(堆栈)中的,且JVM是一种stack-based的,因此访问和操纵stack中的数据时性能最佳。而Java类的instance变量(这个类的field)和static变量是在constant pool(常量池)中存储和得到访问的。constant pool中保存了所有的符号引用(symbolic references),指向所有型别(types)、值域(field),以及每个型别所使用的所有函数(mothods)。访问instance和static变量时,由于它们存放于constant pool中,所以JVM需要使用更多更耗时的操作码(分析程序生成的bytecode可以看出来)来访问它们。

下面给出一段代码示例,对比后说明怎么尽可能地使用stack变量:

package test;

public class StackVars {

private int x; // instance变量
private static int staticX; //static 变量

3 页  [1] [2] [3]



温馨提示


特别声明

• Phontol.com 和网页作者无关,不对网页的内容负责。
• 非本站原创内容和本站转载内容,其版权所有权属于原版权持有人所有。
• 本站转载的部分内容是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。
• 如有任何异议,请参见版权声明/免责声明部分。

 
最新热点资讯排行

• 网络带宽:未来世界稀缺资源
• 三星拟推类平板电脑:具PC级处理和上网能力
• 英特尔先于AMD发布新服务器芯片巩固竞争优势
• 三星或放弃ARM处理器架构
• 英特尔推固态硬盘加速操作系统和应用软件启动
• 英特尔32纳米至强5600上市性能提升60%
• HD2是否支持WindowsPhone7尚未敲定
• 宣告死刑HD2不能升WindowsPhone7
• Vodafone专属HTCDesire/Legend四月售
• 双卡双待+WM6.5旗舰天翼中恒SX1今上市
• 尼尔森公布美国2月份前10大网站排名
• ICANN发布最新调查报告
• Twitter承诺推中文版
• 英特尔先于AMD推最新服务器芯片
• 职业技能鉴定22日起网报
• 首款WP7手机参数曝光HTCHD2升级有戏





Phontol简介 | 广告服务 | 联系我们 | 招聘(月) | 合作媒体 | 意见反馈 | 使用条款 | 隐私权声明 | 版权声明 | 站点地图
欢迎您 反馈留言 批评指正
Copyright © Phontol. All rights reserved. 京ICP备07004242号