今天顺便看到这个文章,转发一下,因是很多初级者容易犯错的地方
-------------------------
很多人都说在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中容易犯错的地方,还有一些是面试的时候会被问到的问题,在此文档中所列出来的都有解决的方法
以下是对"12个产品经理最容易犯错的地方"的详细解释: 1. **混淆客户需求与产品需求**:产品经理有时会直接将客户的需求视为产品的具体特性,而忽视了需求背后的真正目的。客户可能提出各种需求,但产品应关注的是...
- `this` 指代当前对象,可以用来访问当前类的属性和方法,但在静态方法中不能使用,因为静态方法属于类而非实例。 - `super` 用于访问父类的属性和方法,也可在子类构造方法中通过 `super()` 调用父类的构造方法...
C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常...
- **4.2.2 注意final参数传递**:探讨了在方法签名中使用`final`关键字的含义及其影响。 - **4.3 类型转换** - **4.3.1 原始数据类型转换**:讨论了不同类型原始数据之间的显式和隐式转换规则。 - **4.3.2 ...
Java中的循环结构如for、while和do-while都有其特定的使用场景和陷阱。例如,无限循环的发生通常是因为循环条件设置不当,或者循环变量没有正确更新。此外,break和continue语句的使用也需要谨慎,以免导致逻辑错误...
- **this关键字与static修饰符**:详细解析了`this`关键字的用法,尤其是在处理方法中成员变量与参数重名情况时的作用,以及`static`修饰符在声明静态变量和方法时的特性,强调了它们在实现类内资源共享和方法调用时...
Java中没有goto语句,goto是Java中的保留字,但目前没有使用。 2. 运算符的使用 * &和&&的区别:&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true...
以下是一些Java中常见的错误及其详细解释: 1. **类型转换错误**:Java是强类型语言,当不同类型的数据之间进行操作时,如果没有正确转换,会抛出`ClassCastException`。例如,将`Object`类型强制转换为非子类对象...
本文将深入探讨 C 和 C++ 中的指针,以及容易出错的地方。 首先,我们需要理解什么是指针。在 C 和 C++ 中,指针是一个变量,它存储了另一个变量的内存地址。通过指针,我们可以间接地访问和修改存储在特定地址的值...
在Java中,抽象类用`abstract`关键字定义,可以包含抽象方法(只有方法签名,没有具体实现)。例如,`Shape`类可以是一个抽象类,包含抽象方法`draw()`,具体的形状如`Circle`和`Rectangle`类会实现这个方法。 在...
### C语言函数一些容易犯错错误的例子 #### 函数基础知识回顾 在深入了解本篇文章所涉及的具体例子之前,我们首先来回顾一下C语言中的函数基础知识: - **函数定义**:在C语言中,函数的基本结构包括返回类型、函数...
《Java Puzzlers》是一本独特的书,它通过一系列的编程谜题揭示了Java语言中容易犯错的地方和陷阱。书中涉及的代码例子展示了如何避免常见的编程误区,比如类型转换错误、边界条件问题、内存管理不当等。学习这些...
使用`String.intern()`方法可以避免这个问题。 3. 数组与集合:数组长度固定,而集合类如ArrayList和LinkedList具有动态扩展能力。根据需求选择合适的数据结构,避免性能瓶颈。 4. 并发问题:线程安全是Java并发...
Java 业务开发常见错误 100 例 代码篇 03丨线程池:业务代码最常用也最容易犯错的组件
plc编程时新手容易犯错的一点.doc
7. **字符串处理**:Java中的String类,字符串的操作方法,以及StringBuilder和StringBuffer类的使用。 8. **异常处理**:异常的定义、分类,try-catch-finally语句的使用,以及自定义异常。 9. **输入输出流**:...