1、String、Double、Integer都是值类型,不作为引用,也就无从修改变量的状态。
int、double等都是基本类型,不作为引用。这些类型的变量,即使作为方法的参数,在方法内部操作时,不会改变原来变量的值。
2、将对象作为方法的参数时,可以在方法内部修改对象的属性,但不可修改对象的引用,即:
Users u=new Users("zhang");
method(u);
这两行代码执行后,u依然是原来对象的引用,来看下面的代码:
public class Test {
public static void main(String[] args) {
Users u=new Users("zhang");
change(u);
System.out.println(u.getUsername());
}
public static void change(Users u){
u=new Users("chen");//并没有改变原来u的引用
}
}
输出结果是:zhang
也就是说在方法change内部重新构建的一个Users对象,但传入的u并不会改变指向(或者称为引用),而是重新生成一个新构建的对象的引用。
但是,如果把change方法改为:
public static void change(Users u){
u.setUsername("chen");
}
这样就会改变原对象的状态(但是依然是原来的对象的引用,即引用是不会变的)。
输出结果是:chen
分享到:
相关推荐
### 值引用与对象引用 #### 一、引言 在编程中,变量的引用方式分为两大类:值引用(Value Reference)和对象引用(Object Reference)。这两种引用方式决定了程序如何处理数据以及数据的存储方式。理解这些概念...
在LabVIEW编程中,数据值引用和元素同址操作结构是两个重要的概念,它们在处理数据和优化程序性能方面起着关键作用。 **数据值引用(Data Value References, DVRs)** 数据值引用是一种高级的数据处理机制,它允许...
针对这一问题,《一种面向动态链状数据结构的指针定值引用链算法》这篇论文提出了一个具有重要意义的算法。 该论文的核心贡献在于提出了一种流敏感的算法,用于计算操作动态链状数据结构的指针定值引用链。在程序...
labview数据值引用与元素同址操作结构
本文将深入探讨LabVIEW中的引用概念以及如何在虚拟仪器(VI)之间通过引用传递值。 引用在LabVIEW中的基本理解是,它是一个指向内存中特定数据位置的指针。当你创建一个引用时,你不是创建数据的副本,而是创建了一...
golang中map的值引用问题.docx
### 值传递和引用传递详解 #### 一、引言 在计算机编程中,值传递和引用传递是两种常见的参数传递方式。这两种传递方式在不同的编程语言中有不同的实现细节,但其核心概念是相似的。本文将详细介绍值传递和引用传递...
在C#编程语言中,值类型和引用类型是两种基本的数据类型,它们在内存管理和操作方式上有着显著的差异。了解这些差异对于编写高效、安全的代码至关重要,尤其是在处理大量数据或复杂对象时。 首先,让我们来探讨值...
在Excel中根据特定值查找并引用所在行或列的值,常用的方法是组合使用`IF`、`COUNTIF`、`INDEX`和`MIN`函数。下面是基于给定内容的知识点解析。 首先,`COUNTIF`函数用于计算区域中满足单个条件的单元格数量。其...
在C#编程语言中,类型系统是其核心组成部分,它主要分为两大类:引用类型和值类型。这两种类型的差异在程序设计与优化中扮演着关键角色,了解它们的区别对于提高代码质量和性能至关重要。 ### 引用类型 引用类型在...
适当地采用左右值重载策略,借助于左右值引用参数不同的绑定特性,我们可以利用函数重载来做到这一点。 四、移动构造器和移动赋值运算符(Move Constructor and Move Assignment Operator) 移动构造器和移动赋值...
### Java中的按值传递与按引用传递详解 #### 一、引言 在Java编程语言中,关于参数传递的方式一直存在两种观点:一种认为Java仅支持按值传递,另一种则指出Java同时支持按值传递和按引用传递。实际上,这两种观点...
本文将深入探讨C#中的核心概念:值类型和引用类型。这两种类型在内存管理和数据处理上有着显著的区别,理解它们对于编写高效且无错的代码至关重要。 值类型(Value Types)包括基本类型如整型(int)、浮点型...
在Java编程语言中,函数参数的传递方式有两种:值传递和引用传递。理解这两种机制对于编写高效、无误的代码至关重要。以下是对这两种传递方式的详细解析。 首先,值传递是指函数调用时,实际参数的值被复制一份传给...
在Java编程语言中,了解值传递和引用传递的概念至关重要,因为它们直接影响到函数参数的处理方式。下面将详细探讨这两个概念及其区别。 首先,我们来理解什么是值传递。在Java中,基本数据类型(如int、double、...
### 非常量引用的初始值必须为左值的问题 #### 1. 左值与右值的概念 在 C++ 中,理解左值和右值对于深入掌握引用和移动语义至关重要。左值和右值是根据表达式在运行时的表现来定义的。 - **左值**:指表达式结束...
c# 值类型 引用类型 内存分析 图解 ,从根本上理解值类型和引用类型变量的本质区别。