当前位置: 首页 > news >正文

(程序设计语言)传值、传引用

1、传值(传递值)

在传值的情况下,函数接收到的是参数的一个副本,而不是参数本身。这意味着函数内部对参数的修改不会影响到原始值。传值通常用于基本数据类型(如整数、浮点数、布尔值等)的传递。

        基本数据类型的传递(按值传递)

public class PassByValueExample {
    public static void changeValue(int x) {
        x = 2;
    }

    public static void main(String[] args) {
        int value = 1;
        changeValue(value);
        System.out.println(value); // 输出 1,因为传值时修改的是副本,不影响原始值
    }
}

在这个例子中,changeValue 方法接收一个整数参数 x,但它接收的是 value 的副本,而不是 value 本身。因此,changeValue 方法内部对 x 的修改不会影响到 value 的值。 

2、传引用(传递引用)

在传引用的情况下,函数接收到的是参数的引用,即参数的地址或指针,而不是参数的副本。这意味着函数内部对参数的修改会影响到原始值。传引用通常用于复合数据类型(如列表、字典、对象等)的传递。

         引用类型的传递(按值传递引用)

import java.util.ArrayList;

public class PassByReferenceExample {
    public static void changeList(ArrayList<Integer> list) {
        list.add(3);
    }

    public static void main(String[] args) {
        ArrayList<Integer> myList = new ArrayList<>();
        myList.add(1);
        myList.add(2);
        changeList(myList);
        System.out.println(myList); // 输出 [1, 2, 3],因为传引用时修改的是原始值
    }
}

 在不同的编程语言中,传值和传引用的实现方式可能有所不同。一些语言可能在传递大型对象时使用传引用,以避免复制大量数据,而其他语言可能始终使用传值或者提供了显式的语法来选择传值或传引用。对于理解函数调用中参数的行为,了解这两种传递方式是非常重要的。

相关文章:

(程序设计语言)传值、传引用

1、传值&#xff08;传递值&#xff09;&#xff1a; 在传值的情况下&#xff0c;函数接收到的是参数的一个副本&#xff0c;而不是参数本身。这意味着函数内部对参数的修改不会影响到原始值。传值通常用于基本数据类型&#xff08;如整数、浮点数、布尔值等&#xff09;的传递…...

一次基类类型对象无法被传递问题的分析

看下面一段代码&#xff1a; // proj2.cpp #include <iostream> using namespace std; class CharShape { public:CharShape(char ch) : _ch(ch) {};virtual void Show() 0; protected:char _ch; // 组成图形的字符 }; class Triangle : public CharShape { public:Tr…...

windows设置Redis服务后台自启动

问题 在日常开发过程中&#xff0c;redis是我们常用的缓存工具&#xff0c;但是由于redis对于Linux系统进行开发的&#xff0c;在Linux系统里可以通过修改redis.conf从而从而实现后台启动。 daemonize no 改成 daemonize yes 但是在window上如何也进行后台运行呢&#xff0c…...

掌握Linux常用命令,扫平面试需求障碍

cd 切换目录。 > cd ../ #切换到父级目录 > cd /tmp # 切换到/tmp目录 > cd ~ # 切换到当前用户的家目录 ls命令 查看文件与目录的命令&#xff0c;list 的缩写。 > ls -l #列出长数据串&#xff0c;包含文件的属性与权限数据等 > ls -a #列出隐藏…...

c语言之文件打开模式

在c语言中&#xff0c;文件打开模式如下 r读模式: 允许对文件读取信息。若文件不存在&#xff0c;则会报错 w写模式&#xff1a; 允许向文件写入信息&#xff0c;若文件不存在&#xff0c;则创建一个文件 #include<stdio.h>int main() {FILE *fp;int i;char ay;fpfo…...

与禹老师学前端vue3学习汇总

24.5.15&#xff1a; 创建Vue3工程 1.确定自己电脑有没有nodejs环境&#xff0c;在cmd中输入node&#xff0c;如果出现Node.js的版本号说明已经有这个环境了&#xff0c;否则搜索Node.js安装 2.先在D盘创建一个文件夹Vue3_Study&#xff0c;然后在这个空文件夹中右键选择终端…...

Linux网络编程——HTTP协议的理解与运用

目录 前言 一、认识URL 二、认识HTTP样例 三、HTTP的报头内容 1.url 2. Content-Type 3.Method 方法 1.GET方法 2.POST方法 4、状态码 5.cookie和session 前言 我们知道&#xff0c;协议就是一种约定&#xff0c;客户端与服务端统一的用这种约定进行传输数据。我们…...

RestTemplate接口请求发送json、form数据格式以及处理接口错误状态码400 null

在使用RestTemplate发送HTTP请求时&#xff0c;你可以通过不同的方式发送JSON或表单数据&#xff08;application/x-www-form-urlencoded&#xff09;。同时&#xff0c;处理接口错误状态码&#xff08;如400&#xff09;和返回null的情况也是很重要的。以下是一些示例代码&…...

《Python编程从入门到实践》day29

# 昨日知识点回顾 修改折线图文字和线条粗细 矫正图形 使用内置格式 # 今日知识点学习 15.2.4 使用scatter()绘制散点图并设置样式 import matplotlib.pyplot as plt import matplotlib matplotlib.use(TkAgg)plt.style.use(seaborn-v0_8) # 使用内置格式 fig, ax plt.subpl…...

UIKit之图片浏览器

功能需求 实现一个图片浏览器&#xff0c;点击左右按钮可以切换背景图&#xff0c;且更新背景图对应的索引页和图片描述内容。 分析&#xff1a; 实现一个UIView的子类即可&#xff0c;该子类包含多个按钮。 实现步骤&#xff1a; 使用OC语言&#xff0c;故创建cocoa Touch类…...

如何查看SNMP设备的OID

什么是OID和MIB OID OID 代表对象标识符。 OID 唯一地标识 MIB 层次结构中的托管对象。 这可以被描述为一棵树&#xff0c;其级别由不同的组织分配。MIB MIB&#xff08;管理信息基&#xff09;提供数字化OID到可读文本的映射。 使用MIB Browser扫描OID 我的设备是一台UPS SN…...

什么?你设计接口什么都不考虑?

如果让你设计一个接口&#xff0c;你会考虑哪些问题&#xff1f; 1.接口参数校验 接口的入参和返回值都需要进行校验。 入参是否不能为空&#xff0c;入参的长度限制是多少&#xff0c;入参的格式限制&#xff0c;如邮箱格式限制 返回值是否为空&#xff0c;如果为空的时候是…...

2024年3月 青少年等级考试机器人理论真题二级

202403 青少年等级考试机器人理论真题二级 第 1 题 一个机器小车&#xff0c;用左右两个电机分别控制左右车轮&#xff0c;左侧电机转速是100rpm&#xff0c;右侧电机转速是50rpm&#xff0c;则此机器小车&#xff1f;&#xff08; &#xff09; A&#xff1a;原地右转 B&am…...

C语言学习【printf函数和scanf函数】

C语言学习【printf函数和scanf函数】 printf()函数和scanf()函数可以让用户与程序交流&#xff0c;是输入/输出函数 printf()函数 请求printf()函数打印数据的指令要与待打印数据的类型相匹配。例如&#xff0c;打印整数时使用%d&#xff0c;打印字符时使用%c。这些符号被称…...

shell正则表达式

sort命令 以行为单位对文件内容进行排序&#xff0c;也可以根据不同的数据类型来排序 比较原则是从首字符向后&#xff0c;依次按ASCII码值进行比较&#xff0c;最后将他们按升序输出。 sort 对行内容进行升序排序 XXX | sort 选项 sort 选项 文件 常用选项&#x…...

react组件渲染性能优化之函数组件-useCallback使用

useCallback主要就是对函数进行缓存,useCallBack这个Hooks主要是解决React.memo不能缓存事件的问题 useCallBack(fn, dependencies) &#xff1a;fn想要缓存的函数&#xff0c;dependencies有关是否更新 fn 的所有响应式值的一个列表 比如&#xff1a;UseCallBackOptimize组件…...

【C++】:string类的基本使用

目录 引言一&#xff0c;string类对象的常见构造二&#xff0c;string类对象的容量操作三&#xff0c;string类对象的访问及遍历操作四&#xff0c;string类对象的修改操作五&#xff0c;string类非成员函数六&#xff0c;整形与字符串的转换 引言 string 就是我们常说的"…...

多线程的代码案例

目录 单例模式 饿汉模式 懒汉模式 阻塞队列 生产者消费者模型意义: 阻塞队列使用方法 实现阻塞队列 阻塞队列实现生产者消费者模型 定时器 实现简单的定时器 工厂模式 线程池 为啥呢? 从池子里面取 比 创建线程 效率更高 线程池的创建 怎么填坑 ThreadPoolExec…...

什么是Java中的设计模式?请列举几种常见的设计模式

一、引言 在软件开发中&#xff0c;设计模式是解决特定设计问题的最佳实践或通用解决方案。Java作为一种广泛使用的编程语言&#xff0c;其设计模式在软件设计和架构中起着至关重要的作用。设计模式不仅提高了代码的可读性和可维护性&#xff0c;还使得代码更加灵活和可扩展。…...

绘制奇迹:Processing中的动态图形与动画

&#x1f680; 欢迎回到Processing的世界&#xff0c;你的艺术编程航程刚刚开始。在我们的入门篇中&#xff0c;你已经学会了如何用Processing绘制基本的静态图形。现在&#xff0c;让我们一起探索Processing强大的动态图形和动画功能&#xff0c;释放你的创造力&#xff0c;走…...

3步解锁Windows运行安卓应用:APK-Installer轻量解决方案

3步解锁Windows运行安卓应用&#xff1a;APK-Installer轻量解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化办公与娱乐融合的今天&#xff0c;安卓应用…...

MediaPipe模型优化:从性能瓶颈到实时推理的全流程解决方案

MediaPipe模型优化&#xff1a;从性能瓶颈到实时推理的全流程解决方案 【免费下载链接】mediapipe Cross-platform, customizable ML solutions for live and streaming media. 项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe 问题发现&#xff1a;计算机…...

告别格式枷锁:ncmdumpGUI让音乐自由播放变得触手可及

告别格式枷锁&#xff1a;ncmdumpGUI让音乐自由播放变得触手可及 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 开篇痛点直击&#xff1a;那些被NCM格式困住的…...

React+GSAP实战:5种酷炫滚动动画效果完整代码分享(含ScrollTrigger配置)

ReactGSAP实战&#xff1a;5种酷炫滚动动画效果完整代码分享&#xff08;含ScrollTrigger配置&#xff09; 在现代Web开发中&#xff0c;流畅的滚动动画已经成为提升用户体验的关键因素。作为前端开发者&#xff0c;我们经常需要实现各种吸引眼球的滚动效果&#xff0c;从简单的…...

告别重复操作:用快马生成智能浏览器扩展,极速提升前端调试与数据提取效率

作为一名前端开发者&#xff0c;每天都要和网页元素打交道。调试样式、提取数据这些重复性工作&#xff0c;如果全靠手动操作&#xff0c;不仅效率低下还容易出错。最近我发现用InsCode(快马)平台可以快速生成定制化的浏览器扩展&#xff0c;把那些繁琐操作变成一键自动化&…...

NCCL中RoCE与RDMA的深度解析:如何优化分布式训练网络性能

1. 为什么RoCE和RDMA对分布式训练如此重要&#xff1f; 第一次接触分布式训练时&#xff0c;我盯着日志里不断跳动的通信耗时直发愁。8块GPU明明都在满负荷运转&#xff0c;但总训练时间就是比单卡8要长不少。后来用NVIDIA的Nsight工具一分析&#xff0c;发现超过30%的时间都花…...

企业级低代码平台JeecgBoot快速搭建指南:从环境配置到实战应用

企业级低代码平台JeecgBoot快速搭建指南&#xff1a;从环境配置到实战应用 【免费下载链接】jeecg-boot 一款 AI 驱动的低代码平台&#xff0c;提供"零代码"与"代码生成"双模式——零代码模式一句话搭建系统&#xff0c;代码生成模式自动输出前后端代码与建…...

颠覆传统游戏体验:Sunshine云游戏串流平台让你随时随地畅玩PC游戏

颠覆传统游戏体验&#xff1a;Sunshine云游戏串流平台让你随时随地畅玩PC游戏 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾梦想过在旅途中用平板继续昨晚未完成的3A大作…...

为什么选择ODB++格式?Cadence与HyperLynx数据交换的最佳实践

为什么选择ODB格式&#xff1f;Cadence与HyperLynx数据交换的最佳实践 在高速PCB设计领域&#xff0c;数据格式的选择直接影响着设计到制造的整个流程效率。当工程师需要在Cadence Allegro和HyperLynx之间传递设计数据时&#xff0c;ODB正逐渐成为行业首选。这种智能数据格式不…...

3分钟掌握的网盘密码解析黑科技:让提取码自动获取效率提升10倍

3分钟掌握的网盘密码解析黑科技&#xff1a;让提取码自动获取效率提升10倍 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经因为寻找百度网盘分享链接的提取码而浪费大量时间&#xff1f;传统方式下&#xff0c;用户…...