在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
众所周知,Java有两种参数传递方式,即按值传递和引用传递,而String类型比较特殊,需要单独讨论。Java参数传递只有值拷贝,没有引用传递。本文将讨论基本类型、引用类型和String类型。

1.基本类型
基本类型作为实参时,该值会拷贝一份在方法中使用,方法中对参数的改变不会影响原来的值;
public class TestString {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=5;
change(i);
System.out.println(i);
}
private static void change(int i){
i=10;
}
}
输出:5
2.引用类型
引用类型的值是堆中数据所占内存的首地址,当引用类型作为方法实参时,编译器会在复制一份该地址在方法中使用,此时有两种情况:
1)如果方法改变了引用指向的数据的内容,则方法外的引用指向的内容也会改变;
2)如果方法将此引用指向了其他的内存地址,则方法外该引用执行的内容不变;
第一种情况:
public class TestString {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t1=new Test();
changeContent(t1);
System.out.println(t1.s);
}
private static void changeContent(Test t){
t.s="change content";
}
}
class Test{
String s="empty";
}
output:
change content
第二种情况:
public class TestString {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t1=new Test();
changeReference(t1);
System.out.println(t1.s);
}
private static void changeReference(Test t){
t=new Test();
t.s="changeRefence";
}
}
class Test{
String s="empty";
}
output:
empty
3.当string类型作为参数时,由于string的不可变的性质,因此当方法中改变了string的内容时,方法外参数指向的内容仍然不变
public class TestString {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="old";
change(s);System.out.println(s);
}
private static void change(String s){
s="change string";
}
}
output:
old
学习Java的同学都掌握了Java参数传递的知识点了吗?如果还没有可以上博学谷官网在线学习有关Java参数传递的知识点。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
用什么软件学Java比较好?Java编程软件推荐
用什么软件学Java比较好?相信这是所有初学者刚刚入门时共同的问题,本文就来为大家推荐几款好用常见的Java编程软件,希望能帮助初学者减轻学习Java的负担。
16065
2019-09-02 19:24:38
JDBC新手快速入门教程
在我们的日常生活中所使用的各种程序、网页都会把数据进行整理,然后按照一定的规则合理的展示给我们。那么,程序和数据库是通过什么进行数据交互的呢?答案是通过JDBC。JDBC是所有Java程序员必备的技能,对于初学Java的新手而言也是必须掌握的内容。下面我们一起进入JDBC小白快速入门教程吧!
7317
2020-08-13 12:14:13
0基础学Java需要多少小时?
博学谷零基础系统学习的Java课程课时348小时,至少要学习5-6个月的时间,不同的课程大纲课时也不一样,具体课看课程的详情;Java基础课程课时在5-20小时不等,根据自己的阶段目标不同课时差距比较大。
6658
2020-12-29 10:21:47
where条件查询怎么使用?注意哪些问题?
where条件查询怎么使用?注意哪些问题?where语句支持的运算符比较运算符、逻辑运算符、模糊查询、范围查询、空判断等,为了更精确的查询出特定数据,需要学习SQL语法where条件查询。
6515
2022-01-12 16:13:59
Java 基础语法入门学习哪些内容?
Java 基础语法入门学习哪些内容?学习Java基础知识涉及到很多专业名词如类、对象、方法和实例变量,这些名词到底是什么意思呢?如某个Java 程序可以认为是一系列对象的集合,这些对象通过调用彼此的方法来协同工作。
6977
2022-04-15 14:23:20
