【Java基础】11、java方法中只有值传递,没有引用传递
public class Example {
String testString = new String("good");
char[] testCharArray = {'a','b','c'};
public static void main(String[] args){
Example ex = new Example();
ex.change(ex.testString,ex.testCharArray);
System.out.println(ex.testString);
System.out.println(ex.testCharArray);
}
public void change(String testString,char[] testCharArray){
testString = "hhhhhh";
testCharArray[0] = 'w';
}
}
这段代码最后输出的是什么?
考虑之后给出你的答案。
good
wbc
首先要明白的java的方法传递的究竟是什么?
对于基本类型,传递的是基本类型的值,而对于引用类型传递的是地址。
所以无论是什么,传递的都是值,因为你可以把地址理解成9x0000这种,也是一个值。
所以传递的都是值。
那么方法中什么时候会改变原来的值,什么时候不会呢?
1、只要是基本类型,传递的是值,这个值是复制了一份出来的,所以怎么都不会改变。
2、引用类型,传递的是地址,如果这个地址变了,那么原来的值肯定不变。
3、引用类型,传递的是地址,如果地址没变,而改变了地址对应的对象的属性,那么久会改变原来的值。
如果还听不明白,那么简单的说,只要在方法里面把传进来的对象重新赋值一个new的对象,那么原来是不变得。
如同方法中的string,重新赋值了一个字符串,这个时候地址以及改变了,所以原来那个不变。
而char数组,没有重新复制一个新的char数组,而是把char数组中的元素改变了,那就会改变原来的值。
对于内存的分析,下面这篇博客特别清楚,我就不多说了。
搞懂这个真的很重要。
友情链接:【Java基础】12、java中方法的参数传递机制
【Java基础】11、java方法中只有值传递,没有引用传递的更多相关文章
- Java基础:Object类中的equals与hashCode方法
前言 这个系列的文章主要用来记录我在学习和复习Java基础知识的过程中遇到的一些有趣好玩的知识点,希望大家也喜欢. 一切皆对象 对于软件工程来说面向对象编程有一套完整的解决方案:OOA.OOD.O ...
- JAVA方法中参数到底是值传递还是引用传递
当一个对象被当作参数传递到一个方法后,在此方法内可以改变这个对象的属性,那么这里到底是值传递还是引用传递? 答:是值传递.Java 语言的参数传递只有值传递.当一个实例对象作为参数被传递到方法中时,参 ...
- java中方法的参数传递机制(值传递还是引用传递)
看到一个java面试题: 问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递.Java 编程语言只有值传递参 ...
- 辨析Java方法参数中的值传递和引用传递
小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示. publ ...
- Java 基础:hashCode方法
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 一.前言 泥瓦匠最近被项目搞的天昏地暗.发现有些要给自己一些目标,关于技术的目标: 专注很重要.专注J ...
- Java基础五(方法)
今日内容介绍1.方法基础知识2.方法高级内容3.方法案例 ###01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. ###02方法的定义格 ...
- java中值传递和引用传递
最近工作中使用到了值传递和引用传递,但是有点懵,现在看了下面的文章后清晰多了.一下是文章(网摘) 1:按值传递是什么 指的是在方法调用时,传递的参数是按值的拷贝传递.示例如下: public clas ...
- Java面向对象-方法的值传递和引用传递
Java面向对象-方法的值传递和引用传递 0 发布时间:『 2016-08-21 14:21』 博客类别:Java核心基础 阅读(197) 评论(0) Java面向对象-方法的值传递和引用传递 方 ...
- 【Java基础】Java中你必须知道的知识点
目录 Java中面向对象的基础知识 1. 什么是面向对象 2. 三大基本特征和五项基本原则 3. Java的平台无关性 4. 值传递和引用传递 5. 方法重载和重写 6. 基本数据类型 7. 包装类 ...
- Java基础语法(8)-数组中的常见排序算法
title: Java基础语法(8)-数组中的常见排序算法 blog: CSDN data: Java学习路线及视频 1.基本概念 排序: 是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合 ...
随机推荐
- Codeforces Round #514 (Div. 2) B - Forgery
这个题我一开始没思路,最后也没思路 2个小时一直没思路 本来还想解释题意的,写了半天发现解释的不是很清楚,你还是google翻译一下吧 这个题解法是这样的: 首先,给你图案里面有很多的点,每个点的周围 ...
- PB9.0连接sqlserver2008 R2
pb9不支持sql2000以上版本的数据库直连.因此要连接2000以上的版本必须用odbc. windows下的odbc管理器打开方式:窗体键+R 调出运行对话框 输入 odbcad32 确定弹出od ...
- String str.trim()
String.trim() 方法不仅仅是去除字符串两端的空格字符,它能去除25种字符: ('/t', '/n', '/v', '/f', '/r', ' ', '/x0085', '/x00a0', ...
- oracle utl_http 访问https类型
https://oracle-base.com/articles/misc/utl_http-and-ssl http://blog.whitehorses.nl/2010/05/27/access- ...
- CentOS 7安装新版RabbitMQ解决Erlang 19.3版本依赖
通过yum等软件仓库都可以直接安装RabbitMQ,但版本一般都较为保守. RabbitMQ官网提供了新版的rpm包(http://www.rabbitmq.com/download.html),但是 ...
- 调用redis的时候二维码不断刷新的排查
一.背景和现象. 项目是PHP开发的,点击登录的时候就根据随机数生成了二维码,缓存在了redis.用户用微信扫描了二维码分析出需要请求的链接,然后微信浏览器就请求了服务器,服务器通过了随机数认证.正当 ...
- Thinking in Java from Chapter 10
From Thinking in Java 4th Edition 内部类 public class Parcel1 { class Contents { private int i = 11; pu ...
- Mac 下 Gradle 环境配置
1. gradle路径的查找 然后gradle 右键 显示简介 复制下蓝色的 2. 环境变量的配置 在.bash_profile文件中,添加如下图选中内容的配置信息: 执行source .bash_p ...
- Oracle 的分页查询 SQL 语句
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM T ...
- 转---深入浅出妙用 Javascript 中 apply、call、bind
作者:伯乐在线专栏作者 - chokcoco 如有好文章投稿,请点击 → 这里了解详情 如需转载,发送「转载」二字查看说明 这篇文章实在是很难下笔,因为网上相关文章不胜枚举. 巧合的是前些天看到阮老师 ...