当前位置: 首页 > news >正文

内部类访问局部变量为什么要用final修饰

/**

 * 内部内访问的局部变量必须加final修饰符,因为方法入参里面的局部变量生命周期在方法体之内,而内部类的生命周期是成员级别的
 * 如果不加final关键字:那么当myRun方法执行完成之后name的生命周期就结束了
 * 如果加上final关键字:内存中就会保存一份该内部变量的副本,当内部类访问时其实访问的是这个副本,
 * 实际上:内部类会将这个局部变量复制为它本身的一个成员变量,就相当于把局部变量的生命周期延长了
 */
public static void myRun(final String name){
    new Thread(){
        public void run(){
            try
            {
                Thread.sleep(1000);
            } catch (InterruptedException e)
            {
                e.printStackTrace();
            }
            
            System.out.println(name);
        }
    }.run();
}

相关文章:

  • Java高级编程——选redis还是memcache,源码怎么说?
  • Python学习——文件操作和异常处理
  • radhat6.6上安装oracle12c RAC (三)
  • 复制cp 近半年【181天:2018-01-01至20180627 这段时间】图片到upoad目录下
  • javascript 中数组的创建 添加 与将数组转换成字符串 页面三种提交请求的方式...
  • Spark MLlib系列(二):基于协同过滤的电影推荐系统
  • spark-submit提交Spark Streamming+Kafka程序
  • Jmeter
  • linux使用--根目录空间不足,追加空间到根目录下
  • Java中有几种类型的流?以及常见的实现类都有哪些?
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • docker 系列之 配置阿里云镜像加速器
  • js 表
  • java 虚拟机内存划分,类加载过程以及对象的初始化
  • sql求倒数第二大的数,效率不高,但写法新颖
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Angular 4.x 动态创建组件
  • Javascript基础之Array数组API
  • Java深入 - 深入理解Java集合
  • Js基础知识(四) - js运行原理与机制
  • Node 版本管理
  • pdf文件如何在线转换为jpg图片
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • rabbitmq延迟消息示例
  • Vue 2.3、2.4 知识点小结
  • vue-router 实现分析
  • 大整数乘法-表格法
  • 关于Flux,Vuex,Redux的思考
  • 聚簇索引和非聚簇索引
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 小而合理的前端理论:rscss和rsjs
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 优秀架构师必须掌握的架构思维
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # 透过事物看本质的能力怎么培养?
  • (9)目标检测_SSD的原理
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (补)B+树一些思想
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (九)信息融合方式简介
  • (五)IO流之ByteArrayInput/OutputStream
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • ***利用Ms05002溢出找“肉鸡
  • *2 echo、printf、mkdir命令的应用
  • .NET Core 成都线下面基会拉开序幕
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET Framework与.NET Framework SDK有什么不同?