zoukankan      html  css  js  c++  java
  • JAVA方法中的参数用final来修饰的效果

     很多人都说在JAVA中用final来修饰方法参数的原因是防止方法参数在调用时被篡改,其实也就是这个原因,但理解起来可能会有歧义,我们需要注意的是,在final修饰的方法参数中,如果修饰的是基本类型,那么在这个方法的内部,基本类型的值是不能够改变的,但是如果修饰的是引用类型的变量,那么就需要注意了,引用类型变量所指的引用是不能够改变的,但是引用类型变量的值是可以改变的。

      如下面的代码:
      
    复制代码
    package com.jd.test;
    
    
    public class Test{
          public static void main(String hh[]){
          int i = 1;
          System.out.println(i);
          checkInt(i);
          System.out.println(i);
    }
    
    /**
     * 对于基本类型,基本类型的值在方法内部是不能够改变的
     * @param i
     */
    public static void checkInt(final int i)
    {
    
           //编译不通过,final修饰的局部变量i的值是不能够改变的       
            //    i=10;
    
        }
    }
    复制代码

    对于引用类型的变量,请看下面的代码:

    复制代码
    package com.jd.test;
    
    import com.jd.domain.User;
    
    /**
     * 
     * final修饰参数的测试例子
     * 
     * @author  zhanghao10@jd.com
     * @since    2015-10-8
     */
    public class Test{
          public static void main(String hh[]){
          User user=new User();
          user.setId(1);
          user.setUserName("校长");
          user.setPassword("123456");
          checkInt(user);
    }
    
    /**
     * 对于基本类型,基本类型的值在方法内部是不能够改变的
     * @param i
     */
    public static void checkInt(final User user)
    {
          //user变量的引用是不能够改变的,否则的话,编译会报错
          //    user=new User();
          //user变量的值是能够修改的,但所指向的引用是不能够改变的
          user.setUserName("小王");
    
        }
    }
  • 相关阅读:
    Python3标准库:fnmatch UNIX式glob模式匹配
    Python3标准库:glob文件名模式匹配
    Python3标准库:pathlib文件系统路径作为对象
    Python3标准库:os.path平台独立的文件名管理
    Python3标准库:statistics统计计算
    36-Docker 的两类存储资源
    第四章-操作列表
    35-外部世界如何访问容器?
    34-容器如何访问外部世界?
    33-容器间通信的三种方式
  • 原文地址:https://www.cnblogs.com/smallfa/p/6609899.html
Copyright © 2011-2022 走看看