Java局部变量final
局部变量和形参带final。
在一个线程A中开起另一个线程B,如果线程B要使用线程A的局部变量,那么A的局部变量需要定义成final。理由:局部变量是线程内部共享的,每一个线程内的不能访问其他线程的局部变量,但是上诉的情况却违背了这一原则,那么加上final为什么就可以了呢?原因是加上final之后,在创建B线程的时候会把final标记的变量作为线程B的构造方法的参数传给B,如此一来就解决了此问题,这是一个比较巧妙的做法,通过class文件反编译可以看出这个道理。
另外Java的String变量比较特殊,他所定义的变量的值全部都存放在常量池里面,不管是不是final的。下面的结果全部为true。并且如果相等都指向同一个地址。
基本类型的局部变量如果值相同也都指向同一个地址。只有后面的和前面的不想等的时候才会指向新的地址,这就是为什么基本局部变量相互之间不会影响的原因。
public class StringTest {private static String s1 = "123";static final String s2 = "123";public static void main(String[] args) {String s3 = "123";final String s4 = "123";System.out.println(s1 == s2);System.out.println(s3 == s4);System.out.println(s1 == s3);}
}
Java局部变量final相关推荐
- java中final关键字的使用
final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰 类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...
- Java关键字final、static、this、super使用总结
一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...
- 转!Java关键字final、static使用总结
Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非 ...
- [Java] 关键字final、static使用总结
一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...
- Java中final和static对修饰类、方法、属性的总结
一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你 ...
- JAVA基础--final、static区别以及类加载顺序
一.JAVA中final 与 static 总结 final static 修饰类 该类不可被继承 只能修饰内部类,该类不需要new,是静态加载(嵌套顶层类) 修饰接口 × × 修饰构造函数 × × ...
- java中常量final的用法_详解Java中final的用法
本文主要介绍了Java中final的使用方法,final是java的关键字,本文就详细说明一下它的使用方法,需要的朋友可以参考下 概念 final 具有"不可改变的"的含义,可以修 ...
- java 线程参数 用final,JAVA 关于final修饰变量参数
很多人都说在JAVA中用final来修饰方法参数的原因是防止方法参数在调用时被篡改,其实也就是这个原因,但理解起来可能会有歧义,我们需要注意的是,在final修饰的方法参数中,如果修饰的是基本类型,那 ...
- Java关键字——final的用法
final这个单词的意思是"最终的; 不可改变的"总的来说,在java中被final修饰的都是不想在后续程序中改变的. 在Java中final主要有以下几个用处: 1.修饰变量的定 ...
最新文章
- 手机号中间四位处理为‘****’
- Elasticsearch 5.3.x 使用 Head 插件
- Java 面向对象的特征---学习笔记
- 备考信息系统项目管理师-----Day1
- MySQL运算符优先级顺序
- raid5坏了一块盘怎么办_机械硬盘的坏道处理——屏蔽之
- 好用到爆!轻松获取PNG透明图片!
- ubuntu中安装apache ab命令进行简单压力测试
- Jupyter-notebook安装问题及解决
- linux下面配置安装nodejs+npm
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- Ubuntu下vsftpd - 虚拟账户配置
- 企业降低包装成本的13种简单方法(下篇)
- matlab图像分类器,一个用BoW|Pyramid BoW+SVM进行图像分类的Matlab Demo
- 蓝桥杯单片机之PCF8591模块的使用
- Android自定义睡眠下表统计图,Android 进阶自定义View(5)图表统计PieChartView圆饼图的实现...
- php 元旦祝福,元旦祝福语 2019迎接2020句子
- Cesium加载大数据量地下管线
- SQL Server 2016软件安装教程
- 广东IPTV 第三方APP应用安装(超简单)