`
frank1998819
  • 浏览: 752034 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

[初级容易犯错的地方]JAVA方法中的参数用final来修饰的效果(转)

    博客分类:
  • Java
 
阅读更多
今天顺便看到这个文章,转发一下,因是很多初级者容易犯错的地方 
-------------------------
很多人都说在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 
 * @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("小王");

    }
}
分享到:
评论

相关推荐

    java中容易错的地方及解决的方法

    列举了一些java中容易犯错的地方,还有一些是面试的时候会被问到的问题,在此文档中所列出来的都有解决的方法

    12个产品经理最容易犯错的地方,超经典的PPT

    以下是对"12个产品经理最容易犯错的地方"的详细解释: 1. **混淆客户需求与产品需求**:产品经理有时会直接将客户的需求视为产品的具体特性,而忽视了需求背后的真正目的。客户可能提出各种需求,但产品应关注的是...

    java面试题最容易犯错的8道.docx

    - `this` 指代当前对象,可以用来访问当前类的属性和方法,但在静态方法中不能使用,因为静态方法属于类而非实例。 - `super` 用于访问父类的属性和方法,也可在子类构造方法中通过 `super()` 调用父类的构造方法...

    C语言初学者容易犯错的地方汇总(66个)

    C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常...

    JavaJava%BEE软件工程师就业求职手册.doc

    - **4.2.2 注意final参数传递**:探讨了在方法签名中使用`final`关键字的含义及其影响。 - **4.3 类型转换** - **4.3.1 原始数据类型转换**:讨论了不同类型原始数据之间的显式和隐式转换规则。 - **4.3.2 ...

    Java习题(一些不注意就犯的错误)

    Java中的循环结构如for、while和do-while都有其特定的使用场景和陷阱。例如,无限循环的发生通常是因为循环条件设置不当,或者循环变量没有正确更新。此外,break和continue语句的使用也需要谨慎,以免导致逻辑错误...

    Java的一点心得

    - **this关键字与static修饰符**:详细解析了`this`关键字的用法,尤其是在处理方法中成员变量与参数重名情况时的作用,以及`static`修饰符在声明静态变量和方法时的特性,强调了它们在实现类内资源共享和方法调用时...

    java常见面试题(史上最全最经典-希望对你有用)

    Java中没有goto语句,goto是Java中的保留字,但目前没有使用。 2. 运算符的使用 * &和&&的区别:&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true...

    java常犯错误

    以下是一些Java中常见的错误及其详细解释: 1. **类型转换错误**:Java是强类型语言,当不同类型的数据之间进行操作时,如果没有正确转换,会抛出`ClassCastException`。例如,将`Object`类型强制转换为非子类对象...

    C 指针 C++ 最权威资料 稿件 代码 容易犯错的地方

    本文将深入探讨 C 和 C++ 中的指针,以及容易出错的地方。 首先,我们需要理解什么是指针。在 C 和 C++ 中,指针是一个变量,它存储了另一个变量的内存地址。通过指针,我们可以间接地访问和修改存储在特定地址的值...

    JavaOOP上机练习-Chapter4.zip

    在Java中,抽象类用`abstract`关键字定义,可以包含抽象方法(只有方法签名,没有具体实现)。例如,`Shape`类可以是一个抽象类,包含抽象方法`draw()`,具体的形状如`Circle`和`Rectangle`类会实现这个方法。 在...

    C语言函数一些容易犯错错误的例子

    ### C语言函数一些容易犯错错误的例子 #### 函数基础知识回顾 在深入了解本篇文章所涉及的具体例子之前,我们首先来回顾一下C语言中的函数基础知识: - **函数定义**:在C语言中,函数的基本结构包括返回类型、函数...

    Java相关书籍阅读代码

    《Java Puzzlers》是一本独特的书,它通过一系列的编程谜题揭示了Java语言中容易犯错的地方和陷阱。书中涉及的代码例子展示了如何避免常见的编程误区,比如类型转换错误、边界条件问题、内存管理不当等。学习这些...

    java陷阱常见面试题

    使用`String.intern()`方法可以避免这个问题。 3. 数组与集合:数组长度固定,而集合类如ArrayList和LinkedList具有动态扩展能力。根据需求选择合适的数据结构,避免性能瓶颈。 4. 并发问题:线程安全是Java并发...

    03丨线程池:业务代码最常用也最容易犯错的组件

    Java 业务开发常见错误 100 例 代码篇 03丨线程池:业务代码最常用也最容易犯错的组件

    plc编程时新手容易犯错的一点.doc

    plc编程时新手容易犯错的一点.doc

    Java经典入门+笔记

    7. **字符串处理**:Java中的String类,字符串的操作方法,以及StringBuilder和StringBuffer类的使用。 8. **异常处理**:异常的定义、分类,try-catch-finally语句的使用,以及自定义异常。 9. **输入输出流**:...

Global site tag (gtag.js) - Google Analytics