java中的数组引用就是让数组b直接指向数组a(即b = a;)。在java编程中这样做的目的是为了提高程序运行的效率。

试想一下,假如数组中有上万个元素,在拷贝数组时,如果将数组a的所有元素都一一拷贝至数组b,时间开销很大,有时候也不是必需的。

所以,在Java语言中, b = a(a和b都是引用名)的含义就是将a起个别名"b"。

之后,a和b其实就是指向的是同一个对象。int[] a = new int[10];

int[] b;

b = a;

在Java中,这种给变量取别名的机制称之为引用(reference)。

一个程序若想运行,必须驻入内存,而在内存中必然有其存储地址,通过这些内存地址,就可以找到我们想的数据。

这些内存地址通常都很长,因为不容易记住,所以就给这些地址取个名称,这就是引用变量,这些引用变量存储在一块名叫 “栈内存” 的区域。

那么所谓“引用”,就是Java对象在堆内存的地址赋给了多个“栈内存”的变量。

由于Java禁止用户直接操作“堆整型、浮点型、布尔型等基本数据类内存”中对象的地址,所以只能用这些“栈内存”的多个引用名来间接操作它们对应的“堆内存”数据。

所以,Java中的“引用”更类似于C/C++中的“指针”概念,所不同的是,C/C++中的“指针”可以被用户直接修改,而在Java中对内存的直接修改是被屏蔽的。

java中数组的引用是什么意思_java数组的引用有什么意义相关推荐

  1. Java中的移位操作以及基本数据类型转换成字节数组【收集】

    AVA中位运算符包括: & | ~ ^ << >> >>> 一. 首先要搞清楚参与运算的数的位数: ( 联想:java的8种基本类型:byte,sho ...

  2. JAVA中怎样把用户输入的字符串存入数组中?

    http://zhidao.baidu.com/link?url=rYypypWr0B35BojxgjmAzZwRhT14WFrxjtgYZO978FH8QWUyBZXScuyhvhkTHHV6J2b ...

  3. java中可变类型,不可变类型,不可变引用,不可变封装

    一.可变类型与不可变类型 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型. 可变数据类型 :当该数据类型的对应变量的值发 ...

  4. 【Java面试题】3 Java中使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?超详细解析...

    /*  * 问题:使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变  * 答:  * 使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以 ...

  5. java中除了跟数据相关的知识_Java的基本数据类型及知识介绍

    一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...

  6. java中异常处理语句错误用法的是_Java异常处理语句及解析

    Java异常处理语句及解析 一.选择题 1.java中用来抛出异常的关键字是 (C) A.tryB.catchC.throw D.finally 2.关于异常,下列说法正确的是 (A) A.异常是一种 ...

  7. java中字符 的含义 有什么作用_Java中字符串常见题之String相关讲解

    今天给大家带来的是在面试中经常被问到的一道题: 无论在Java还是Android中,String是一个很常见的类,但是大家真的很了解吗,我这里有几个题: 1. String str1 = " ...

  8. 在java中创建线程有几种办法_Java中创建线程的几种主流方式

    继承Thread类 继承Thread类,并重写它的run方法,就可以创建一个线程了,当然线程是如何真正被启动,可以参考我之前的 为什么start方法才能启动线程,而run不行? class Think ...

  9. java中==与equals的区别及理解_Java开发中常量池的理解与归纳

    相关概念 1.什么是常量 用final修饰的成员变量表示常量,值一旦给定就无法改变! final修饰的变量有三种:静态变量.实例变量和局部变量,分别表示三种类型的常量. 2.Class文件中的常量池 ...

最新文章

  1. linux格式化文件,无需格式化就可以转换文件系统
  2. python处理流程-Python异常处理大全(二)
  3. C++实现Dijkstra算法
  4. hive通过外表把数据存到mysql中_hive数据去重
  5. 在VIM里面设置自动补全功能
  6. 技术上根本不思进取的金山词霸2007
  7. [蓝桥杯][基础练习VIP]2n皇后问题(深搜)
  8. .NET Core 跨平台物联网框架 ServerSuperIO.Core,一套设备驱动通吃嵌入式、上位机、云服务...
  9. VirtualBox中的虚拟网络环境设置
  10. pid调节软件_三面大疆惨败,因为不懂PID的积分抗饱和
  11. [例程]string.trim().length()的用法
  12. AuthorizingRealm中的两大方法
  13. buuctf web wp
  14. yum设置 ccproxy 细节
  15. 未能找到类型或命名空间名称“DllImport“(是否缺少using指令或程序集引用?)
  16. 组织敏捷程序:第2部分,用于管理敏捷程序的网络
  17. app推广有哪些方式?
  18. php empty
  19. PHP:PECL 安装扩展
  20. OpenLayers教程一:OpenLayers概述

热门文章

  1. 当ASRock 华擎 Deskmini 110 STX 装Intel 英特尔 i3 8100
  2. hql删除mysql语句_如何使用delete语句删除数据
  3. 计算机基础:14、计算机指令执行过程
  4. 【数据应用案例】关系数据的隐私保护
  5. 杂谈——运行时异常和普通异常有什么区别
  6. 网虫推荐-firefox 4.0插件
  7. (附源码)基于PHP初中英语在线考试系统的设计与实现-计算机毕设87564
  8. LU分解(LU Factorization)计算方法(手算+MATLAB),关于置换矩阵(Permutation Matrix),部分主元消去法(Partial Pivoting)
  9. python绘制双折线图
  10. 有没有想过,我们成为“模拟人生”中的一部分?