局部变量和形参带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相关推荐

  1. java中final关键字的使用

    final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰  类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...

  2. Java关键字final、static、this、super使用总结

    一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...

  3. 转!Java关键字final、static使用总结

    Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非 ...

  4. [Java] 关键字final、static使用总结

    一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...

  5. Java中final和static对修饰类、方法、属性的总结

    一.final        根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你 ...

  6. JAVA基础--final、static区别以及类加载顺序

    一.JAVA中final 与 static 总结 final static 修饰类 该类不可被继承 只能修饰内部类,该类不需要new,是静态加载(嵌套顶层类) 修饰接口 × × 修饰构造函数 × × ...

  7. java中常量final的用法_详解Java中final的用法

    本文主要介绍了Java中final的使用方法,final是java的关键字,本文就详细说明一下它的使用方法,需要的朋友可以参考下 概念 final 具有"不可改变的"的含义,可以修 ...

  8. java 线程参数 用final,JAVA 关于final修饰变量参数

    很多人都说在JAVA中用final来修饰方法参数的原因是防止方法参数在调用时被篡改,其实也就是这个原因,但理解起来可能会有歧义,我们需要注意的是,在final修饰的方法参数中,如果修饰的是基本类型,那 ...

  9. Java关键字——final的用法

    final这个单词的意思是"最终的; 不可改变的"总的来说,在java中被final修饰的都是不想在后续程序中改变的. 在Java中final主要有以下几个用处: 1.修饰变量的定 ...

最新文章

  1. 手机号中间四位处理为‘****’
  2. Elasticsearch 5.3.x 使用 Head 插件
  3. Java 面向对象的特征---学习笔记
  4. 备考信息系统项目管理师-----Day1
  5. MySQL运算符优先级顺序
  6. raid5坏了一块盘怎么办_机械硬盘的坏道处理——屏蔽之
  7. 好用到爆!轻松获取PNG透明图片!
  8. ubuntu中安装apache ab命令进行简单压力测试
  9. Jupyter-notebook安装问题及解决
  10. linux下面配置安装nodejs+npm
  11. Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
  12. Ubuntu下vsftpd - 虚拟账户配置
  13. 企业降低包装成本的13种简单方法(下篇)
  14. matlab图像分类器,一个用BoW|Pyramid BoW+SVM进行图像分类的Matlab Demo
  15. 蓝桥杯单片机之PCF8591模块的使用
  16. Android自定义睡眠下表统计图,Android 进阶自定义View(5)图表统计PieChartView圆饼图的实现...
  17. php 元旦祝福,元旦祝福语 2019迎接2020句子
  18. Cesium加载大数据量地下管线
  19. SQL Server 2016软件安装教程
  20. 广东IPTV 第三方APP应用安装(超简单)

热门文章

  1. ZooKeeper 源码和实践揭秘
  2. 一款vue编写的功能强大的swagger-ui,有点秀(附开源地址)
  3. 卷积神经网络(CNN)综述
  4. 大佬是怎么优雅实现矩阵乘法的?
  5. 引争议!硕导提议高校教师应多配偶,这样就能多生娃!高校的处理通报来了...
  6. 第一次,我们在人工神经网络中发现了「真」神经元
  7. 分布式深度学习最佳入门(踩坑)指南
  8. 头像秒变像素风,宅男大叔自学AI打造大师级水准,火爆推特
  9. 新手必看,17 个常见的 Python 运行时错误
  10. 爱奇艺才被做空又爆裁员,技术研发为裁员重灾区