JAVA方法中的参数用final来修饰的效果

news/2024/7/5 4:05:17
  很多人都说在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("小王");}
}

 

 


http://lihuaxi.xjx100.cn/news/236498.html

相关文章

php mysql 备注_php,mysql备注信息1

/*---------------------------------------------------------------------------------------如何彻底地删除表?如果你不需要一个表了,你可以使用DROP.语法如下:DROP TABLE tablename例如:DROP TABLE employee_dataQuery OK,0 rows affected(0.01 sec);--------------------…

volatile - 如何实现线程安全

2019独角兽企业重金招聘Python工程师标准>>> volatile关键字,在我之前的博客 Volatile - 用途 中已经简单讲解过,当时提出了volatile在多线程中是不安全的。本文将重点介绍一种使用方式,可以实现线程安全。 首先,来看一…

利用脚本生成GUID

实际上,可以使用一种非常简单的方法来生成 GUID,但这种方法近乎像是作弊。(您可听清楚了,我们说的可是“近乎”。)“Scriptlet.TypeLib”对象的设计用途是帮助您创建“Windows 脚本组件”(实质上&#xff0…

垃圾回收机制:

2019独角兽企业重金招聘Python工程师标准>>> 垃圾回收机制: 1、GC通过确定对象是否被活动对象引用来确定是否收集该对象。 2、触发GC的条件 1)GC在优先级最低的线程中运行,一般在应用程序空闲即没有应用线程在运行时被调用。但下面的条件例外…

c 应用程序mysql_MySQL C 语言应用程序接口开发教程

从数据库中取回数据在这个实例中我们从表中取回数据。步骤:(1)创建连接(2)执行查询(3)获取结果集(4)提取所有可用的记录(5)释放结果集实例程序打印 writers 表中所有的记录(姓名)。#include #include int main(int argc, char * argv[]){MYSQL * conn;MYSQL_RES * r…

快速开发生命周期支持工具

去年有幸研究公司管理产品的软件平台,当时考虑的产品是基于业务模型之上的一个系统平台,从建模到运行、部署、维护全生命周期管理.当时就提出两个希望先实践解决的就是可复用原型的设计和使用工作流和规则引擎的协作处理询标产品.前一阵子在公司研究成本产品的成本分析和算法,一…

SQL SERVER中什么情况会导致索引查找变成索引扫描

原文:SQL SERVER中什么情况会导致索引查找变成索引扫描SQL Server 中什么情况会导致其执行计划从索引查找(Index Seek)变成索引扫描(Index Scan)呢? 下面从几个方面结合上下文具体场景做了下测试、总结、归纳。 1&…

oracle rac对心跳要求_关于心跳网络引起的Oracle RAC的节点驱逐(不是实例驱逐)...

关于心跳网络引起的Oracle RAC的节点驱逐(不是实例驱逐)问:假设如下场景:4个节点rac,心跳线走的是千m网络交换机,若是该千M网络交换机断电,我想知道crs的驱逐节点的算法是怎么样的?Oracle 大连 GCS 答复&am…