菜鸟先飞之JAVA_数组
2017-07-14 15:06
211 查看
数组概述和定义格式说明
为什么要有数组(容器)为了存储同种数据类型的多个值
数组概念
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
数组定义格式
数据类型[] 数组名 = new 数据类型[数组的长度];
数组的初始化动态初始化
什么是数组的初始化就是为数组开辟连续的内存空间,并为每个数组元素赋予值
如何对数组进行初始化
a:动态初始化 只指定长度,由系统给出初始化值
int[] arr = new int[5];
b:静态初始化 给出初始化值,由系统决定长度
动态初始化的格式:
数据类型[] 数组名 = new 数据类型[数组长度];
静态初始化的格式:
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
简化格式:
数据类型[] 数组名 = {元素1,元素2,…};
初始化值
整数类型:byte,short,int,long默认初始化值都是0
浮点类型:float,double默认初始化值都是0.0
布尔类型:boolean默认初始化值false
字符类型:char默认初始化值’\u0000’
char在内存中占的两个字节,是16个二进制位
\u0000,每一个0其实代表的是16进制的0,那么四个0就是代表16个二进制位
地址表示
[I@19bb25a
[代表是数组,几个就代表几维
I代表是int类型
@是固定的
19bb25a代表的是数组的地址值
数组操作的两个常见小问题越界和空指针
ArrayIndexOutOfBoundsException:数组索引越界异常
原因:你访问了不存在的索引。
NullPointerException:空指针异常
原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
int[] arr = {1,2,3};
arr = null;
System.out.println(arr[0]);
数据传递问题
基本数据类型的值传递不改变原值,因为调用后就会弹栈,局部变量随之消失
引用数据类型的值传递
改变原值,因为即使方法弹栈,但是堆内存数组对象还在,可以通过地址继续访问
Java中到底是传值还是传址
既是传值,也是传地址,基本数据类型传递的值,引用数据类型传递的地址
java中只有传值,因为地址值也是值
相关文章推荐
- 菜鸟天天不懂,那就天天敲它。。。还不懂。。。JAVA数组比较大小。
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java菜鸟学习笔记--数组篇(三):二维数组
- java菜鸟的成长历程 数组
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java菜鸟学习笔记--数组篇(二):数组实例&args实例
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java菜鸟学习笔记--数组篇(二):数组实例&args实例
- Java菜鸟学习笔记--数组篇(三):二维数组
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java程序员从笨鸟到菜鸟之(二)数组
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java程序员从笨鸟到菜鸟(七)数组和集合
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- Java之美[从菜鸟到高手演变]之数据结构基础、线性表、栈和队列、数组和字符串