1. 数组的引用传递
public class TestArray {
public static void changeAry1(int[] ary){
int[] ary1 = {9,9,9};
ary = ary1;
}
public static void changeAry2(int[] ary){
ary[0] = 100;
}
public static void main(String[] args) {
int[] ary = {1,2,3};
System.out.println(Arrays.toString(ary));
changeAry1(ary);
System.out.println(Arrays.toString(ary));
changeAry2(ary);
System.out.println(Arrays.toString(ary));
}
}
2. 对象的引用传递
public class TestObject {
public static void change1(Person p){
p = new TestObject().new Person();
p.age= 100;
p.name = "Lily";
}
public static void change2(Person p){
Person pNew = new TestObject().new Person();
pNew.age= 200;
pNew.name = "Mary";
p = pNew;
}
public static void change3(Person p){
p.age= 200;
p.name = "Tomy";
}
public static void main(String[] args) {
Person p = new TestObject().new Person();
p.age = 50;
p.name="John";
change1(p);
System.out.println(p);
change2(p);
System.out.println(p);
change3(p);
System.out.println(p);
}
class Person{
private int age;
private String name;
public String toString(){
return this.age+","+this.name;
}
}
}
3. 再写一个jdk自带类的引用传递
public class TestOtherObject {
public static void change1(List list){
list = null;
}
public static void change2(List list){
list.add(null);
}
public static void main(String[] args) {
List list = new ArrayList();
change1(list);
System.out.println(list.size());
change2(list);
System.out.println(list.size());
}
}
4. 字符串也是引用类型,也是引用传递
public class TestString {
public static void changeStr1(String str){
String newValue = "changeValue";
str = newValue;
// 或者直接str = "changeValue"; 也是一样
}
public static String changeStr2(String str){
str = "changeValue";
return str;
} public static void main(String[] args) {
String str = "hello";
System.out.println(str);
changeStr1(str);
System.out.println(str);
str = changeStr2(str);
System.out.println(str);
}
}

如何理解java的引用传递的更多相关文章

  1. Java Object 引用传递和值传递

    Java Object 引用传递和值传递 @author ixenos Java没有引用传递: 除了在将参数传递给方法(或函数)的时候是"值传递",传递对象引用的副本,在任何用&q ...

  2. 如何理解Java的值传递

    结论 为了加深印象,先把结论放在文章开头. ++Java中只有值传递++. 形参与实参 在理解Java的值传递 实参Argument 实际参数,主调用函数传递给调用函数的参数 形参Parameter ...

  3. Java参数引用传递之例外:null

    今天写链表的时候写了一个函数,实参是一个空链表,应该是按引用传参,但是在函数内修改了链表,外部的链表没有变化. 原来是null作为参数传递的时候,就不是引用传参了. 引自:http://blog.cs ...

  4. Java没有引用传递机制,C#有。

    Java没有引用传递机制,C#有: public class Obj { private Integer myValue; public Integer getMyValue() { return m ...

  5. 堆栈详解 + 彻底理解Java的值传递和引用传递

    本文旨在用最通俗的语言讲述最枯燥的基本知识 学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨 ...

  6. java中 引用传递、值传递的理解(数组,自定义类,基本数据类型,String类)

    代码部分: public static void main(String[] args) { testInt(); testString(); testArray(); testX(); } publ ...

  7. Java中引用传递

    //Java中的引用传递 class Ref1{ int temp = 10 ; String Str = "hello"; } public class HelloWorld { ...

  8. 有关java的引用传递,直接操作对象本身。直接删除BE的value中某值

    HashSet<String> refRegions = BE.get(regionName);    HashSet<String> values = new HashSet ...

  9. 理解Java的引用对象

    SoftReferenceWeakReference 的特性基本一致, 最大的区别在于 SoftReference会尽可能长的保留引用,不会在GC时就回收对象,而是直到JVM 内存不足时才会被回收(虚 ...

随机推荐

  1. mongodb分片

    在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用这个来 ...

  2. LINQ&EF in 用算的写法 like

  3. Log4j 简介及初步应用

    使用2.5版本有问题,暂时没有解决,也许是JDK版本不兼容的原因.因此使用的是log4j-1.2.8.jar 1.三个组件 日志记录器  ——  Logger.输出目的地 —— Appender.输出 ...

  4. 字符串查找 cmd find命令

    find /i "ora-" *.log 我对findstr是如此的依赖,以至于当我向各位讲解find命令的时候,我还得老老实实地在cmd窗口中敲下 find /? 这条命令,然后 ...

  5. Outing

    Outing 题目描述 Organising a group trip for the elderly can be a daunting task... Not least because of t ...

  6. OpenGL--------纹理处理

    我们可以将像素数据按照矩形进行缩小和放大,但是还不足以满足我们的要求.例如要将一幅世界地图绘制到一个球体表面,只使用glPixelZoom这样的函数来进行缩放显然是不够的.OpenGL纹理映射功能支持 ...

  7. sonar tomacat配置

    最近在学习Sonar,配置了好几天,才搭建起来环境,为自己的学习能力感到汗颜,赶紧在此记录一下,所谓好记性不如烂笔头. 1.Sonar介绍 Sonar是一个用于代码质量管理的开源平台,用于管理Java ...

  8. m,mm,mmm的用法

    通过查看android源码目录下的build/envsetup.sh文件,可知: - m:       Makes from the top of the tree. - mm:      Build ...

  9. 在MFC对话框中添加状态栏

    如果我们想实现在MFC对话框中添加状态栏显示,如何例如分状态栏为两列,第一列显示鼠标的当前位置,第二列显示当前的时间,(如上图). 1. 首先,打开在资源视图的String Table并添加两个ID: ...

  10. Ubuntu 12.04和Windows 7双系统安装图解

    http://wenku.baidu.com/link?url=PZlnNOhY0SjHDW-teFFnCMzPYJVjx7vj6yWY-o5HHFLuFqhLI4uFcQVu_y0_6i7vpSnz ...