引用传递

引用传递是Java之中最让初学者费解的概念,而在实际的开发之中,引用传递又有着非常重要的作用;

引用传递的核心在于同一块堆内存空间被不同的栈内存所指向;

范例:第一道引用传递范例

class Message {
private int num = 10; // 定义int基本类型的属性
/**
* 本类没有提供无参构造方法,而是提供有参构造,可以接收num属性的内容
* @param num 接收num属性的内容
*/
public Message(int num) {
this.num = num; // 为num属性赋值
}
public void setNum(int num) {
this.num = num;
}
public int getNum() {
return this.num;
}
}
public class TestDemo {
public static void main(String args[]) {
Message msg = new Message(30); // 实例化Message类对象同时传递num属性内容
fun(msg); // 引用传递
System.out.println(msg.getNum()); // 输出num属性内容
}
/**
* 修改Message类中的num属性内容
* @param temp Message类的引用
*/
public static void fun(Message temp) {
temp.setNum(100); // 修改num属性内容
}
} 程序执行结果: 100

范例:第二道引用范例

public class TestDemo {
public static void main(String args[]) {
String msg = "Hello"; // 定义String类对象
fun(msg); // 引用传递
System.out.println(msg); // 输出msg对象内容
}
public static void fun(String temp) { // 接收字符串引用
temp = "World"; // 改变字符串引用
}
} 程序执行结果:Hello

范例:第三道引用传递

class Message {
private String info = "此内容无用" ; // 定义String类型属性
public Message(String info) { // 利用构造方法设置info属性内容
this.info = info ;
}
public void setInfo(String info) {
this.info = info ;
}
public String getInfo() {
return this.info ;
}
}
public class TestDemo {
public static void main(String args[]) {
Message msg = new Message("Hello") ; // 实例化Message类对象
fun(msg) ; // 引用传递
System.out.println(msg.getInfo()) ; // 输出info属性内容
}
public static void fun(Message temp) { // 接收Message类引用
temp.setInfo("World") ; // 修改info属性内容
}
}
程序执行结果:World

Java基础_0310:引用传递的更多相关文章

  1. 面试官刁难:Java字符串可以引用传递吗?

    老读者都知道了,六年前,我从苏州回到洛阳,抱着一幅"海归"的心态,投了不少简历,也"约谈"了不少面试官,但仅有两三个令我感到满意.其中有一位叫老马,至今还活在我 ...

  2. java到底是引用传递还是值传递?

    今天我们来讲讲一个在学习中容易误解的问题,面试中也偶尔问到,java方法调用时到底是值传递还是引用传递? 首先,请大家来做一个判断题,下面的3个问题是否描述正确 1. java基本数据类型传递是值传递 ...

  3. Java中的引用传递和值传递

    Java中的引用传递和值传递 关于Java的引用传递和值传递,在听了老师讲解后,还是没有弄清楚是怎么一回事,于是查了资料,所以在这里与大家分享,有不对的地方,欢迎大家留言. java中是没有指针的,j ...

  4. Java中没有引用传递只有值传递(在函数中)

    ◆传参的问题 引用类型(在函数调用中)的传参问题,是一个相当扯的问题.有些书上说是传值,有些书上说是传引用.搞得Java程序员都快成神经分裂了.所以,我们最后来谈一下“引用类型参数传递”的问题. 如下 ...

  5. 理解Java中的引用传递和值传递

    关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习 ...

  6. java 参数传递是引用传递还是值传递?

    JAVA的参数传递倒底是值传递还是引用传递,我觉得两种说法都没错,关键是看怎么理解“引用”和“引用传递”. (一)从编译原理的角度讲,所有那些无法通过形参来修改实参本身的传递机制都是“值传递”,在JA ...

  7. java中的引用传递(同样适用于JS)

    1  java中的数据类型: 有8种基本数据类型,分别为:byte(1),boolean(1),char(2),short(2),int(4),long(8),float(4),double(8)   ...

  8. (转载)理解Java中的引用传递和值传递

      关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天 ...

  9. Java基础之引用(String,char[],Integer)总结

    1.String的引用: 下列代码执行后的结果为: public class Test { public static void main(String[] args) { StringBuffer  ...

随机推荐

  1. A1132. Cut Integer

    Cutting an integer means to cut a K digits lone integer Z into two integers of (K/2) digits long int ...

  2. Pandas库中的DataFrame

    1 简介 DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表. 或许说它可能有点像matlab的矩阵,但是matlab的矩阵只能放数值型值(当然matla ...

  3. 记录EXCEL格式和TXT文本格式之间的互转

    EXCEL格式转变成TXT文本格式 1.打开execl文档,点击文件另存为 2.选择txt保存 3.重命名文档,打开该txt文档 4.按Ctrl+H,将文档中空格转换成其他分割符,单击确定 TXT格式 ...

  4. springboot整合jsp

    由于不想使用新模版,增加学习成本,故此延用jsp: 1.pom 文件 <!-- jsp --> <dependency> <groupId>org.apache.t ...

  5. 二进制部署 Kubernetes 集群

    二进制部署 Kubernetes 集群   提供的几种Kubernetes部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernet ...

  6. go 方法

    go 方法 Golang中的任何自定义类型,都可以有方法,而不仅仅是struct. 定义:func (recevier type) methodName(参数列表)(返回值列表){} 方法的访问控制, ...

  7. MyBatis-${}与#{}

    一.看两种取值的效果 <select id="selectMyUserIdAndAge" resultType="myUser"> select * ...

  8. JAVA核心技术I---JAVA基础知识(数据类型)

    一:基本类型 –boolean 布尔 –byte 字节 –short/int/long 短整数/整数/长整数 –float/double 浮点数 –char 字符 (一)boolean 只有true, ...

  9. sqlserver修改计算机名称。

    SELECT @@SERVERNAME As [@@SERVERNAME], CAST(SERVERPROPERTY('MACHINENAME') AS VARCHAR(128)) + COALESC ...

  10. BIO和NIO

    在了解BIO,NIO,AIO之前先了解一下IO的几个概念:   1.同步与异步 同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous com ...