在线客服
扫描二维码
下载博学谷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数据库开发、SSM到Spring Boot。Java的技术分支很多,要想全部掌握几乎不可能,但需要有从中精通1~2个部分。Java是通性的,Java的所有编程思路都是“面向对象”的编程。小编还整理了开发过程中涉及到的java开发工具
9613
2019-04-10 00:07:52
Java面试题答疑解惑之数组去重
数组去重是Java面试者常常会遇到的面试题之一。不知道大家有没有想过,为什么面试官总是喜欢询问求职者这个问题?其实,关于数组去重的问题表面上看起来并不难,但是通过面试者对相关问题的回答,可以充分检验出面试者的Java能力水平究竟如何,以及对于考虑问题的思维方式够不够全面。因此,大家千万别觉得面试官问你数组去重的问题,就只是一个简单的问题。
6817
2020-01-10 19:09:11
什么是Docker?Docker是如何工作的?
Docker作为一个开放源代码软件项目,其优势是体积小,运行速度快,因此掌握Docker技术是十分有必要的。想要搞清楚Docker的概念和工作原理,其实并不难,下面我们一起来简单聊聊Docker吧!
6215
2020-06-30 17:27:26
Java培训哪个机构比较好?教你如何识别
目前市面上有很多IT培训机构,大家要了解学校的学科培训方向,其次是教师的授课资历讲课经验,网上查询相关Java培训机构的信息重点是口碑如何。目前市场上有很多Java培训机构,培训时间和教学方法都大不相同,让很多同学难以选择,因此要有一套自己的辨别方法。
6103
2020-07-13 11:18:13
Java程序员必须看哪些书?
Java程序员必须看哪些书?书籍是我们学习的好工具,书籍经过时间的验证总结了一些Java开发中的宝贵经验,入门Java从零基础到中高级的Java程序员需要终身学习,小编整理了Java程序员必看的书单分享给大家。
5850
2020-07-20 11:25:07
