final变量存在哪 java_使用Java中的final变量需要注意的地方。
对与java中的final变量,java编译器是进行了优化的。每个使用了final类型变量的地方都不会通过连接而进行访问。比如说Test类中使用了Data类中一个final的int数字fNumber=77,这时候,java编译器会将77这个常数编译到Test类的指令码或者常量池中。这样,每次Test类用到fNumber的时候,不会通过引用连接到Data类中进行读取,而是直接使用自己保存在类文件中的副本。
用程序说话:
Test.java:
public class Test{
public static void main(String[] args){
System.out.println(Data.fNumber);
}
}
Data.java:
public class Data{
public static final int fNumber=77;
}
执行命令和结果:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:/Documents and Settings/zangmeng>cd ..
C:/Documents and Settings>cd ..
C:/>javac Test.java
C:/>java Test
77
C:/>
这时候,我们更改Data.java的内容:
public class Data{
public static final int fNumber=777;
}
然后执行如下命令:
C:/>javac Data.java
C:/>java Test
77
C:/>
这里我们看到,虽然Data.java中的fNumber已经更改为777,而且已经重新编译了,但是因为编译器把fNumber的副本保存Test类中,所以在重新编译Test类的前,Test类一直把fNumber认为是77而不是777。下面我们变异Test.java,再执行,看看结果。
C:/>javac Test.java
C:/>java Test
777
C:/>
这时候,我们看到,重新编译的Test类将新的777数值封装到了自己类中。
整个过程如下:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:/Documents and Settings/zangmeng>cd ..
C:/Documents and Settings>cd ..
C:/>javac Test.java
C:/>java Test
77
//在这里改变了Data.java的内容
C:/>javac Data.java
C:/>java Test
77
C:/>javac Test.java
C:/>java Test
777
C:/>
final变量存在哪 java_使用Java中的final变量需要注意的地方。相关推荐
- java final 变量 好处_深入理解Java中的final关键字
Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...
- java final修饰符_浅谈JAVA中的final修饰符
final修饰符是JAVA中比较简单的一个修饰符,很多人通过书本就可以熟练掌握,但我学的时候,虽然感觉会用了,但是并不是十分理解这个修饰符,所以我找了相关资料,把我的个人理解分享给大家~~ final ...
- fianl属性 java_在Java中使用Final关键字可以提高性能吗?
是的可以.下面是一个最终可以提高性能的实例: 条件编译是一种技术,在这种技术中,代码行不会根据特定条件编译到类文件中.这可用于删除生产生成中的大量调试代码. 考虑以下几点:public class C ...
- [转载] Java中的final变量、final方法和final类
参考链接: Java中的final数组 | Final arrays 1.final变量 final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值.通常,由final定义的变量为常量 ...
- java中为final变量赋值的几种方式
java中为final变量赋值的几种方式 前言 使用final修饰变量,很多人第一时间想到的就是不可变.然后以为变量必须得在声明的时候就为其赋初始值,其实不然,本文将详细讲解java中使用final修 ...
- java final 类_在Java中,final修饰的类有什么特点
展开全部 关于Java中的32313133353236313431303231363533e4b893e5b19e31333264663736final(2010-09-09 14:19:48)转载▼ ...
- 浅谈Java中的final关键字
浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...
- 浅析Java中的final关键字
浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...
- 深入理解Java中的final关键字
深入理解Java中的final关键字 http://www.importnew.com/7553.html Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什 ...
最新文章
- 判断元素是否在ndarray_暨南大学药学院考研~手性的判断与相关介绍
- 第二章:2.1 微分方程、差分方程求解(举例)
- Nginx的rewrite之if指令(二)
- 服务器配置 | 3306端口被占用,phpStudy无法启动Apache
- Mac/Linux 安装联邦学习 Fate 框架单机部署所需的依赖(填坑大全)
- 编写 Window 服务程序
- 延时队列的几种实现方式(只有原理,并没有源码)
- 【STM32H7的DSP教程】第17章 DSP功能函数-定点数互转
- 萌宠经济升温,宠物摄影师成为热门新职业-捷径系统
- android多个module打包aar,android 多module打包aar
- windows下,查看apk的包名、以及查找appActivity(aapt命令)
- JS人民币小写金额转换为大写(没毛病)
- 项目4.1 -- 广义表的原子统计
- 特岗计算机老师年度总结,特岗教师工作总结
- python实现局域网攻击软件_使用python的scapy库进行局域网内的断网攻击(基于ARP协议)...
- 啤酒游戏及其牛鞭效应的模拟之二级模式
- 抓取Foursquare网页信息的爬虫
- ES5、ES6自学笔记
- php性能测试xhprof,Xhprof php性能测试工具用法小结
- “DT时代”的十位创业“女侠”:黑科技不只是男人的玩物