java基础--数组
来源:互联网 发布:网络推广合同注意事项 编辑:程序博客网 时间:2024/06/12 06:27
数组:
存储同种类型的多个元素的集合。
可以存储基本数据类型,也可以存储引用数据类型。定义格式:
1-数据类型[] 数组名 ;//int类型的数组x变量。
2-数据类型 数组名[] ;//int类型的x数组变量。
推荐使用第一种!!
数组中每个元素都是有索引(下标)的,开始索引值从0开始,最大索引值是数组长度-1.
获取数组中的指定元素:数组名[索引];
数组赋值:
注意:java中数组必须初始化才能使用(使用变量要先赋值)。
初始化:为数组开辟内存空间,为内个数组元素赋予值。
动态:只指定数组长度,系统给出初始化数值。
格式:数据类型[] 数组名 = new 数据类型[数组长度];
int [] array = new int[3];
例:
int [] array = new int{100,99,88};
获取数组中88的值:
array[2];
控制台打印输出100:
System.out.println(array[0]);
案例:
package com.lcn.day05;public class ArrayDemo1 {/** * 创建一个动态数组并且给数组元素赋值 */public static void main(String[] args) {//定义一个数组,长度为3// 数据类型 数组名 new 数据类型[数组长度]int[] array = new int[3];System.out.println("---------------------------------------------");//输出数组地址System.out.println("数组地址是:"+array);System.out.println("---------------------------------------------");//输出数组元素默认值System.out.println("元素默认值是:");System.out.println(array[0]);System.out.println(array[1]);System.out.println(array[2]); System.out.println("---------------------------------------------");//给数组元素赋值array[0] = 1;//把1赋值给数组元素的第一个值array[1] = 100;//把100赋值给数组元素的第二个值array[2] = 1000;//把1000赋值给数组元素的第三个值//输出赋值后的数组元素的值System.out.println("赋值后的数组元素的值是:");System.out.println(array[0]);System.out.println(array[1]);System.out.println(array[2]);System.out.println("---------------------------------------------");}}输出结果:
---------------------------------------------
数组地址是:[I@45bab50a
---------------------------------------------
元素默认值是:
0
0
0
---------------------------------------------
赋值后的数组元素的值是:
1
100
1000
---------------------------------------------
静态:用户给出初始化值,系统决定数组长度。
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,..};
简化版格式:数据类型[] 数组名 ={元素1,元素2,..};
案例:
package com.lcn.day05;public class ArrayDemo3 {/** * 静态数组赋值输出 */public static void main(String[] args) {//定义一个静态数组 //数据类型 数组名 new 数据类型{元素1,元素2..}int[] arr1 = new int[]{1,2,3}; //输出数组中的值System.out.println(arr1[0]);System.out.println(arr1[1]);System.out.println(arr1[2]);}}输出:
1
2
3
静态动态要注意:不能在一块定义
例如下面这样定义是错误的;int[] array = new int[3]{1,2,3};//错误
java中内存分配问题:
为了提高程序的效率对数据进行了不同空间对的分配。
栈:存储局部变量(在方法定义中或者在方法声明上的都是局部变量)
注意:数据使用完就释放掉。
堆:存储new出来的东西
注意:使用完会变成数据垃圾,但没有立即回收,java自带垃圾回收机制,会在垃圾回收器空闲是回收。
注意:
当栈内存中的两个引用,同时指向堆内存中的同一个对象时,两个引用的操作是同一个内存空间,都是在一个地址内做操作。例:
package com.lcn.day05;public class ArrayDemo2 {/** * 定义两个数组输出地址,并给元素赋值,把第一个数组的地址赋值给第二个数组并重新赋值 */public static void main(String[] args) {//数据类型 数组名 new 数据类型[数组长度]int[] array1 = new int [3];System.out.println("array1的地址是:"+array1);array1[0] = 1;array1[1] = 1;array1[2] = 1;//输出值System.out.println(array1[0]);System.out.println(array1[1]);System.out.println(array1[2]);//定义数组array2并把数组1的地址赋给数组2(注意,两个数组类型一定要相同)int[] array2 = array1;System.out.println("array2的地址是:"+array2);array2[0] = 999;array2[1] = 666;array2[2] = 1;//输出值注意:输出的是数组1中的元素的值System.out.println(array1[0]);System.out.println(array1[1]);System.out.println(array1[2]);}}结果:
array1的地址是:[I@45bab50a
1
1
1
array2的地址是:[I@45bab50a
999
666
1
方法区:(了解)
本地方法区:(了解)
寄存器:(给cpu使用)
数组常见的问题:
1-数组越界问题:索引值下标超过数组长度,数组越界异常。
ArrayIndexOutOfBoundsException
例:int[] arr1 = {1,2,3};
System.out.println(arr1[-5]);//数组越界异常。
System.out.println(arr1[6]);//数组越界异常。
2-数组空指针异常NullPointerException
例:int[] arr2 = {1,2,3};
arr2=null;//空常量null赋值给数组的引用arr2,表示其地址为空
System.out.println(arr1[-5]);//地址为空,不能访问
System.out.println(arr1[6]);//地址为空,不能访问
阅读全文
0 0
- 【Java基础】Java数组
- java基础 ---数组
- java中数组基础
- java基础----数组
- Java基础:数组
- Java基础之数组
- Java基础之数组
- Java基础_数组
- JAVA基础:一元数组
- Java基础之数组
- Java基础<四>---> 数组
- Java基础_数组
- java数组基础
- Java基础_数组
- java基础__数组
- 【java基础】[数组]
- Java基础-数组
- Java基础:数组
- 软件六种开发原则
- 如何通过电脑向ipad传电影视频(不用越狱)
- 剑指Offer学习之面试题11 :数值的整数次方
- 二值图像的膨胀操作及c++实现
- java的继承和组合
- java基础--数组
- Eclipse 建立 Log4j 2 的 Hello World 项目(使用 properties 文件)
- java赋值的解释和辨析
- 50. Pow(x, n)
- Javassist Enhancement failed:异常解决方法
- Docker 入门
- 剑指Offer学习之面试题12 :打印1 到最大的n 位数
- 【心灵鸡汤】谁的青春不迷茫
- Vue ---钩子函数