1.定义:(1)引用数据类型;(2)数组实际上是一个容器,“装(存储)数据”,数组类型相同,而且是有序的;(3)数组是一次性声明多个相同变量的变量,变量的名称都相同,使用序号来访问。
2.底层原理:
栈内存中存储数据:基本数据类型的值与引用数据类型的内存地址;
基本数据类型,在进行方法调用时,传递的是基本数据类型的值的副本;
引用数据类型,在进行方法调用时,传递的是引用数据类型的内存地址的副本(引用)。
3.声明方式:
int [] array;
array=new int[]{1,2,3};----->分两行写;
4.排序:
冒泡排序:
原理图:
代码需要内层与外层循环:外层循环控制的是第几次循环,每次循环,数组的length减一;
内层控制的是比较方式:冒泡排序每次比较都是相邻的两个比较。
选择排序:
5.容器:集合,spring,tomcat
java中的容器:用来存放其他类产生的对象的类,这个类,就是容器,或就叫他集合--->若干性质相近或相同的对象存放的类。
通俗说法:提供一个放程序或数据等的地方;容器本身是一个组件与其他组件的区别是——他可以存放其他的组件,也就是说其他的组件可以放在他的上面。
(1)容器(Container): Spring 提供容器功能,容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系。 换个更直白点的说明方式:容器是一个Java
所编写的程序,原先必须自行编写程序以管理对象关系,现在容器都会自动帮您作好。
常用容器:WebSphere,WebLogic,Resin,Tomcat
(2)容器类
Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap
ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。
6.数组与容器/集合的区别,联系:数组长度声明即固定,有序,存储同一类型对象。集合使程序变得更加灵活与高效。容器不是数组,不能通过下标的方式访问容器中的元素 。
7.加强for循环:
int [] arr={43,41,45,5,3};
for(int i:arr){ //int是数组中元素的类型 i叫迭代变量,arr是数组名
System.out.println(i);
}
8.二维数组:
//【1】第一种声明方式
int [] arrA={12,32,34,5}; //一维数组,arrA是引用数据类型
int [] arrC={32,45};
int [] arrD={43,45,43,46,78,9};
//声明一个二维数组,用于存储3个一维数组,每个一维数组的长度可以不相同
int [] [] array=new int [3][];
//赋值--》赋的内存地址, 存储的是一维数组内存地址
array[0]=arrA;
array[1]=arrC;
array[2]=arrD;
for(int i=0;i
for(int j=0;j
System.out.print(array[i][j]+"\t");
}
System.out.println("\n==================================");
}
//【2】第二种声明方式
int [] ar[]={{1223,32,32},{4,32,3},{43,43,4},{3,43,45}};
//【3】第三种声明方法
//声明一个长度为4的二维数组,用于存储4个一维数组,每个一维数组长度是2,默认为0
int a[][]=new int[4][2];