javaSE回顾_05

作者: 啊耶嗨 | 来源:发表于2020-10-24 15:43 被阅读0次

数组:


静态初始化:

//静态初始化

int[] a = {1,2,3};

动态初始化:

//动态初始化

int[] a = new int[2];

a[0]=1;

a[1]=2;

当数组被声明且未初始化时。数组元素将会根据数组类型进行隐式初始化,如int[3] 的初始化结果为{0,0,0}

长度是确定的。数组一旦被创建,它的大小就是不可以改变的。如果越界,则报错。

其元素必须是相同类型,不允许出现混合类型。

数组中的元素可以是任何数据类型,包括基本类型和引用类型。

数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

多维数组:

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一位数组,其每一个元素都是一个一维素组。

int[][] a = new int[2][5];        可以看为一个两行五列的数组

数组的工具类java.util.Arrays——赋值(赋值)、排序(sort)、查找数组元素(binarySearch)

数组的存储及指向


存储

数组本身就是对象,存储在堆内存中。

数组中的int类型值存储在堆内存还是栈内存?

java的数组变量是一种引用型的变量,数组变量并不是数组本身,他只是指向堆内存中的数组对象。所有局部变量都是存放在栈内存中,不管其是基本类型的变量还是引用类型的变量,都是存储在各自的方法栈区中;但引用类型变量所引用的对象(包括数组、普通java对象)则总是存储在堆内存中。综上,基本类型的数组如{1,2,3},是一个对象,故存在堆内存。

在方法中声明的引用类型的变量存储在哪里?

堆里!

在类下面声明的基本类型变量又是如何存储的?

堆里!

指向

int[] a = new int[5];

int[] b = new int[5];

int[] c = a;

此时 a 和 c 共同指向堆内存中的同一位置。他们的哈希值相同,且不论是a或c的任意一个,对数组元素进行改变,他们都可以访问到改变后的数组。相比之下,b则是一个全新的数组,哪怕它的存储空间大小、类型,甚至元素值都同a、c相同。

相关文章

  • javaSE回顾_05

    数组: 静态初始化: //静态初始化 int[] a = {1,2,3}; 动态初始化: //动态初始化 int[...

  • javaSE回顾_01

    理解JDK、JRE、JVM 首先JDK(开发环境)——为java的开发环境Java语言的软件开发工具包。 其次JV...

  • javaSE回顾_02

    Java中的注释 Java中的注释有三种: 1. 单行注释——//注释内容 2. 多行注释——/* ...

  • javaSE回顾_03

    运算符 算术运算符:+,-,*,%,/,++,--(最基本的七个运算符) 其中,“++”和“--”分别为自增运算符...

  • javaSE回顾_04

    if表达式: if单选结构:去判断一个东西是否可行,然后才去执行。 if(布尔表达式) { //如果布尔表达式为t...

  • javaSE回顾_06

    面向对象概述+类与对象 面向对象: 首先理解,万物皆对象,我们看的见摸得着的东西都是对象。那么对象都会有特征(属性...

  • 爱自己的每日回顾-2022/5/2

    基本信息 回顾对象:2022/05/02 回顾时间:2022/05/02 发布简书:2022/05/03 指标回顾...

  • 爱自己的每日回顾-2022/5/5

    基本信息 回顾对象:2022/05/05 回顾时间:2022/05/05~20220506 发布简书:2022/0...

  • javaSE回顾——泛型

    什么是泛型? 泛型的本质是将数据的类型参数化。即将原本的类类型作为参数,如:String、Number等包括自己写...

  • javase基础回顾1

    在javase基础中,我们首先学习了: 标识符、 关键字 数据类型:8大基本数据类型与引用数据类型(类 接口 数组...

网友评论

    本文标题:javaSE回顾_05

    本文链接:https://www.haomeiwen.com/subject/plzmmktx.html