关于java中基础数据类型传值和引用类型传值的总结

先看一组代码:

public static void main(String[] args) {
        int a = 1;
        int b = 2;
        int[] array = {1,2};
        swap(a, b);
        System.out.println(a + " " + b);
        swap(array, 0, 1);
        System.out.println(array[0] + " " + array[1]);
    }
    public static void swap(int x,int y){
        int z = x;
        x = y;
        y = z;
    }
    public static void swap(int[] array,int x,int y){
        int xx = array[x];
        int yy = array[y];
        array[x] = yy;
        array[y] = xx;
    }

最后结果分别是1,2(基础数据类型传值);2,1(引用数据类型传值)

基础数据类型传值和引用数据类型传值的区别

基本变量类型:

在方法中定义的非全局基本数据类型变量的具体内容是存储在栈中的

引用变量类型:

只要是引用数据类型变量,其具体内容都是存放在堆中的,而栈中存放的是其具体内容所在内存的地址

! 地址的区别

在方法中定义的非全局基本数据类型变量,调用方法时作为参数是按数值传递的

也就是说

public static void swap(int x,int y)

这里的x和y实际上是新开创的地址,然后将外部的a和b的数值复制而成的。
因此在方法内部对x和y的任何操作都不会对外部的a和b造成影响

引用数据类型变量,调用方法时作为参数是按引用传递的

public static void swap(int[] array,int x,int y)

我们可以看到,这里传进去的x和y,是array数组的下标。
也就是说,所谓引用传递,就是说传进方法内的是外部a和b两个数所在的地址
因此,在方法内部,是对计算机底层对应地址中的数进行操作,由于外部的数实际上就是对应地址中的值,所以外部的数也就被改变了。

原文地址:https://www.cnblogs.com/Water2Wine/p/12425747.html

时间: 2024-07-30 02:57:16

关于java中基础数据类型传值和引用类型传值的总结的相关文章

java中基本数据类型与对象引用类型的默认初始化值学习

import org.junit.Test; public class TestInit {     boolean boo;     char cha;     byte by;     short shor;     int in;     float flo;     long lon;     double dou;     String str;     @Test     public void aa() {         System.err.println("boolean:&

Java基础---Java中的数据类型(五)

Java中的数据类型 通常情况下,为了方便物品的存储,我们会规定每个盒子可以存放的物品种类,就好比在"放臭袜子的盒子"里我们是不会放"面包"的!同理,变量的存储也讲究"分门别类"! Java 语言是一种强类型语言.通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型. Java 中有两类数据类型: 在 Java 的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址.说白了,基本数据类型变量

细谈JAVA中的数据类型

Java数据类型简介: Java是一种强类型的语言,数值类型主要分为基本数据类型和引用数据类型,其中基本的数据类型分为8种,具体细节点及一些注意点如下. java中的基本数据类型: 字符类型: 关键字:char  所占字节:2字节细节点:1.java中的字符类型采用Unicode编码,加之2字节,因此java中的数据类型可以直接存储一个汉字,例如:char sex = '男';注意点:1.声明字符类型时用的是单引号' ',而不是双引号""; 2.其实在正常开发中,绝大多数汉字所占的字节

Java中基本数据类型和包装类

参考:深入剖析Java中的装箱和拆箱; Java中基本数据类型和包装类互转中 缓冲机制的使用; java学习笔记:装箱和拆箱,包装器和缓冲池 Java 各 类型数据在内存中分配情况详解 一 java内存分配 这里只是在网上找的一些资料; Java 中的数据类型分为 1. 基本类型(原始数据类型) byte short int long float double char boolean 基本类型的变量持有原始值. 2. 符合数据类型(引用类型),引用类型持有引用值(即对某个对象的引用,而非对象本

java中的数据类型和运算符的总结归类。

首先学习java肯定先要了解java的发展史,以及java的特点,常见的dos命令,jdk的安装,如何开发java程序等等一下概念行的东西,这里面我都不一一说了. 今天这一章主要想总结一下java中的数据类型和运算符2大方面. 再说数据类型之前先说一下标识符的命名规则: 总的命名规则:见名知意.如果有多个单词组成,首单词小写,其余单词的首字母大写(驼峰命名法).1.首字母只能是字母,下划线和$2.其余字母可以字母,下划线,$和数字3.不能使用预留关键字4.严格区分大小写(总体来说和c语音一样)

JAVA中的数据类型——西科软件实训中心

Java数据类型简介: Java是一种强类型的语言,数值类型主要分为基本数据类型和引用数据类型,其中基本的数据类型分为8种,具体细节点及一些注意点如下. java中的基本数据类型: 字符类型: 关键字:char  所占字节:2字节细节点:1.java中的字符类型采用Unicode编码,加之2字节,因此java中的数据类型可以直接存储一个汉字,例如:char sex = "男";注意点:1.声明字符类型时用的是单引号'',而不是双引号"". 布尔类型: 关键字:boo

Java中基础类库使用

Java中基础类库: 在这里我只介绍几种我个人认为会经常使用的 1:Object类中的Clone机制只是对对象进行浅层次的克隆,如果需要进行深层次的克隆的话那么就要自己写(具体Clone方法请参考JavaAPI文档) 2:java7新增的Objects类 它提供了一些工具方法来操作对像,这些工具方法大多是"空指"针安全的.比如你不能确定一个引用变量是否为null,如果贸然的调用toString()方法,则可能引发NullPointException异常:如果使用Objects提供的to

讲说问题:|和||的区别以及&和&&的区别。2、Java中的数据类型分几类?基本数据类型有哪些?

|和||的区别以及&和&&的区别. |或 为或运算 判断为逻辑或 || 为短路或 只有逻辑判断 当左侧为真不再继续判断 &与 为与运算 判断为逻辑与 &&为短路与 当左侧为假不再继续判断 java中的数据类型分几类? 分为基本数据类型和引用数据类型 基本数据类型有8种 引用数据类型 是指如数组 字符串 集合等 也可以是用户自定义的类型.如Person Phone等 原文地址:https://www.cnblogs.com/qingyundian/p/8416

java中基本数据类型数据转化成byte[]数组存储

java中基本数据类型数据转化成byte[]数组存储 1 package com.wocqz.test; 2 3 public class testByte { 4 5 /** 6 * int 转成byte数组 7 * */ 8 public static byte[] int_byte(int id){ 9 //int是32位 4个字节 创建length为4的byte数组 10 byte[] arr=new byte[4]; 11 12 arr[0]=(byte)((id>>0*8)&