Java中的值传递

1.先比较下字符串的比较
== 代表全等于 值和地址(存放地址) 全部相等于。
equals 值等于
== 和 equals的区别 列如下面的 如果name1==name2是等于的
然而name1==name3 结果 不是不等于的,因为生成了新的地址
如果 name1.equals(name3) 这个比较只要求值的比较,输出结果是相等的。
String name1="zhangsan";
String name2="zhangsan";
String name3=new String("zhangsan");
if(name1==name2){
System.out.println("等于");

new 表示强制开辟新的内存空间
}

2.在编程中,在方法调用之间复制数据的过程叫按值调用。
区分调用时 值的变化:

public static void mian(string[]args){

b=10;
test();System.out.println(test());
}

方法
public static int test(int a){
a =5;

}
结果输出是10

public static void mian(string[]args){

int[] nums={12,2,3,7}

test(nums);System.out.println(nums[0]);

}

方法
public static int test(int a){
a =5;

}
输出结果 是5

在Java中只有值传递 :

string字符串类型在内存中只能读,不能更改。虽然是引用类型,但是在调用时不会更改。

引用类型传递的是地址,是会修改原值的,会被方法覆盖,比如数组传递的也是地址

只传值的,是不会被覆盖修改的。

***

时间: 2024-10-21 03:01:37

Java中的值传递的相关文章

Java中的值传递与“引用传递”

首先,Java没有 引用传递 这么一说. Java只有值传递,传递的都是值,基本数据类型传递的是值,引用类型传递的是地址值. 我来理一下这其中犹如米线跟米面绞在一起了,再跟粉丝混在一起的关系. 好的,我们来看第一个例子: public static void main(String[] args) { int a = 1; int b = 4; System.out.println("Before : a=" + a + "," + "b=" +

浅析java中的值传递与引用传递

public class Test { public static void main(String[] args) { String s = new String("aaa"); change(s); System.out.println(s); StringBuilder sb = new StringBuilder("111"); change(sb); System.out.println(sb); } static void change(String s

一道笔试题来理顺Java中的值传递和引用传递

前段时间参加了一场面试,其中有一道引用传递的题,因为当时并没有考虑清楚所以做错了. 现在来复盘一下,题目如下: private static void change(StringBuffer str11, StringBuffer str12) { str12 = str11; str11 = new StringBuffer("new world"); str12.append("new world");} public static void main(Stri

为什么说Java中只有值传递----说服自己

在开始深入讲解之前,有必要纠正一下大家以前的那些错误看法了.如果你有以下想法,那么你有必要好好阅读本文. 错误理解一:值传递和引用传递,区分的条件是传递的内容,如果是个值,就是值传递.如果是个引用,就是引用传递. 错误理解二:Java是引用传递. 错误理解三:传递的参数如果是普通类型,那就是值传递,如果是对象,那就是引用传递. 实参与形参 我们都知道,在Java中定义方法的时候是可以定义参数的.比如Java中的main方法: public static void main(String[] ar

java中的值传递和引用传递有什么区别呀?

值传递: (形式参数类型是基本数据类型和String):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值. 引用传递: (形式参数类型是引用数据类型参数除去String):也称为传地址.方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数

为什么大家都说Java中只有值传递?

最近跟Java中的值传递和引用传递杠上了,一度怀疑人生.查了很多资料,加上自己的理解,终于搞清楚了,什么是值传递和引用传递.也搞明白了,为什么大家都说Java只有值传递,没有引用传递.原来,我一直以来的认知都是错误的... 首先,需要了解一些概念性的东西. 形参与实参: 形参,是指在定义函数时使用的参数,目的是用于接收调用该函数时传入的参数.简单理解,就是所有函数(即方法)的参数都是形参. 实参,是指调用函数时,传递给函数的参数. public static void main(String[]

JAVA中只有值传递

今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:"引用传递!",并且还觉得自己对java的这一特性很是熟悉! 结果发现,我错了! 答案是: 值传递!Java中只有按值传递,没有按引用传递! 回家后我就迫不及待地查询了这个问题,觉得自己对java这么基础的问题都搞错实在太丢人! 综合网上的描述,我大概了解了是怎么回事,现在整理如下,如有不对之处望大神提出! 先来看一个作为程序员都熟

Java 中的值传递和参数传递

Java中没有指针,所以也没有引用传递了,仅仅有值传递不过可以通过对象的方式来实现引用传递 类似java没有多继承 但可以用多次implements 接口实现多继承的功能 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值. 引用传递:也称为传地址.方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值. Jav

JAVA中的值传递和引用传递问题

这是个老生常谈的问题了,引起过无数争论,但可以说一直没有一个令人满意的回答. 有人总结过: 对象是按引用传递的 Java 应用程序有且仅有的一种参数传递机制,即按值传递 按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本 按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本 简单总结: 对象就是传引用(引用地址的拷贝,实质也是传值) 原始类型就是传值 String等immutable类型因为没有提供自身修改的函数,每次操作都是新生成一个