JDK7中匿名内部类中使用局部变量要加final,JDK8中不需要,但jdk会默认加上final
2016-06-24 23:08
597 查看
今天看书的时候看到了局部内部类,书上说局部内部类可以访问局部变量,但是必须是final的。因为局部变量在方法调用之后就消失了,使用final声明的话该局部变量会存入堆中,和内部类有一样的声明周期。但是我写了一个局部内部类,竟然可以访问非final的局部变量,请问这是什么回事呢。ps:我的jdk是8 难道和这个有关系?
public class jubuneibulei { public void p(int a, int b){ class te{ void print(){ System.out.println(a); } } new te().print(); } public static void main(String[] args) { new jubuneibulei().p(111, 222); } } JDK8中不需要,但jdk会默认加上final
相关文章推荐
- 使用Spring构建第一个RESTful服务
- HIve的JavaAPI操作
- JAVA——RandomAccessFile类
- Description Resource Path Location Type Java compiler level does not match the version of the instal
- java web工程的错误页面的简单配置
- JAVA之IO 基础(字节流和字符流)
- java_简单的写个二叉树
- Spring MVC中处理静态资源的多种方法
- Spring学习
- Java中的Set、List、Map的用法与区别介绍
- Java调用短信验证码
- 【java虚拟机系列】JVM类加载器与ClassNotFoundException和NoClassDefFoundError
- 【java虚拟机系列】JVM类加载器与ClassNotFoundException和NoClassDefFoundError
- 53. spring boot系列合集【从零开始学Spring Boot】
- springmvc注解开发-validation校验-商品修改校验
- java环境配置(jdk环境变量配置 工具)
- Spring事务
- 如何用Eclipse上传/下载Git项目
- 基于原生URL和URLConnection的请求组件
- 用Eclipse进行远程调试方法