java 值传递 引用传递_Java小白进阶之值传递-引用传递
class ClassA{ int value;//成员变量 } public class TestClassA{ public static void main(String args[]){ int value = 10;//局部变量 changeInt(value); System.out.println(value);// 10 ClassA ca = new ClassA(); ca.value = 10; changeObject(ca); System.out.println(ca.value);//11 } public static void changeInt(int value){ value++; } public static void changeObject(ClassA ca){ ca.value++; } }
解释一:
1.Java只有值传递,地址传递也是传递的那个地址值,第一个value++之后是一个新地址,第18行传入value,在里面++之后成为一个新的value,
是一个局部变量,而打印语句打印的的是外面的那个value,所以是10;
2.第二个value++是地址传递,地址没有改变,而是把地址指向的值加了1,而外面打印语句仍是这个地址,因为里面的值++了,
所以打印出来是11;
解释二:
1.第一个++之后还是10是对的,【基本数据类型对象】被修改之后是一个新地址,不影响原来的【基本数据类型对象】,值传递,value++之后的value是个局部变量,和外面的value无关,value++改的是参数value,改了之后是个局部的value,和外面的value就是两个不同的了,外面的还是外面的,没有被修改,值传递的基本数据类型本身是不会被别人修改的
2.第二个++之后看起来改变了,是因为传入的是一个对象,这个对象里面的成员的值被改变了,但是这个对象本身地址没变,所以看起来像是引用传递,其实还是原来那个对象
关注我,私信关键字【资料】即可获取
免费最新的Java架构学习进阶资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatisNetty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)
java 值传递 引用传递_Java小白进阶之值传递-引用传递相关推荐
- java 引用 内存_Java内存分配及值、引用的传递
关于堆栈的内容网上已经有很多资料了,这是我找的加上自己理解的一篇说明文: 一.内存区域类型 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制: 2. 栈:存放基本类型的变量数 ...
- java中的基本数据类型_Java中的基本数据类型和引用数据类型
数据类型用于帮助确定变量可存放的一组值,以及可对这组特定值执行的操作.Java提供了在所有平台上都普遍支持的多种数据类型. 一.基本数据类型 byte:Java中最小的数据类型,在内存中占8位(bit ...
- java中integer的范围_java中integer取值范围是什么
java中integer取值范围是什么 发布时间:2020-08-27 10:01:14 来源:亿速云 阅读:69 作者:小新 这篇文章给大家分享的是有关java中integer取值范围是什么的内容. ...
- Java基础学习笔记(二)_Java核心技术(进阶)
本篇文章的学习资源来自Java学习视频教程:Java核心技术(进阶)_华东师范大学_中国大学MOOC(慕课) 本篇文章的学习笔记即是对Java核心技术课程的总结,也是对自己学习的总结 文章目录 Jav ...
- java关于包的叙述_Java中构造方法,包的引用,final,super等词的概括
final修饰的类不允许被继承. 一个类不能既是final的,又是abstract的.因为abstract的主要目的是定义一种约定,让子类去实现这种约定,而final表示该类不能被继承,两者矛盾. f ...
- java父类引用子类_java多态,如何理解父类引用指向子类对象
要理解多态性,首先要知道什么是"向上转型". 转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求 ...
- java对日期进行排序_Java对日期时间值的集合进行排序
我正在使用notes.jar lotus notes api来提取电子邮件的日期和时间.当我将它们添加到集合中时,如果像这样添加它们: Vector times = doc.getItemValueD ...
- java byte char io流_Java基础进阶 IO流之字节流
1.IO流 1.1.概述 之前学习的File类它只能操作文件或文件夹,并不能去操作文件中的数据.真正保存数据的是文件,数据是在文件中.而File类它只是去对文件本身做操作,不能对文件中的数据进行操作. ...
- java int 传引用吗_Java的参数传递是「值传递」还是「引用传递」?
关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题. 有人说Java中只有值传递,也有人说值传递和引用传递都是存在的,比较容易让人产生疑问. 关于值传递和引用传递其实需要分情况看待. ...
最新文章
- Vue给Element UI的el-popconfirm绑定按钮事件
- JavaScript使用技巧精萃
- 2020.12.07.记录
- signature=a8a3e788013f73439051c7287d7f5f0b,来用百度密语吧!!!
- 收藏长文|Java 代码精简之道
- Channel的几种状态
- Python 库安装问题-用pip安装pyHook3报错的两种常见问题和解决方法
- Java学习:多线程(2)
- OpenCV threshold 二值化
- AtCoder Grand Contest 016
- Idea 中使用Lombok 编译报找不到符号
- 物联网应用中的数字孪生——一种实现物联网数字孪生的全面的解决方案
- python平方和psum_P19 python sum()函数和.sum(axis=0)函数的使用
- 使用深度学习进行表检测、信息提取和构建
- android英文菜单,安卓recovery菜单中英文对照
- 中国人口总数、老龄人口占比及2040人口年龄结构变化预测
- axure网页预览_预览和导出HTML
- python+Django的web开发实例
- Error: socket hang up
- 外观模式--牛市股票还会亏钱