• 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("小王");
    
        }
    }
  • 相关阅读:
    nginx 日志之 error_log
    ssl 原理简介
    nginx 配置ssl
    自建 ca 及使用 ca 颁发证书
    nginx 访问控制之 认证
    nginx 访问控制之 限速
    nginx 访问控制之 http_referer
    nginx 访问控制之 user_agent
    nginx 访问控制之 request_uri
    nginx 访问控制之 document_uri
  • 原文地址:https://www.cnblogs.com/smallfa/p/6609899.html
Copyright © 2020-2023  润新知