`
zk_chs
  • 浏览: 215430 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java中只有值传递

阅读更多

由于最初的代码过于臃肿,所以上午改了下,结果却发生了空指针的情况
查找原因后发现是参数传递的问题
上网翻了资料后得出结论,java中只有值传递,下面举个例子:

class A {

}

class Test {
  public static void main (String[] args){
    A a = new A();
    System.out.println("main:" + a); // 输出a的初始地址
    change(a);
    System.out.println("main:" + a); // 输出change之后a的地址
  }
  private static void change (A a){
    System.out.println("change:" + a); // 输出参数a的地址
    a = new A();
    System.out.println("change:" + a); // 输出参数a的地址
  }
}



结果是:

main:A@677327b6
change:A@677327b6
change:A@14ae5a5
main:A@677327b6



可见change中无法改变main中a对象的引用地址,因为传入的只是a对象的引用地址的值,而不是a这个引用变量本身

以上仅仅只是个人见解;

 

分享到:
评论

相关推荐

    深入了解为什么Java中只有值传递?

    Java 中只有按值传递的原因是因为 Java 程序设计语言的设计理念。在 Java 中,方法参数的传递方式是按值传递的,而不是按引用传递的。这意味着,当方法接收到参数时,实际上是接收到参数的副本,而不是原始参数本身...

    Java:按值传递还是按引用传递详细解说

    ### Java中的按值传递与按引用传递详解 #### 一、引言 在Java编程语言中,关于参数传递的方式一直存在两种观点:一种认为Java仅支持按值传递,另一种则指出Java同时支持按值传递和按引用传递。实际上,这两种观点...

    为什么Java只有值传递

    我们先看一下值传递和引用传递的概念...值传递的函数中无法改变原始对象,引用传递中函数 可以改变原始对象 我们通过例子理解一下Java的值传递: public static void main(String[] args) { int a = 10; int b = 20;

    「Java学习+面试指南」部分内容大部分是Java程序员所需要掌握的核心知识

    基础知识点/面试题总结:(必看):Java基础常见知识点&面试题总结(上)Java基础常见知识点&面试题总结(中)Java基础常见知识点&面试题总结(下)重要知识点详解:为什么Java中只有值传递?Java序列化详解泛型&...

    【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    为什么 Java 中只有值传递? Java 序列化详解 泛型&通配符详解 Java 反射机制详解 Java 代理模式详解 BigDecimal 详解 Java 魔法类 Unsafe 详解 Java SPI 机制详解 Java 语法糖详解 集合 知识点/面试题总结: Java ...

    「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识 准备 Java 面试,首选.zip

    为什么 Java 中只有值传递? Java 序列化详解 泛型&通配符详解 Java 反射机制详解 Java 代理模式详解 BigDecimal 详解 Java 魔法类 Unsafe 详解 Java SPI 机制详解 Java 语法糖详解 集合 知识点/面试题总结 : Java...

    免费开源-【Java学习+面试指南】部分内容大部分是Java程序员所需要掌握的核心知识

    基础知识点/面试题总结:(必看):Java基础常见知识点&面试题总结(上)Java基础常见知识点&面试题总结(中)Java基础常见知识点&面试题总结(下)重要知识点详解:为什么Java中只有值传递?Java序列化详解泛型&...

    「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识

    为什么 Java 中只有值传递? Java 序列化详解 泛型&通配符详解 Java 反射机制详解 Java 代理模式详解 BigDecimal 详解 Java 魔法类 Unsafe 详解 Java SPI 机制详解 Java 语法糖详解 集合 知识点/面试题总结: Java ...

    34个java问题.pdf

    为什么 Java 中只有值传递 Java中所有的参数传递本质上都是值传递。这是因为Java传递的是对象的引用而非对象本身,但这个引用被视为值的一部分。 #### 29. 简述线程、程序、进程的基本概念。以及他们之间关系是...

    浅谈Java中真的只有值传递么

    特殊的是,String虽然是一种引用类型,但在参数传递中表现得像是值传递。这是因为String是不可变的,当我们对String对象进行赋值操作时,实际上创建了一个新的String对象。例如,在例子3中,change()方法中param = ...

    Java高级资深核心知识全面解析.pdf

    方法的返回值用于返回计算结果,Java中只有值传递,没有引用传递。方法的重载和重写是多态性的体现,深拷贝和浅拷贝则关乎对象复制的深度。 面向对象编程是Java的核心,包括类、对象、封装、继承和多态。类是对象的...

    优质资源汇总【更新ing...】

    Java 中只有值传递,因为 Java 中的参数传递是值传递的。 3. 重载和重写的区别: 重载是方法名相同、参数列表不同的方法,而重写是子类对父类方法的重写。 4. 深拷贝 vs 浅拷贝: 深拷贝是将对象完全复制,而浅...

    浅议JAVA语言中的参数传递.pdf

    一些书中认为,在 Java 中参数传递都是按值传递的,但是这种说法存在一定的模糊性。本文将对 Java 语言中的参数传递进行详尽的说明。 参数传递是指在方法调用时,传递参数的方式。在 Java 中,参数传递可以分为按值...

    java中参数传递方式详解

    在 C++ 语言中,这两种传递方式都是合法的,而在 Java 语言中,只有按值传递是一种合法的传递方式。 知识点: * 按值传递和按引用传递是两种不同的参数传递方式 * 按值传递是指函数参数是通过值来传递的 * 按引用...

    java及C++中传值传递、引用传递和指针方式的理解

    总结来说,Java只有值传递,这确保了方法不能直接修改对象,只能通过返回值或全局变量间接影响。C++则提供了值传递、引用传递和指针传递,让程序员可以根据需求选择最适合的方式来操作函数参数。值传递确保了函数的...

    Java中函数是值传递还是引用传递?

    有说有值传递和引用传递两种,也有说只有值传递的,这里只说下个人见解  先看一个例子 public class Test1 { public static void main(String[] args) { int a = 10; changeNum(a); System.out.println("main...

    面试小抄第二版.pdf

    **值传递与引用传递**:Java中只有值传递,对于引用类型,传递的是对象引用的副本,而不是对象本身。 32-34. **equals与hashCode**:equals比较对象内容,hashCode用于哈希表定位,重写equals必须重写hashCode,...

    毕业设计电商网站源码-JAVA-:JAVA-

    毕业设计电商网站源码 ...中只有值传递、==与equals、 hashCode与equals) (String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的?、什么是反射机制?反射机制的应用场景有哪些?....

    java8 中文文档

    - **函数式接口**:为了支持 Lambda,Java 8 引入了函数式接口,即只有一个抽象方法的接口。例如,`Runnable`、`Callable` 和新的 `Function`、`Predicate` 等接口。 - **Stream API**:Java 8 提供了 Stream API...

Global site tag (gtag.js) - Google Analytics