【狂神说Java】Java零基础学习-笔记03

https://www.bilibili.com/video/BV12J41137hu

增强for循环

主要用于数组和集合

for(声明语句:表达式){

         代码

}

public class ForDemo04 {
    public static void main(String[] args) {
        int[] number = {10,20,30,40};

        for (int x:number ) {
            System.out.println(x);
        }
       
    }
}

break continue goto

break用于退出循环;

continue 终止本次循环,进行下一次;

扫描二维码关注公众号,回复: 11250835 查看本文章

goto 关键字没有正式的在java中使用

标签 是指后面跟个冒号的标识符;例如outer:

练习打印三角形和Debug

public class ForSanjiao {

    public static void main(String[] args) {
        //打印5行的三角
        int n =5;
        for (int i = 1; i <= n; i++) {//控制行数
            for (int k = 1; k <= n - i; k++) {//控制空格的个数
                System.out.print(" ");
            }
            for (int j = 1; j <= 2 * i - 1; j++) {//控制打印的图形
                System.out.print("*");
            }
            System.out.println();//控制换行
        }
    }
}

方法

修饰符 返回值类型 方法名(参数类型 参数名){

         方法体

         Return 返回值;

}

方法调用

对象名.方法名(实参列表)

Java支持2种调用方式:根据方法是否返回值来选择;

如int large = max(30,40);

System.out.println(“Hello world!”);

值传递(java) 和引用传递

方法的重载

方法名相同,形参不同的函数;

返回类型可以相同,也可以不同;

命令行传参

有时候需要运行一个程序时再传递给他消息。需要靠命令行传参给main()函数;

可变参数

Jdk1.5开始,支持传递同类型的可变参数给一个方法,参数类型后面加省略号(…);一个方法只能有一个可变参数,且是最后一个参数。

public void test(int a,int...b){
    System.out.println(b[1]);
}

递归

递归边界

写一个计算器实现加减乘除;

数组

创建数组,使用new操作符来创建数组;

dataType[] array = new dataType[arraySize]

package com.array;

public class Demo01 {
    public static void main(String[] args) {
        int[] nums;//1声明一个数组
        nums=new int[10];//2创建一个数组

        //3给数组元素赋值
        nums[0]=1;
        nums[1]=2;
        nums[2]=3;
        nums[3]=4;
        nums[4]=5;
        nums[5]=6;
        nums[6]=7;
        nums[7]=8;
        nums[8]=9;
        nums[9]=10;
        //计算所有数的和
        int sum = 0;
        for (int i = 0; i < nums.length; i++) {
            sum +=nums[i];
        }
        System.out.println("总和为:"+sum);

    }
}

内存分析

三种初始化方式

静态初始化

Int[] a={1,2,3};

动态初始化

数组的默认初始化

数组的四个基本特点

长度是确定的,一旦被创建,不可以改变大小;

数组中的元素必须是相同类型。

数组中的元素可以是基本类型和引用类型;

数组变量是引用类型,数组对象本身在堆中;

数组边界

下标的合法区间[0,length-1],如果越界会报错:

ArrayIndexOutOfBoundsException 数组下标越界异常

小结:

数组是相同数据类型(数据类型可以为任意类型)的有序集合;

数组也是对象,数组元素相当对象的成员变量;

数组长度是确定的,不可改变,如果越界会报错;

数组的使用

普通的for循环

Foreach循环

数组做方法入参

数组做返回值

多维数组

Inta [][] = new int[2][5];

二维数组的元素是一维数组;2行5列

Arrays使用

数组的工具类java.util.arrays

查看jdk帮助文档

常用功能:

给数组赋值:通过fill方法

对数组排序:sort方法,默认升序;

比较数组:equals比较是否相等

查找数组:binarySearch方法对排序好的数组进行二分查找;

toString

冒泡排序

package com.array;

import java.util.Arrays;

public class ArrayDemo {
    public static void main(String[] args) {
        //冒泡排序
        int[] a={1,23,4,23,45,45,6,99};
        int[] sort = sort(a);
        System.out.println(Arrays.toString(sort));

    }
    public static int[] sort(int[] array){

        for (int i = 0; i < array.length-1; i++) {
            //优化
            boolean flag = false;
            for (int j = 0; j < array.length -1- i; j++) {
                if(array[j]>array[j+1]){
                    int temp = array[j];//临时变量temp
                    array[j] = array[j+1];
                    array[j+1] =temp;
                    flag = true;
                }
            }
            if (flag == false) {
                break;
            }
        }
        return array;

    }
}

猜你喜欢

转载自www.cnblogs.com/cxdh/p/12941208.html