Java学习笔记04

数组排序

        

冒泡排序:每一轮比较相邻的两个元素,小的在前,大的在后

public static void mp(int[] arr) {

        for(int i=0;i<arr.length-1;i++) {
            for(int j=0;j<arr.length-1-i;j++) {
                if(arr[j]>arr[j+1]) {
                    int t=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=t;
                }
            }
        }


    }

选择排序:

(1)将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交换这两个元素

(2)循环第 1 条规则,找出最小元素,放于第 1个位置 

(3)经过 n-1轮比较完成排序   

   public static void select(int[] arr) {

        for(int i=0;i<arr.length-1;i++) {
            int index = 0;
            for(int j=1;j<arr.length-i;j++) {
                if(arr[j]>arr[index]) {
                    index = j;
                }
            }
            int temp =arr[index];
            arr[index]=arr[arr.length-i-1];
            arr[arr.length-i-1]=temp;

        }

    }

插入排序:将数组分成两部分,将后部分的第一个元素,和前部分的每一个元素进行比较,然后插入到合适的位置

 public static void insert(int[] arr) {
        int t,j;
        for(int i=1;i<arr.length;i++){
            t=arr[i];
            for(j=i-1;j>=0;j--){
                if(t<arr[j]){
                    arr[j+1]=arr[j];
                }else{break;}
            }
            arr[j+1]=t;
        }


    }

快速排序

归并排序

希尔排序

...

面向对象

类和对象

1)对象:符合类的特征独立存在的个体

真实存在

2)类:所有同种类型的对象所有的特征/行为,抽象出来成为类

  类是不真实存在的.

  例如: 学生类 - 实体类

学生的特征: 属性/成员变量

姓名,学号,性别,年龄...

学生的行为: 成员方法

吃饭  睡觉  学习

3)类和对象的关系:

写java代码的时候: 先有类,才有对象

从逻辑分析:先有对象,在有类

类的定义

定义格式

public class Student {
 // 成员变量
 String name; // 姓名
 int age; // 年龄
 // 成员⽅法
 // 学习的⽅法
 publicvoid study() {
 System.out.println("好好学习,天天向上");
 }
 // 吃饭的⽅法
 publicvoid eat() {
 System.out.println("学习饿了要吃饭");
 }
}

对象的使⽤

public class Test01_Student {
 public static void main(String[] args) {
 // 创建对象格式:类名 对象名 = new 类名();
 Student s = new Student();
 System.out.println(" s: " + s); // com.bonnie.Student@100363

 // 直接输出成员变量值
 System.out.println("姓名:" + s.name); // null
 System.out.println("年龄:" + s.age); // 0
 System.out.println("----------");
 // 给成员变量赋值
 s.name = "赵丽颖";
 s.age = 18;
 // 再次输出成员变量的值
 System.out.println("姓名:" + s.name); // 赵丽颖
 System.out.println("年龄:" + s.age); // 18
 System.out.println("----------");
 // 调⽤成员⽅法
 s.study(); // "好好学习,天天向上"
 s.eat(); // "学习饿了要吃饭"
 }
}

有默认初始值:

     引用数据类型: null

     基本数据类型: 0

对象内存图

 

局部变量和成员变量的区别:

1)声明位置的区别:

局部变量: 在方法中声明

成员变量: 类中声明

2)初始化的区别:

局部变量:

使用前必须初始化

成员变量:

可以不用初始化,因为有默认初始值

3)个数的区别:

局部变量:

由声明个数决定,声明多少个局部变量就有多少个

成员变量:

由对象决定

4)在JVM内存中的区别

局部变量: 在方法栈中,方法结束,方法栈消失,局部变量消失

成员变量:

和对象一起,存在堆中

  注意: 类只加载一次,并且是在第一次创建类的对象之前,就已经加载到方法区中.

命名规范:

1.变量名:

a.只能出现: 英文 + 数组 + _ + $

b.不能以数字开头

c.可读性要好,第一个单词小写,第二字单词开始首字母大写

2.包名: 全小写 ,域名倒写

3.方法名: 小驼峰命名法,第一个单词小写,第二字单词开始首字母大写,可读性要好

4.类名: 首字母大写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值