在线客服
扫描二维码
下载博学谷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参数传递的知识点。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
如何提升MySQL数据库性能优化能力
数据库是按照数据结构来组织、存储和管理数据的仓库,在大数据和精细化运营时代,企业越来越注重用户的数据的收集。然而虽然数据库可以存放大量,甚至上亿的数据,但是这些数据并非无序的堆放在数据库的。为了提高数据库的性能,提高数据的可用性,作为开发者必须对数据库的性能进行优化。本文就为大家介绍如何提升MySQL数据库性能优化能力。
6141
2019-11-13 18:30:42
Java基础学习笔记之IO流案例
本文又是一篇关于Java基础学习的总结笔记,大家要是有学习需要可以接着看下去。众所周知,IO流指的是输入输出流,用来处理设备上的数据,这里的设备指硬盘、内存、键盘录入、网络传输等。本文要为大家介绍 IO流案例,主要内容包括案例需求、步骤分析、代码实现等等,现在一起来看看吧!
4940
2019-12-30 16:38:08
Java入门到做项目需要多久?学习周期长吗?
Java入门到做项目需要多久因人而异,一般来说零基础参加Java培训班学习周期在6个月左右,初学者Java入门到上手做项目至少要3个月,前期重点学习Java基础知识。Java入门到做项目具体的学习时间有长有短,很多人学Java抓不到学习重点,找不到学习Java的方向,花费大量的时间和精力效果不佳。
9841
2020-09-30 14:16:09
在Java培训班听不懂怎么办?怎么学?
不少人在学习Java的时候反馈听不懂学不会,其中有些人是零基础转行或是了解一些基础知识,刚开始听不懂很正常不要太过焦虑,掌握一些学习的方法。学不懂很正常,毕竟零基础更主要的是理解基础意思然后敲代码,先从简单的代码开始,慢慢加深,一点一滴的积累。
5702
2021-02-20 15:23:51
MySQL索引种类有哪些?底层实现原是什么
MySQL索引种类有哪些?底层实现原是什么?MySQL索引分为普通索引、唯一索引、主键索引、联合索引(又叫复合索引)、全文索引。索引是在Mysql的存储引擎层中实现的而不是在服务层实现的。所以每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型的。
4112
2022-05-17 18:05:26
