数组:
一组相同类型的数据的集合,可以认为数据是容器。
特点:
1.存入的数据(元素)有下标,从0开始
2.容器有大小,即有长度,数组名.length—->最大下标值:数组名.length-1
格式:
元素类型[] 数组名 = new 元素类型[个数];
元素类型[] 数组名 = new 元素类型[]{元素1,元素2,.....};
元素类型[] 数组名 = {元素1,元素2,.....};
异常:
越界异常:ArrayIndexOutOfBoundsException
空指针异常:NullPointerException
int[] arr = null;
arr[0] = 20;
内存:
栈:
先进后出,方法都在栈执行,方法运行结束,方法就释放
堆:
1.创建的是实体容器---分配内存地址值
2.容器会存放默认值
垃圾:
没有任何引用指向的实体容器,那么该容器为垃圾。
等待垃圾回收机制(GC)处理。
引用:遍历,获取最值,求和,求平均值...
排序:
选择排序:
public static int[] sort(int[] arr){
for(int i = 0; i < arr.length-1; i++){
for(int j = i+1; j < arr.length; j++){
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
冒泡排序:相邻元素比较,如果不符合规则,则交换位置,每一轮结束都会找到当前数组中最大的元素。
3,1,6,9,5
1,3,6,9,5
1,3,6,9,5
1,3,6,9,5
1,3,6,5,9
1,3,6,5
1,3,6,5
1,3,5,6
1,3,5
1,3,5
1,3
public class Demo15 {
public static void main(String [] args){
int [] arry= {1,4,5,6,9,2,7};
int [] num=score(arry);
print(num);
}
public static int [] score(int [] arry) {
for(int i=0;i<arry.length;i++) {
for(int j=0;j<arry.length-1;j++){
if(arry[j]>arry[j+1]) {
int temp=arry[j];
arry[j]=arry[j+1];
arry[j+1]=temp;
}
}
}
return arry;
}
public static void print(int [] arry) {
for(int a:arry) {
System.out.print(a+" ");
}
}
}
二维数组:
容器里的元素是一位数组。
动态:
元素类型[][] 数组名 = new 元素类型[元素个数][一维数组元素个数];
int[][] arr = new int[2][3]; //通俗说:大箱子里有2个小箱子,每个小箱子里有3个int类型数据
元素类型[][] 数组名 = new 元素类型[元素个数][];
数组名[下标] = new 元素类型[元素个数];
int[][] arr = new int[2][];
arr[0] = new int[3];
arr[1] = new int[2];
静态:
元素类型[][] 数组名 = new 元素类型[][]{{元素1,元素2,...},{元素1,元素2,...},....};
元素类型[][] 数组名 = {{元素1,元素2,...},{元素1,元素2,...},....};
int[][] arr = {{1,2},{3,4,5}};
特点:
数组长度:数组名.length
数组元素长:数组名[下标].length
数组最大下标值:数组名.length-1
数组元素最大下标值:数组名[下标].length-1
eclipse:
1.new - > java Project
2. ctrl + d:删除一行或多行
ctrl+alt + 向上/向下:复制代码一行或多行
alt+向上/向下:移动代码一行或多行
3.main + alt+/ : 自动补全main方法
4.syso + alt+/ : 自动补全输入语句
面向过程:
注重强调的是过程,用角色表示可认为是执行者
面向对象:
注重强调的是对象,用角色表示可认为是指挥者
找对象–调用方法
创造对象—调用方法
模拟猫抓老鼠
class 猫{
看见(老鼠){
}
追(老鼠){
}
抓(老鼠){
}
}
class 老鼠{
跑(){}
}
class Test{
public static void main(String[] args){
猫 cat = new 猫();
老鼠 mouse = new 老鼠();
cat.看见(mouse);
cat.追(mouse);
cat.抓(mouse);
}
}
人开手机
class 人{
开(手机){
手机.开机();
}
}
class 手机{
开机(){}
}
class Test{
public static void main(String[] args){
人 person = new 人();
手机 iPhone = new 手机();
person.开(iphone);
}
}
类和对象的区别:
类:一类事物的相同特性(属性)和相同行为的抽取描述---class。
对象:该类事物中的一个具体的实例,通过----new
class 类名{
属性; ---变量
行为 ---方法
}