java面试题之传值和传址

Java是传值还是传址引用 立即下载

简介

这个是经常出去面试时候,会遇到的一个考点,面试官会出一些基本的传值和传址的题,我们牢牢记住下面这个结论:基本数据类型传递的是值,引用数据类型传递的是地址。

经典面试题

public class ParameterTest {
    public static void main(String[] args) {
        int i = 1;
        String str = "hello";
        Integer num = 200;
        int[] arr = {1, 2, 3, 4, 5};
        MyData myData = new MyData();
        change(i, str, num, arr, myData);

        System.out.println("i=" + i + "\n"
                + "str=" + str + "\n" +
                "num=" + num + "\n" + "arr=" + Arrays.toString(arr) + "\n"
                + "my.a=" + myData.a);
    }

    public static void change(int j, String s, Integer n, int[] a, MyData m) {
        j += 1;
        s += "world";
        n += 1;
        a[0] += 1;
        m.a += 1;
    }
}

class MyData {
    int a = 10;
}

输出结果

在这里插入图片描述

面试考点

  1. java中的参数传递只有传值和传址。
  2. 基本类型是传值,无论在方法中进行了何种操作,原值不变。
  3. 其他引用类型作为参数,是传地址值,方法中对此引用类型数据做了修改,原值会发送变化。
  4. 当参数类型是对象的时候,如果对对象的值进行了改变,也会改变原对象的值。
  5. 特殊类型:如String和基本的包装类型等不可变的特性。

总结

栈:基本数据类型、数据的引用变量,这两种存放在栈内存。
堆:new创建的对象(包换数组),是存放在堆内存中,同时分配一个内存地址值,并将其附值给引用他的变量,所以到底是传值还是传址,就可以清晰得出结论。

七、永磁同步电机矢量控制(FOC)—MTPA控制及Simulink仿真 前面几节的内容已经完成Id=0控制策略的理论和仿真以及双闭环PI参数整定。在接下来几节中,将陆续讲解MTPA、弱磁控制等内容。 阅读详情

相关推荐

深入解析i2cdetect:从基础命令到高级读写操作

本文深入解析Linux下i2cdetect工具,从基础安装、总线扫描到高级读写操作。作为i2c-tools的核心组件,i2cdetect是硬件调试的得力侦探,能快速识别I2C总线上的设备地址。文章还涵盖了i2cdump、i2cset、i2cget等进阶工具,并介绍了如何在C程序中调用读写接口进行嵌入式开发,是掌握I2C通信调试的实用指南。

weixin_29189987的博客 372

参数传递之传名,传地址,得结果,传值

学习自上面的文章。(1)传名。(2)传地址。(3)得结果。(4)传值。A=3。

weixin_51883798的博客 1370

Anaconda+清华源加速PyTorch GPU环境安装与CUDA版本匹配指南

深度学习环境管理常面临依赖冲突与下载缓慢问题,通过虚拟环境隔离与镜像源加速可显著提升效率。Anaconda利用conda机制创建独立Python环境,避免包版本冲突;清华源通过国内镜像同步大幅提高下载速度。GPU版PyTorch安装需严格匹配CUDA、cuDNN与显卡驱动版本,否则易出现CUDA不可用错误。该方案适用于图像分割、目标检测等需多版本PyTorch并存的场景,能快速搭建稳定GPU训练环境。本文详解Anaconda安装、清华源配置及PyTorch GPU版安装全流程。

weixin_30522983的博客 237

程序设计语言之传值调用与传址调用(软考中级)

传值调用与传值调用区别以及例题讲解

qq_52699757的博客 782

基于51单片机的校园一卡通系统(仿真)

本次设计利用LCD1604设计可视化界面,矩阵按键执行交互,继电器模拟门的开关,系统集成考勤系统、门禁系统、消费系统、充值系统。同时利用LED灯、蜂鸣器进行指示,方便用户查看状态。

MGT_9796的博客 1556

全志 T527_Android13 编译 [ 避坑必看 ]

Swap 概念: Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行。当输入编译命令make -j16 的时候,会有如下提示,这是官方建议通过减少编译线程来解决编译时消耗内存过大的问题。Android 13 系统的编译流程,编译一共分为两部分:内核编译与 Android 编译。

公众号:嵌入式分享 2114

Java方法中参数的传递(值传递、地址传递)详解

基本数据类型作为形参时就好比你有张纸上有非常重要数据,而你的女儿非要在这张纸上画画,这时候机制的爸爸想到了复印。于是产生两全其美的结果,你的珍贵的数据没有被摧毁而你的也女儿心满意足的画上画。这意味着当你对一个String对象进行修改时,实际上是创建了一个新的String对象,而不是在原有对象上进行修改。小编近期在学习Java中方法的参数传递时难以理解,相信大家也和小编一样对什么是值传递和地址传递很困扰。,按地址传递意味着将引用数据类型变量的地址传递给方法,对地址进行任何修改都。同样这里值得注意到的是这个。

weixin_60625208的博客 4403

An工具介绍之摄像头

An工具介绍之摄像头

人生得意须尽欢 6190

JAVA基础:值传递和址传递

方法调用时,传递的实参是一个基本类型的数据形参改变,实参不变又称为地址传递,或引用传递方法调用时,传递的实参是一个引用类型的数据基本类型的数据,比较简单,可以直接存储在变量中引用类型的数据比较复杂,包含了一堆子数据,不能直接存储在变量中,存储在堆区,会为其分配一个内存地址我们在使用引用类型数据时,都是通过地址间接引用类型的数据所谓的地址传递,就是在方法调用时,传递的是引用类型的地址。形参(内容)改变,实参(内容)改变类似于值传递的址传递。

weixin_53755148的博客 1888

BPC坏点矫正

whatis the Bad Pixel? 坏点为死点,也就是基本不随照度变化呈现光电线性转换的关系。表现为暗态常亮,亮态常暗。 坏点分类:静态坏点:亮坏点,暗坏点。 动态坏点:在一定像素范围内,该点表现正常,而超过这一范围,该点表现的比周围像素要亮。与sensor ...

camerall 1万+

OpenLayers6入门,快速搭建Vue+OpenLayers地图脚手架项目

本章针对Vue初学者,对Vue不熟悉,甚至还不会Vue的入门学生读者。本章会详细讲解从环境到环境的各个步骤,再到使用脚手架快速生成项目,以及添加地图库依赖,编写简单的高德地图显示页面的。如果已有VUE项目或者熟悉VUE的读者可以不用看本章,直接添加ol依赖到VUE项目中即可。

GIS技术方向,GIS地图技术分享(GIS入门、Openlayers教程、Leaflet教程),做最好的GIS地图开发教程。关注博主公众号:eguid 5441

【Golang 面试题】每日 3 题(七)

引用类型和引用传递是 2 个概念,切记!!!什么是值传递?将实参的值传递给形参,形参是实参的一份拷贝,实参和形参的内存地址不同。函数内对形参值内容的修改,是否会影响实参的值内容,取决于参数是否是引用类型。什么是引用传递?将实参的地址传递给形参,函数内对形参值内容的修改,将会影响实参的值内容。Go 语言是没有引用传递的,在 C++ 中,函数参数的传递方式有引用传递。

Newin2020的博客 655

2.1 amdgpu BO的类型和用途

AMDGPU驱动中,amdgpu_bo_create_user和amdgpu_bo_create_kernel分别用于创建用户空间和内核空间的buffer对象(BO)。用户空间BO支持元数据、tiling flags等属性,由GEM handle管理生命周期;内核BO则用于驱动内部资源如ringbuffer,自动pin并可选CPU映射。二者在返回类型、生命周期管理和使用场景上存在根本差异,前者面向图形渲染/AI等应用,后者服务于驱动内部任务。

图形/计算GPU的驱动与虚拟化技术分享园地 2213

java中传值与传址

因为数组的创建new了一个新对象,数组是存在于堆中的,调用main方法时,栈中存放的是数据的引用变量(地址),地址指向堆中的数组,当调用test方法时,同过地址指向堆中的数组进行修改,从而改变了原数组的值,我们都知道,当main方法被调用时,基本数据类型、数据的引用变量(地址),都存放在栈中,会在栈里面运行,,这里存储变量 i 的值为 10;往下走调用test方法,将10 的常量值传进去,所以打印输出i 的时候 结果还是10;,test方法的运行。

weixin_73569104的博客 285

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java获取ajax传值,java取ajax传值

java取ajax传值[2021-02-03 11:32:37]简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐:《PHP视频教解决java的ajax提交返回值中文乱码的方法:1、在RequestM...

weixin_34304538的博客 872

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Java】 带你了解Java的传值方式

结论 我先把结论放在前头,在java中,传递的对象如果是基础类型的话,就会直接将值传递过去,传递的对象是需要new的话,就是将对象的地址传递过去。 这个也困扰了我很久,c语言里还有指针可以区分,而java中就没有指针了,就很难区分了。 分析 直接上代码 package test; /** * @author xxj * 检验java的传值方式 */ public class TransmitValue { private int a=0; private MyClass m=

程序员徐小白的博客 566

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

java 传值_java关于传值与传引用

关于java传值还是传引用的问题经常出现在一些烦人的面试题中,主要考察个人对java基础的掌握情况。首先明确一下:本地方法中,java的参数传递都是传值。但是如果是远程调用方法时,会将对象本身传递过去Java是本地编程多是传值,这个值包括基本值和引用值,分别对应基本类型和引用类型。基本类型就不说了。引用类型虽然是传值,但是却表现出传引用的效果。传递过去的对象如果被改变,也会导致调用对象中值变化。因...

weixin_35843096的博客 298

java Long传值问题_一道 Java 方法传值面试题——Java方法传值的值传递概念和效果 + Integer 缓存机制 + 反射修改 private final 域...

原题代码如下:1 public voidtest1() {2 int a = 1, b = 2;3 System.out.println("before: a=" + a + ", b=" +b);4 swap1(a, b);5 System.out.println("after: a=" + a + ", b=" +b);6 }78 ...

weixin_29432863的博客 399

php值传递和java_PHP的普通传值与引用传值以及unset

首先,要理解变量名存储在内存栈中,它是指向堆中具体内存的地址,通过变量名查找堆中的内存;普通传值,传值以后,是不同的地址名称,指向不同的内存实体;引用传值,传引用后,是不同的地址名称,但都指向同一个内存实体;改变其中一个,另外一个就也被改变;以下我将通过三个列子来详细讲解这两个传值的区别:Example1://普通传值$param1=1;$param2=2;$param2 = $param1;$p...

weixin_28975553的博客 132

java面试题八 传值传引用

jianfpeng241241的专栏 839

java方法传参方式---到底是传值还是传址,还是两者都不对!!!

今天刚好领导写了几个面试新人的基础题,其中就有一道涉及java方法传值的题目,其实这个问题不仅对一些新人有难度,甚至可能对一些工作了好多年的人都搞不清楚,今天我就在这里简单的和大家分享下.   题目如下:package com.eden.coreLearn.javacore; import java.util.Arrays; /** * 类Parameter.java的实现描述:TODO

super_ccc的专栏 908

【java技术面试第二十一讲】Java面试题21 . 内置对象和四大作用域和页面传值

Java面试题21 :内置对象和四大作用域和页面传值提前预告,完全免费,写文不易: 如果喜欢、对你有所帮助还请大家点个在看, 好东西要大家共享才能实现它的价值 , 让更多有需要的人看到...

hello world! 338

被小看的面试题 - 传值 or 传引用

前几天一个正在找工作的朋友发来一个面试题,感觉挺有意思的今天发出来大家一起乐呵乐呵。这个题其实不难,但是涉及到不只一个知识点,而且平时可能不会注意到。来直接看题得到这个题...

zz_jesse的博客 185

vue通讯 传值 3大传值方法 快速上手 父子间传值和非父子间传值

/ 这是父组件// 这是子组件2 . 在子组件中通过props传递过来的数据})二. 子组件向父组件传值methods:{// 在相应该点击事件的函数使用$emit来触发一个自定义事件,并传递一个参数},template:`

2401_84003656的博客 839

java 参数传值的练习题及答案_java方法参数传递面试题三则

传值还是传引用是Java中很基础的一个问题,也是笔试的时候经常被考察的一个问题,总结一下。题目1: 写出以下程序的输出内容。public class Test {public static void changeValue(int value){value = 0;}public static void main(String[] args) {int value = 2010;changeVal...

weixin_31221157的博客 516

java关于传值与传引用

开始先声明一下:java的参数传递都是传值

成功不必在我,然功力必不唐娟 869
上一篇: java面试题之类的初始化和实例化
下一篇: java面试之局部变量和成员变量的运算
Galen-gao
博客等级 码龄9年 931粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值