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("小王");
    
        }
    }
  • 相关阅读:
    SQL Server 内存管理在64位时代的改变
    SQL Server 的内存分类
    SQL Server sp_configure 控制内存使用
    SQL Server 内存使用量下降问题
    SQL Server 与 Windows 内存使用上的约定
    MYSQL 为表指定文件位置 data directory
    SQL Server 与内存相关的术语
    SQL Server 为索引启动硬件加速(分区)的 2 方法
    SQL Server 提高创建索引速度的 2 个方法
    SQL Server 中索引的禁用与删除
  • 原文地址:https://www.cnblogs.com/smallfa/p/6609899.html
Copyright © 2011-2022 走看看