偷师小灶-2019年12月27日

今天老何他们学的数组啊,复习一遍

偷师小灶的由来:
考研过后大批同学去济南实训,老师从基础开讲,正是难得的查漏补缺好机会!
本文基本不包含基础知识,主要是一些细节问题会在这里贴出来,面试的盆友们可以多来看看!
正好每天通勤的时间那么长,多看看这些可比看爽文什么的有营养多了!
虽然不能保证每天都能够整理吧!但是一定要坚持下去每天看!
q(≧▽≦q)加油呀

数组相关常识

  • 数组长度定长,长度一旦指定便不可更改(下标越界)
  • 数组的最大索引值为xx.length-1

数组原理

JVM的内存划分

为什么要划分?

为了提高运算效率,就对空间进行了不同区域的划分

每一片区域都有特定的处理数据方式和内存管理方式

区域名称 作用
寄存器 给CPU使用,和开发无关
本地方法栈 JVM在使用任何操作系统功能的时候都会使用,和开发无关
方法区 存储可以运行的class文件
堆内存 存储对象或者数组,通过new关键字创建的对象都存在此处
方法栈 方法运行时使用的内存,比如main()方法的运行就是进入方法栈中执行

数组在内存中的存储

数组创建流程:

  1. main方法进入方法栈执行
  2. 创建数组,JVM会在堆内存中开辟连续的空间,存储数组
  3. 数组在内存中会有自己的内存地址,以十六进制数表示
  4. 数组中有3个元素,默认值为0 (与new的语句有关)
  5. JVM将数组的内存地址赋值给引用类型变量array(数组名)
  6. 变量array保存的是数组内存中的地址,而不是具体的数值,因此成为引用数据类型

数组的常规操作

下标越界异常ArrayIndexOutOfBoundsException

空指针异常NullPointerException

数组反转:将数组最远端的元素位置进行交换,当最小索引超过最大索引时反转结束

方法的参数为基本类型时,传递的是在数据值,方法的参数为引用类型时,传递的是地址值

今天的偷师到这里就结束啦!感谢观看!以上内容如有不足还请指正!(●ˇ∀ˇ●)

猜你喜欢

转载自www.cnblogs.com/starcoder/p/12108741.html