Java 数组

什么都在学,什么学的都不深,学的很乱,现在打算换工作了,所以学习下Java。

记录一些东西。

/*
数组常见问题
*/


class ArrayDemo
{
 public static void main(String[] args)
 {

  int[] arr = new int[3];
//  System.out.println(arr[3]);
  //编译通过,说明没有语法错误,但是执行java命令在JVM中运行时,出现错误
  //错误提示是ArrayIndexOutOfBoundsException:数组索引越界异常
  //当访问数组中不存在的角标索引时,就会发生该异常

//  arr = null;
//  System.out.println(arr[0]);
  //执行javac命令编译时,编译通过,没有语法错误,但是执行java命令在JVM运行时,出现错误
  //错误提示为NullPointerException:空指针异常
  //当引用型变量(数组变量为引用型变量)没有任何实体指向时,还在用其操作实体,就会引发该异常


  System.out.println(arr);//直接将数组名称作为打印变量
  //输出结果为[I@de6ced,
  //该值@符号的左边是实体的类型,[符号表示该实体为数组类型,I表示该数组为int类型

  //@符号右边是数组实体的哈希值,哈希本身是一个算法,由这个算法定义数组实体在内存当中存储的位置(可以简单的理解为地址值),该值本来是二进制,输出时为了简单表示,所以输出为十六进制
  //这个值是windows来支持的,是Java调用了windows哈希这种方式来算出了数组实体在内存中的存储位置(开辟内存空间的是由windows系统)
  //不用关注该值的具体值。
 }
}


作为局部变量的数组名存储在栈中,arr中是3个元素组成的一维数组的地址,3个元素存储在堆中。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值