Java---数组的定义和使用和JVM的内存情况

数组

我们为什么会用到数组呢?Java中为啥会定义数组呢?在Java中变量的定义是数据类型 变量名 = 初始值。那么我们要是定义10个整型的变量呢?定义100个整型的变量呢?我们一个一个定义岂不是很麻烦而且很慢?所以引出了数组。

数组的定义

数组是用来盛放同种数据类型的集合,在内存中是一个连续的空间。

数组的创建

数组的创建
方式一:
数据类型 [] 数组名 = new 数据类型[N](和前面的一致);
N是用来存放数组长度的
方式二:
数据类型 数组名[] = {
   
   元素};//这种不建议使用,和C语言中的一样。int []这样定义更清晰

数组的初始化

数组的初始化分为动态初始化和静态初始化。

//静态初始化
    int [] arr = new int[] {
   
   1,2,3};
    但我们编写的时候一般省略new int[]
    int [] arr = {
   
   1,2,3};虽然省略了new int[]但是编译的时候,计算机会自己加上,这样只是方便了我们编写代码。
//动态初始化
    int [] array = new int[10];

这里我来说几个注意点:

  • 在上面的静态初始化时,可以不用在后面的new int[]中指定长度,因为计算机会根据{}中的元素来确定长度。
  • 静态初始化的时候,{}中的数据类型必须与前面的一致。
  • 对于静态初始化我们有两种方式,上面也提到过了,这里需要注意,完整写法的可以拆分写,简写方式的不可以。
int [] arr = new int[]{
   
   1,2,3,4};//这样的时候可以拆开来写
int [] arr;
arr = new int[]{
   
   1,2,3,4};
//简写的时候不可以拆开来写
int [] arr = {
   
   1,2,3,4};
int [] arr;
arr = {
   
   1,2,3,4};//这样拆开写会编译错误
  • 对于动态初始化时,后面标明了元素的个数:10。数组中下标是从0开始的,所以10个元素下标是0-9.
  • 对于没有初始化的数组,系统会自动分配默认值,动态分配时,创建了10个int类型的元素,但并没有赋值,此时系统会分配默认值0。下图为数组在内存中存储的情况和对于基本数据类型的默认值。
    对于引用类型的默认值是null。(null 在 Java 中表示 “空引用” , 也就是一个不指向对象的引用。Java中null并不是就是等于0)
    在这里插入图片描述
    在这里插入图片描述
  • 对于动态分配时也可以拆开编写。
int [] arr = new int[10];和下面拆开后一样。
int [] arr;
arr = new int</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值