`
ch_space
  • 浏览: 111711 次
  • 性别: Icon_minigender_1
  • 来自: 农村进城务工人员
社区版块
存档分类
最新评论

值、引用

    博客分类:
  • Java
 
阅读更多
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 数据值引用与元素同址操作结构

    在LabVIEW编程中,数据值引用和元素同址操作结构是两个重要的概念,它们在处理数据和优化程序性能方面起着关键作用。 **数据值引用(Data Value References, DVRs)** 数据值引用是一种高级的数据处理机制,它允许...

    一种面向动态链状数据结构的指针定值引用链算法.pdf

    针对这一问题,《一种面向动态链状数据结构的指针定值引用链算法》这篇论文提出了一个具有重要意义的算法。 该论文的核心贡献在于提出了一种流敏感的算法,用于计算操作动态链状数据结构的指针定值引用链。在程序...

    labview数据值引用与元素同址操作结构

    labview数据值引用与元素同址操作结构

    LabVIEW中引用的概念及在VI间传递值

    本文将深入探讨LabVIEW中的引用概念以及如何在虚拟仪器(VI)之间通过引用传递值。 引用在LabVIEW中的基本理解是,它是一个指向内存中特定数据位置的指针。当你创建一个引用时,你不是创建数据的副本,而是创建了一...

    golang中map的值引用问题.docx

    golang中map的值引用问题.docx

    值传递和引用传递

    ### 值传递和引用传递详解 #### 一、引言 在计算机编程中,值传递和引用传递是两种常见的参数传递方式。这两种传递方式在不同的编程语言中有不同的实现细节,但其核心概念是相似的。本文将详细介绍值传递和引用传递...

    C#值类型与引用类型区别

    在C#编程语言中,值类型和引用类型是两种基本的数据类型,它们在内存管理和操作方式上有着显著的差异。了解这些差异对于编写高效、安全的代码至关重要,尤其是在处理大量数据或复杂对象时。 首先,让我们来探讨值...

    根据特定值在区域查找并引用其所在行或列的值[收集].pdf

    在Excel中根据特定值查找并引用所在行或列的值,常用的方法是组合使用`IF`、`COUNTIF`、`INDEX`和`MIN`函数。下面是基于给定内容的知识点解析。 首先,`COUNTIF`函数用于计算区域中满足单个条件的单元格数量。其...

    C#中引用类型和值类型的区别

    在C#编程语言中,类型系统是其核心组成部分,它主要分为两大类:引用类型和值类型。这两种类型的差异在程序设计与优化中扮演着关键角色,了解它们的区别对于提高代码质量和性能至关重要。 ### 引用类型 引用类型在...

    C++11右值引用和转发型引用教程详解

    适当地采用左右值重载策略,借助于左右值引用参数不同的绑定特性,我们可以利用函数重载来做到这一点。 四、移动构造器和移动赋值运算符(Move Constructor and Move Assignment Operator) 移动构造器和移动赋值...

    Java:按值传递还是按引用传递详细解说

    ### Java中的按值传递与按引用传递详解 #### 一、引言 在Java编程语言中,关于参数传递的方式一直存在两种观点:一种认为Java仅支持按值传递,另一种则指出Java同时支持按值传递和按引用传递。实际上,这两种观点...

    C#基础知识 值类型、引用类型

    本文将深入探讨C#中的核心概念:值类型和引用类型。这两种类型在内存管理和数据处理上有着显著的区别,理解它们对于编写高效且无错的代码至关重要。 值类型(Value Types)包括基本类型如整型(int)、浮点型...

    java值传递与引用传递

    在Java编程语言中,函数参数的传递方式有两种:值传递和引用传递。理解这两种机制对于编写高效、无误的代码至关重要。以下是对这两种传递方式的详细解析。 首先,值传递是指函数调用时,实际参数的值被复制一份传给...

    java 值传递和引用传递的比较

    在Java编程语言中,了解值传递和引用传递的概念至关重要,因为它们直接影响到函数参数的处理方式。下面将详细探讨这两个概念及其区别。 首先,我们来理解什么是值传递。在Java中,基本数据类型(如int、double、...

    非常量引用的初始值必须为左值的问题

    ### 非常量引用的初始值必须为左值的问题 #### 1. 左值与右值的概念 在 C++ 中,理解左值和右值对于深入掌握引用和移动语义至关重要。左值和右值是根据表达式在运行时的表现来定义的。 - **左值**:指表达式结束...

    c# 值类型 引用类型 内存分析

    c# 值类型 引用类型 内存分析 图解 ,从根本上理解值类型和引用类型变量的本质区别。

Global site tag (gtag.js) - Google Analytics