final修饰基本类型变量

当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变

final修饰引用类型变量

当使用final修饰引用类型变量时,它保存的仅仅是一个引用,final只能保证这个引用类型变量所引用的地址不会改变,即一直引用同一个对象,但这个对象完全可以改变

package com.j1803.finalTest;
import java.util.Arrays;
public class FinalReferenceTest {
 public static void main(String[] args) {
  //final修饰数组变量,iArr是一个引用变量
  final int [] iArr={5,6,12,9};
  System.out.println(Arrays.toString(iArr));
  //对数组元素进行排序,合法
  Arrays.sort(iArr);
  System.out.println(Arrays.toString(iArr));
        //对数组iArr重新赋值,合法
  iArr[2]=-100;
  //下面语句对iArr重新赋值,非法
  //iArr=null;
       //final修饰一个Person变量,p是一个引用变量
  final Person p=new Person(22);
  //改变Person对象p的实例变量,合法
  p.setAge(45);
  System.out.println(p.getAge());
  //非法
  //p=null;
 }
}
class Person{
 private int age;
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public Person(int age) {
  super();
  this.age = age;
 }
 
}

最新文章

  1. 妙用psexec分析关机一直挂起的Windows update 更新
  2. Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
  3. Screen Orientation for Windows Phone
  4. angular-select绑定之后option不能更新问题
  5. 【SDOI2010题集整合】BZOJ1922~1927&1941&1951&1952&1972&1974&1975
  6. 【CodeVS】1204 寻找字串位置
  7. JVM监控和Java应用程序调试
  8. MySQL 中的 FOUND_ROWS() 与 ROW_COUNT() 函数
  9. Spring学习4-面向切面(AOP)之aspectj注解方式
  10. 服务端提供的JSON数据接口与用户端接收解析JSON数据
  11. Python 读写excel数据
  12. Web服务的体系架构
  13. Unity3D根据游戏的发展Terrain Toolkit地形生产
  14. 唯独ie浏览器缓存ajax请求
  15. java:接口特性 接口与抽象类/普通类的区别
  16. JavaScript--我发现,原来你是这样的JS:面向对象编程OOP[2]--(创建你的那个对象吧)
  17. java 静态代理模式
  18. Linux查看当前目录下所有子目录是否包含某个文件
  19. Vue系列之 => webpack处理样式文件
  20. angular 实现左侧和顶部固定定位布局

热门文章

  1. AutomicBoolean
  2. Deeplearning知识蒸馏
  3. 单点突破:Set
  4. seldom 2.0 让接口自动化测试更简单
  5. 二、Linux基本防护措施
  6. 十、构建memcached服务
  7. CentOS 6.x 安装图形界面
  8. 基于Android平台的图书管理系统的制作(4)
  9. 备份schema并排除大表到ASM磁盘上
  10. SQL Prompt快捷键