背景:

两类参数传递

参数传递主要分为两种:一种是参数是基本类型,一种是参数为引用类型。

基本数据类型

这个相信大家都没什么问题,基本类型作为参数传递的时候是在一个方法栈中开辟了一块新内存,拷贝了原来的数据值,所以无论我们如何修改,原来的数据值不会受到任何影响。

例如:


public class Practice2 {public static void main(String[] args) {// TODO Auto-generated method stubint a = 5;System.out.println(a);change(a);System.out.println(a);}public static void change(int b) {b = 500;}

结果如下:

5
5

引用数据类型

首先我们要知道引用的数据存储在栈内存中,而引用指向的对象存储在(堆内存)中。

当引用作为方法参数传递给方法的时候,是将引用的值拷贝一份给另一个引用,但引用指向的都是同一个堆内存,所以进行的修改操作同样有效。

实例:

public class Practice {static A a = new A(10);public static void main(String[] args) {// TODO Auto-generated method stubPractice practice = new Practice();System.out.println(practice.a.intData);change(practice.a);System.out.println(practice.a.intData);}public static void change(A aa) {aa.intData = 500;System.out.println(aa.intData);}
}class A{int intData;public A(int intData) {this.intData = intData;}}

注意):引用类型中,形参能够改变实参的值,或者一个引用能够改变另一个引用的值,仅仅是因为他们栈内存中存储的值相同,但这个值是随时可以修改的。

延伸:

基本类型的创建是由系统自动创建的,而且存放在栈区,系统会自动的进行释放。

引用类型的创建是用户自己New方式创建的,例如对象。存放在堆区,对于堆区内存的处理方式根据不同的语言会有所不同,C语言需要自己手动的进行释放。Java 的话有GC机制会自动的进行释放。

相关知识链接如下:https://blog.csdn.net/a4171175/article/details/90749839

Java之参数传递(基本类型和引用类型)相关推荐

  1. Java的数据类型-基本类型和引用类型

    道生一,一生二,二生三,三生万物------老子 二进制是道.基本类型是一.引用类型是二.框架是三.软件应用是万物------小虎哥. 0.基本类型和引用类型的区别 Java中的数据类型分为 基本类型 ...

  2. Java中的基本类型和引用类型(未完)

    1.基本类型(primitive type) 1.1基本类型包括:boolean类型和数值类型.数值类型有整数类型和浮点型.整数类型包括byte.short.int.long.char,浮点类型包括f ...

  3. java面向对象(类与对象,局部变量成员变量,基本类型和引用类型作为参数传递)...

    一.类和对象的区别 类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体 可以将玩具模型看作是一个类,将一个个玩具看作对象,从玩具模型和玩具之间的关系便可以看出类与对象之间的关系.类用于描述 ...

  4. Java Native Interface 二 JNI中对Java基本类型和引用类型的处理

    本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 Java编程里会使用到两种类型:基本类型(如 ...

  5. 基本类型和引用类型的值 函数的传递参数

    ECMAScript中函数的传参都是按值传递的. 不管是传基本类型的值还是引用类型的值都是按值传递,访问变量则分按值和按引用两种方式. 向参数传递基本类型的值 被传递的值会被复制(对应文章<基本 ...

  6. javascript变量中基本类型和引用类型的详解解读

    前言: Javascript语言中的变量和其他语言的变量有很大区别,javascript松散类型的本质,决定了它只是在特定时间时间保存特定值得名字而已.由于不存在定义某个变量必须保存何种数据类型值的规 ...

  7. JavaScript基本类型和引用类型

    目录 介绍 背景 JavaScript数据类型 基本类型 基本类型的行为如何? 使用typeof运算符 语法类型 为什么null返回对象? 参考类型 创建对象 对象的行为如何? 销毁对象 基本类型和引 ...

  8. javascript中基本类型和引用类型的区别分析

    大多数人系统学习过的程序设计语言,在这些语言的学习过程中最早学到的几个要点之一就是值类型和引用类型的区别.下面我们来看一下在 JavaScript 中基本数据类型(Primitive Types)和引 ...

  9. 基本类型和引用类型区别

    目录 1.基本类型包括: 2. 引用类型包括: 3.基本类型 3.1 基本类型的值是不可变的 3.2基本类型的比较是值的比较 3.2.1基本类型的数据类型相同时 3.2.2基本类型的数据类型不同时 3 ...

  10. JavaScript 基本类型和引用类型区别

    基本概念 JS有以下这些数据类型:undefined.null.string.boolean.number.symbol.bigint.object. 其中,前面 7 个被称为基本类型,又叫原始类型( ...

最新文章

  1. Windows下安装ElasticSearch6.3.1以及Head插件
  2. VUE-CLI webpack配置autoprefixer后build模式与dev不相同,打包后部分前缀或属性丢失,所见即所得...
  3. 合成存储方法,局部/全局变量
  4. CNZZ数据专家使用方法?
  5. jQuery自定义漂亮的下拉框插件8种效果演示
  6. python在金融工程领域包括_金融工程专业对计算机的能力要求到底是什么?
  7. 201521145048《Java程序设计》第11周学习总结
  8. TJOI2018Party
  9. Git笔记(29) 搜索
  10. 机器学习:神经网络的代价函数及反向传播算法
  11. Docker Swarm的前世今生
  12. Atitit.js的键盘按键事件捆绑and事件调度
  13. 基于嵌入式linux路由转发功能的实现
  14. 三菱plc分拣程序_基于三菱PLC控制的物料自动分拣模型
  15. 一句批处理快速把优酷KUX转MP4
  16. Axure中SVG矢量图标的使用方法及资源推荐
  17. 一文弄懂Spring Cloud的5大核心组件详解:Eureka+Hystrix+Zuul+Ribbon
  18. jQuery源码中的“new jQuery.fn.init()”什么意思?
  19. 在传统软件公司十年深恶痛绝的感受
  20. Abraham Robinson and Nonstandard Analysis: History, Philosophy, and Foundations of Mathematics

热门文章

  1. PHP基础与数据库交互
  2. 大批985,211,双非大学最近发布计算机考研调剂信息!
  3. 北大本科小妹妹:在北大“卷”了三年,才明白的四个道理…
  4. 二进制与十进制互相转换
  5. 漫谈数据中心CLOS网络架构
  6. java计算机毕业设计ssm+vue红联小区果蔬销售网站-水果购物商城
  7. python tkinter 图片插入问题
  8. AEJoy —— 表达式之速度和频率控制(七)【JS】
  9. Jetson Xavier 加装固态硬盘,并将固态硬盘nvme设为为系统盘
  10. transformer注意力机制的理解(Q,K,V,dk)