0
点赞
收藏
分享

微信扫一扫

Java集合的基础知识

大南瓜鸭 04-03 20:00 阅读 2

一维数组内存分析

Java虚拟机的内存划分

在这里插入图片描述

区域名称作用
方法区(Method Area)存储类信息、常量、静态变量、即时编译器编译后的代码等数据。
堆(Heap)存储对象实例及数组,由于 Java 程序中大部分对象都在堆中分配内存,因此堆是 Java 程序中最常用的区域。
栈(Stack)存储方法的局部变量、方法的参数、方法调用和返回地址等数据,每个线程都有自己的栈,栈中的数据只能在本线程中可见。
本地方法栈(Native Method Stack)与栈类似,但是它是为本地方法服务的,即在 Java 中调用的本地方法。
程序计数器(Program Counter)记录当前线程执行的字节码指令地址,用于支持线程切换、方法调用、异常处理等功能。

与目前数组相关的内存结构:

  • 虚拟机栈(Stack):用于存放方法中声明的变量。例如,对于声明 int[] arr = new int[]{1,2,3}; 这一语句,arr 变量存放在栈中。
  • 堆(Heap):用于存放数组的实体,即数组中的所有元素。例如,对于声明 int[] arr = new int[]{1,2,3}; 这一语句,数组中的元素 1, 2, 3 存放在堆中。

内容主要结构

在这里插入图片描述

举例1:基本使用

在这里插入图片描述

举例2:两个变量指向一个一维数组

在这里插入图片描述

多维数组使用

多维数组概述

  • 某公司2021年全年各个月份的销售额进行登记。按月份存储,可以使用一维数组。如下:
int[] monthData = new int[]{23,43,22,34,55,65,44,67,45,78,67,66};
  • 如果改写为按季度为单位存储怎么办呢?
int[][] quarterData = new int[][]{{23,43,22},{34,55,65},{44,67,45},{78,67,66}};

二维数组的定义

二维数组的声明和初始化

声明

//推荐
元素的数据类型[][] 二维数组的名称;

初始化

在这里插入图片描述

二维数组元素调用

在这里插入图片描述

二维数组元素的长度

在这里插入图片描述

二维数组元素的遍历

在这里插入图片描述

二维数组的默认初始值

在这里插入图片描述

二维数组的内存解析

举例1:

在这里插入图片描述

举例2:

在这里插入图片描述

面试题合集

  • JVM 内存分哪几个区,每个区的作用是什么?
    在这里插入图片描述
  • 方法区
  • 虚拟机栈
  • 本地方法栈
  • 程序计数器
举报

相关推荐

0 条评论