`
shen211
  • 浏览: 47449 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java中值传递和引用传递

    博客分类:
  • java
阅读更多

 

public class ValueTest {
	public static void change(int a) {
		a = 0;
		a++;
		System.out.println(a);
	}

	public static void changeObject(A a) {
		if(null != a)
			System.out.println("is not null");
		a = null;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String a = "123";
		int c = 12;
		change(c);
		System.out.println(c);
		A b = new A();
		changeObject(b);
		if(null == b)
			System.out.println("change");
	}

}

class A {
	String a = null;
	A() {
		a = "123";
	}

	public String toString() {

		System.out.println(a);
		return a;
	}
}

 上面的例子里说明所谓的值传递和对象传递的一个例子。可是,值传递和引用传递的真正区别在哪里呢?我依然很迷惑。个人认为其中最大的差别是java中的基本类型和对象的=号运算的差别。具体是什么差别,个人认为java中基本类型通过native方法进行处理,进行地址存储,而对象则是引用,如java编程思想中描述的很玄的气泡例子。

如果有哪位更好的理解,请留言告诉我,谢谢啦!!

0
0
分享到:
评论

相关推荐

    Java中值传递和引用传递的区别

    Java中值传递和引用传递的区别详解 Java中值传递和引用传递是两个重要的参数传递机制,它们在程序设计中发挥着至关重要的作用。了解这两种机制的区别对于程序员来说是非常必要的。本文将通过示例代码详细介绍Java...

    JAVA中值类型和引用类型的区别

    在Java编程语言中,值类型和引用类型是两种基本的数据类型分类,它们在内存管理和数据处理上有显著的差异。理解这些区别对于编写高效且无错误的代码至关重要。 **值类型**,也称为基本数据类型,包括四类共八种:...

    Python中 传递值 和 传递引用 的区别解析

    首先,我们来解释一下什么是值传递和引用传递。在值传递中,函数接收的是原始数据的一个副本,对这个副本的任何修改都不会影响到原始数据。而在引用传递中,函数接收的则是数据的引用地址,通过这个地址可以对原始...

    java 各公司面试题

    在第一个问题中,涉及到字符串变量`str`的作用域以及Java中值传递与引用传递的概念。Java中,基本数据类型是值传递,而对象(如字符串)则是引用传递。然而,由于字符串在Java中是不可变的,即使在方法中改变了`str`...

    Java当中的内存分配.pdf

    这个例子展示了Java中值传递的特点,即使对象的属性在方法内部被修改,原始对象的属性也会受到影响,这是因为传递的是对象引用的副本,而不是对象本身。这种行为与某些其他语言(如C++或C#)中的引用传递不同,后者...

    定义比较器,比较数组中值大小

    本文将深入探讨如何定义比较器来比较数组中值的大小,并通过一个具体的示例进行说明。 首先,我们需要了解Java中的Comparator接口。Comparator接口提供了一个方法`compare(T o1, T o2)`,用于比较两个对象的顺序。...

    java面试题之try中含return语句时代码的执行顺序详解

    这个规则解释了为何示例代码的输出是0,而不是1,同时也揭示了Java中值传递和对象引用传递的区别。理解这一点对于编写可靠的异常处理代码至关重要,特别是在处理资源清理(如关闭流)等场景时。

    电子类软硬件面试集锦

    答:C++函数的三种传递方式为:值传递、指针传递和引用传递。 2 头文件的作用是什么? 答:一、通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户...

    实验二 方法的定义、重载;数组的应用 定义一个数组,并获取该数组中值最小的元素

    实验的源代码`Example24.java`中,`main`方法是程序的入口点,它首先定义了数组`arr`,然后调用`getMin`方法并将数组作为参数传递。`getMin`方法计算出最小值后,`main`方法将其打印出来。运行这段代码,将输出数组`...

    专业试卷中兴\计算机专业试题(01

    6. 将B类对象传递给接受A类引用的func函数,可以通过定义B到A的构造函数或者重载操作符`A()`。 7. `static`关键字在全局变量、局部变量和函数上的区别: - `static`全局变量只在定义它的文件中可见,生命周期始于...

    利用Java8 Optional如何避免空指针异常详解

    在传统的 Java 代码中,我们通常需要在调用可能存在 null 值的方法或字段前进行 null 检查,如上述例子中对 computer、soundcard 和 usb 的多次检查。这种方式虽然可以避免空指针异常,但会使代码变得冗长且不易阅读...

    matlab开发-MUGplusY

    总的来说,MUGplusY是一个基于MATLAB的、具有独特梯度稳定性的中值滤波工具,它通过考虑梯度信息来改进传统中值滤波的性能,适用于各种需要噪声去除和边缘保护的场景。通过深入理解和应用MUGplus.m函数,开发者可以...

    Java统计英文句子中出现次数最多的单词并计算出现次数的方法

    除Java程序设计的相关知识外,文章末尾还推荐了一些对Java学习者有帮助的工具和资料,包括在线字数统计工具、字符统计与编辑工具、Java数据结构与算法教程、Java操作DOM节点技巧总结、Java文件与目录操作技巧汇总...

    java学习笔记

    - **referenced**:引用,指通过引用变量指向对象。 - **variable**:变量,存储数据的标识符。 - **dimension**:维度,通常指数组的维度。 - **defined**:定义,创建类、接口、方法等的过程。 - **conversion**:...

    openCv_JniLibs

    注意,为了优化性能,应尽量减少数据在Java和C++之间的传递,避免不必要的内存拷贝。 总之,OpenCV_JniLibs是一个专门为Android设备上的armeabi-v7a架构编译的OpenCV库,通过JNI接口,可以在Android应用中利用...

Global site tag (gtag.js) - Google Analytics