java学习笔记第8天2018.09.10

数组:
一组相同类型的数据的集合,可以认为数据是容器。
特点:
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  类名{
    属性;  ---变量
    行为    ---方法
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值