数组的概念:存储相同数据类型数据且长度固定的容器(声明一个数组就是在内存空间中划出一连串相同数据类型的空间)
==》内存概述:内存是计算机中的重要原件,临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。
- 格式一: 数据类型[] 数组名 = new 数据类型[长度];
- 格式二: 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
- 格式三: 数据类型[] 数组名 = {元素1,元素2,元素3...};
- 数组定义格式详解:
- 数组存储的数据类型:创建的数组容器可以存储什么数据类型。
- []表示数组。
- 数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
- new:关键字,创建数组使用的关键字。
- {元素1,元素2,元素3...}:具体的数据元素。
- [长度]:数组的长度,表示数组容器中可以存储多少个元素。
- 注意:数组有定长特性,长度一旦指定,不可更改。
数组的索引(index):每一个存储到数组的元素,都会拥有一个编号(下标),这个编号(下标)称之为数组索引。索引从0开始,可以通过数组的索引访问到数组中的元素(数组名[索引])。
length属性:获取数组的长度(数组名.length)
方法的参数为基本类型时,传递的是数据值.方法的参数为引用类型时,传递的是地址值.
扩展:Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
- JVM的内存划分:
- 寄存器(pc Register):给CPU使用,与CPU相关。
- 本地方法栈(Native Method Stack):与操作系统相关。(与虚拟机栈所发挥的作用很相似,区别在于虚拟机栈为执行java代码方法服务,而本地方法栈为Native方法服务。)
- 方法区(Method Area)∶存储运行.class相关信息,包含方法的信息。
- 堆内存(Heap):存储对象或者数组,new来创建的,都存储在堆内存。(被所有线程共享的一块区域,在虚拟机启动时创建。)
堆内存里面的东西都有一个16进制表示的地址值。
堆内存里面的数据,都有默认值。规则:
如果是整数 默认为0
如果是浮点数 默认为0.0
如果是字符 默认为'uoooo'
如果是布尔 默认为false
如果是引用类型 默认为null
5. 栈(Stack)∶存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。(执行引擎每调用一个函数时,就为这个函数创建一个栈帧,并加入到虚拟机栈,方法执行完成后,栈帧出栈。)
局部变量: 方法的参数,或者是方法0内部的变量
作用域: —旦超出作用域,立刻从栈内存当中消失。