Java基础 第一节 第十八

网友投稿 499 2022-05-28

数组原理

内存概述

Java基础 第一节 第十八课

Java 虚拟机的内存划分

数组在内存中的存储

两个数组的内存图

两个变量指向一个数组

内存概述

内存是计算机中的重要原件, 也是临时存储区域, 作用是运行程序. 我们编写的程序是存放在硬盘中的, 但是在硬盘中的程序是不会运行的, 必须放进内存中才能运行, 运行完毕后会清空内存.

Java 虚拟机要运行程序, 必须要对内存进行空间的分配和管理.

Java 虚拟机的内存划分

Java 虚拟机为了提高效率, 就对空间进行了不同区域的划分, 因为每一片区域都有特定的处理数据方式和内存管理方式.

数组在内存中的存储

public static void main(String[] args) { int[] arr = new int[3]; System.out.println(arr); // [I@5f150435 }

1

2

3

4

以上方法执行, 输出结果是 “[I@5f150435”, 这个是什么呢?

是数组在内存中的地址. new 出来的内容, 都是在堆内存中存储的, 而方法中的变量 arr 保存的是数组地址. 所以, 输出arr[0],就会输出arr保存的内存地址中数组中0索引上的元素.

两个数组的内存图

public static void main(String[] args) { int[] arr = new int[3]; int[] arr2 = new int[2]; System.out.println(arr); System.out.println(arr2); }

1

2

3

4

5

6

两个变量指向一个数组

public static void main(String[] args) { // 定义数组,存储3个元素 int[] arr = new int[3]; // 数组索引进行赋值 arr[0] = 5; arr[1] = 6; arr[2] = 7; // 输出3个索引上的元素值 System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); // 定义数组变量arr2,将arr的地址赋值给arr2 int[] arr2 = arr; arr2[1] = 9; System.out.println(arr[1]); }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Java 数据结构

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:linux系统/opt目录和/usr/local目录有什么区别
下一篇:Java之多分支基本使用
相关文章