首页 > 编程语言 >Java是值传递

Java是值传递

时间:2024-02-17 22:45:18浏览次数:32  
标签:Java name 形参 传递 String static 变量

一、定义

值传递:当⼀个参数按照值的⽅式在两个⽅法之间传递时,调⽤者和被调⽤者其实是⽤的两个不同的变量——被调⽤者中的变量(原始值)是调⽤者中变量的⼀份拷⻉,对它们当中的任何⼀个变量修改都不会影响到另外⼀个变量。

引用传递:当⼀个参数按照引⽤传递的⽅式在两个⽅法之间传递时,调⽤者和被调⽤者其实⽤的是同⼀个变量,当该变量被修改时,双⽅都是可⻅的。

 

二、举例

值类型:

public static void main(String[] args) {
        int i = 5;
        f(i);
        System.out.println("i = " + i);
    }

    public static void f(int j) {
        j = 10;
    }

调用函数 f() 时,会将 main 中 形参 i 的值赋值给形参 j。这是两个不同的变量,对变量 j 的操作不会影响变量 i 

 

引用类型:

    public static void main(String[] args) {
        String name = "张三";
        f(name);
        System.out.println("name = " + name);
    }

    public static void f(String name) {
        name = "李四";
    }

由于name是引用类型,name中保存的值是一个地址,调用函数 f() 时,会将这个地址传给形参 name,之后形参 name 中会保存字符串 "李四" 的地址,形参 name 的地址没有改变,输出的自然是张三了。

标签:Java,name,形参,传递,String,static,变量
From: https://www.cnblogs.com/shiguangrusuo/p/18018553

相关文章

  • 10 个图像悬停效果 CSS & JavaScript 代码片段
    悬停效果一直是向网站添加交互元素的最简单方法之一,我们看到它们经常用于突出显示文本链接或按钮。悬停效果尤其强大的一个领域是当它们应用于图像时,无论是作为小型卡片布局的一部分还是大型相册的一部分,都可以产生很棒的效果。今天,我们将向您展示设计师将悬停效果集成到图像中的......
  • JavaSE第五步 —— 运算符
    一、运算符运算符的分类不尽相同,以下都是参考的相关书籍名称符号算数运算符一元运算符++、--算术运算符二元运算符+、-、*、/、%赋值运算符=扩展运算符+=、-=、*=、/=关系运算符>、<、=、>=、<=、==、!=、instanceof逻辑运算符&&、位......
  • 《安富莱嵌入式周报》第332期:铷时钟控制板,航天战斗机C++代码标准,免费开源芯片设计,在线
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版https://www.bilibili.com/video/BV1tU421d7ZK/目录:1、Rubidium铷时钟控制板2、开源小设计,简易万用表连通性测试仪3、免费开源芯片设计软件Electric4、在线电路仿......
  • Java并发工具类
    CopyOnWriteArraySet是Java中的线程安全集合类,它是CopyOnWriteArrayList的Set版本。它通过使用"写时复制"(Copy-On-Write)策略来实现线程安全。特点:线程安全:CopyOnWriteArraySet是线程安全的,可以在多线程环境下安全地进行读取和遍历操作,而不需要额外的同步措施。写时复制:当对集合......
  • Java集合篇之深入解析ArrayList,这六问你答的上来吗?
    写在开头开年第一篇,先祝各位新的一年身体健康,学业有成,事业有成哈,春节期间就是咔咔乱吃,咔咔乱玩,把学习都抛一边子去了,已经9天没有学习了,深深的懊悔,从今天开始,2024年的学习正式开启,一起给我猛冲!!!书接上回,我们开启了Java集合部分的学习,今天我们就来看一下List,其中它的核心有两个,一个......
  • JAVA笔记(复习)(新)
    概述重要特点Java语言是面向对象的Java语言是健壮的。Java的强类型机制,异常处理,垃圾的自动收集等是Java程序健壮性的重要保证Java语言是跨平台性的。Java语言是解释型的JDK,JRE和JVM的包含关系JDK=JRE+开发工具集JRE=JVM+JavaSE标准类库(java核心类库)如果只想运行开发......
  • 【Java 并发】【应用】经典的生产者、消费者
    1  前言闲来无事,复习复习并发中常用到的一些协调多线程的工具哈。2 基于Java队列的实现生产者跟消费者之间要协调,他俩会出现碰撞的地方就是存放东西的容器,所以我们可以直接拿一个线程安全的队列来做容器即可,比如我这里用的ArrayBlockingQueue:/***@author:xjx*@d......
  • 【常见问题】Java 8 date time type `java.time.LocalDateTime` not supported by def
    问题描述将一个包含LocalDateTime对象的集合进行序列化和反序列化时,可能会遇到以下异常:Causedby:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:Java8date/timetype`java.time.LocalDate`notsupportedbydefault:addModule"com.fasterxml.jack......
  • 关于thrift python接口和java通信出现问题解决
    真的无语,搞了一个下午。使用thrift出现错误,先说一下遇到第一个错误,如下图:那时候代码是这叼样```if__name__=='__main__':handler=MessageServiceHandler()processor=MessageService.Processor(handler)transport=TSocket.TServerSocket(None,"9090"......
  • Java中正则表达式(regex)匹配多行(Pattern.MULTILINE和Pattern.DOTALL模式)
    ​ Java中,正则表达式(regex)的处理是通过Pattern类实现的。Pattern类提供了多种标志(flags)来修改正则表达式的行为。其中,Pattern.MULTILINE和Pattern.DOTALL是两个常用的模式,它们分别用于处理多行文本和让.匹配包括行终止符在内的任意字符。 参考文档:Java中正则表达式(regex)匹......