Java基础语法&数组
数组:其实就是定义一个可以存储多个数据的容器,也称为实体。实体的定义需要使用一个关键字来完成。就是new。要明确这个实体中存储的元素的类型,以及元素的个数 .文章源自微观生活(93wg.com)微观生活-https://93wg.com/15592.html
1、数组的定义情势:文章源自微观生活(93wg.com)微观生活-https://93wg.com/15592.html
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];文章源自微观生活(93wg.com)微观生活-https://93wg.com/15592.html
元素类型[] 数组名 ={1,2,3,4,5,6,7};可以直接指定具体的数据文章源自微观生活(93wg.com)微观生活-https://93wg.com/15592.html
元素类型[] 数组名;文章源自微观生活(93wg.com)微观生活-https://93wg.com/15592.html
数组名 = new 元素类型[元素个数或数组长度];文章源自微观生活(93wg.com)微观生活-https://93wg.com/15592.html
2、数组的特色:文章源自微观生活(93wg.com)微观生活-https://93wg.com/15592.html
1)数组定义时,必需明确数组的长度(就是数组中可以存储的元素的个数。)由于数组长度是固定的。文章源自微观生活(93wg.com)微观生活-https://93wg.com/15592.html
2)数组定义时,必需明确数组中的元素的数据类型。文章源自微观生活(93wg.com)微观生活-https://93wg.com/15592.html
案例1:文章源自微观生活(93wg.com)微观生活-https://93wg.com/15592.html
int[] arr = new int[3];
arr[0] = 89;
System.out.println(arr[2]);
3、java内存区域的划分:1)存放器。2)本处所法区。3)办法区。4)栈内存。5)堆内存。
为何划分这么区域?由于每一一个内存区域对数据的处理方式不同。目前要讲的就是栈以及堆。
4、栈内存的特色:存储都是局部变量 ( 函数参数,函数内定义的变量,语句中定义的变量)。变量一旦使用完(作用域收场),就会在栈内存中自动释放。堆:存储的是实体(数组以及对象,只要是new的,都在堆中)
5、堆内存的特色:1,堆内存中的实体都有首内存地址值.2,堆内存中的变量都有默许初始化值.3,对于没有任何引用变量指向的实体,会视为垃圾,会被垃圾回收机制所回收。
6、数组常见的问题:
ArrayIndexOutOfBoundsException:数组的角标越界异样
当走访到了数组中不存在的角标时,就会产生该异样。
NullPointerException 空指针异样。
当一个引用型变量没有任何实体指向时,还在使用实体中的内容。就会产生该异样。System.out.println(arr);// [I@c17164 @前面代表一个一维数组 @后面代表一个哈希值
1,数组是什么?
数组:数组就是拥有同一类型的一些数的一个聚拢。
2,数组有什么特色?
数组的特色:必需明确数组的长度以及数组的类型,和数组带有角标,利便使用。
3,数组何时使用?
当在处理多个同类型的数据时候可以采取数组存储
4,java的内存(栈以及堆)的特色?
栈:存储都是局部变量(函数参数,函数内定义的变量,局部代码块中定义的变量),栈内存的变量没有初始化值。变量一点使用完(作用域收场),跟着函数的加载变量会在内存中开拓属于自己的空间。一旦函数运行收场,就会在栈内存中自动释放。先进后出,落后先出。
堆:存储的是实体(数组以及对象,只要是new的都在堆中)。
new关键字一呈现都会在堆内存中分配实体空间。
堆内存中的所有变量都会有默许初始化值。
5,画出一个数组的内存散布图。并用文字描写步骤。 内存散布图:
int[] arr = new int[3];
arr[1]=100;
内存加载说明:
当执行到 int[] arr 时。首先在栈内存开拓一个以数组名为名的空间,这个空间的目的是寄存一个堆内存中数组的内存地址。此时这个空间中并无寄存任何值。
当执行到new int[3]时,会在堆内存中首先划分出一块数组内存区域,这个时候就有一个内存地址与之对应,这里假定0x0056。然后将这个区域分成3个小空间分别代表数组的三个存储空间,他们一旦分配就会自动发生索引角标,同时也会自动初始化值,此时因为数组是int的所有初始化值为0.并将这个堆内存中的数组首地址赋值给栈内存的arr空间。当赋值后,栈内存的arr数组名就能所引到堆内存中的数组存储区域。此时整个数组的定义个空间分配收场。当执行arr[1]=100时,就会将这个以100寄存到数组角标为1的空间中,原来初始化的0被覆盖。需要注意的是,一旦arr再也不指向堆内存的数组存储区域时,这个数组同时也没有其他引用变量所有引用,那么堆内存中的这个数组存储区域将变为垃圾,等待JVM的垃圾回收器把它收走。
数组的简单操作、排序、最值、折半查找、查表法、数组内存散布图
数组的简单操作:
数组在定义的时候必需明确数组的类型以及长度,并明确了数组中元素的内容。
为了利便获取数组中的元素个数的方式,可使用数组实体一个属性。length
使用办法为 数组名.length
数组最多见的操作就是数组:遍历。其实操作数组的终究核心思想:就是操作角标(索引)。
最值:
二维数组:
常见的二维数组的定义情势:
1、 int[][] arr = new int[3][3];
2、 int[][] arr = new int[3][]; //定义一个二维数组,明确了二维数组的长度,然而二维中的每一一个一名数组没有明确
arr[0]=new int[3];
arr[1]=new int[2];
arr[2]=new int[5];
3、 int[] arr[] = new int[3][3];
4、 int arr[][] = new int[3][3];
5、 int[][] arr = {{1,3,5,6},{6,3,2},{1,2}};
何时使用二维数组:当数组多了就能够采取二维数组来继续存储。
中括号跟着类型定义对所有变量都起作用,如果中括号在变量后面只对当前的变量起作用。
class Array2Demo
{
public static void main(String[] args)
{
//int[] arr = new int[3];
//数组中的数组:数组中的元素还是数组。
//int[][] arr = new int[2][3];
//System.out.println(arr[0][1]);//0
//System.out.println(arr[0]);// [I@c17164
//System.out.println(arr);// [[I@c17164
int[][] arr = new int[][];//定义一个二维数组,明确了二维数组的长度,
//然而二维中每一一个一维数组并无明确。
//对二位数组中的每一一个一维数组进行初始化。
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];
System.out.println(arr);//[[I@c17164
System.out.println(arr[0]);//null
class Array2Demo2
{
public static void main(String[] args)
{
//int[][] arr = {{3,7,18,5},{3,6,4,8,9},{15,89}};
int[][] arr = {{4,6,2,8},{1,9,3,2},{6,8,4,8}};
//System.out.println(arr.length);//3
//System.out.println(arr[1].length);
//遍历二维数组中的所有元素。大骗局小圈
for(int x=0; x<arr.length; x++)
{
int sum = 0;
for (int y=0; y<arr[x].length ; y++)
{
//System.out.println(arr[x][y]);
sum += arr[x][y];
}
System.out.println(&
}
String[] arr1 = getMonth(&
for(int x=0; x<arr1.length; x++)
{
System.out.println(arr1[x]+&
}
}
public static String[] getMonth(String str)
{
String[] season = {&
int index = searchIndex(season,str);
String[][] month = {{&
return month[index];
}
public static int searchIndex(String[] arr,String key)
{
for(int x=0; x<arr.length; x++)
{
if(arr[x].equals(key))
return x;
}
return -1;
}
}
1, 数组的操作基本思想?
数组:数组就是一个容器,用来装元素,需要明确数组的类型以及数组的长度。
数组就是把不少个变量放在一块儿的一个聚拢。
2,数组的常见的操作动作和理解进程。最值,排序,折半.
数组的基本思想:数组最经常使用的操作动作:存值以及获取值,比如获取:最值
排序,折半查找。
3,数组容器的利用场景?
何时使用容器:一旦数据多,个数能肯定就采取数组来存储。
4,必需掌握查表法,将查表法的思想写出来,并明确何时使用查表法。
表:是个容器,表里面存在一定的对应关系。
查:用一种对应关系去找此外一种对应关系。
编码表:是生活中的一些事物对应的二进制数的一个序列。
以上就是微观生活(93wg.com)关于“Java基础语法&数组”的详细内容,希望对大家有所帮助!
评论