java大数据Day04

    xiaoxiao2022-07-13  155

    Random的基本使用

    使用步骤(和Scanner类似)

    1、导包

    import java.util.Random

    2、创建对象

    Random r = new Random();

    3、获取随机数

    int num = r.nextInt(100);产生的数据在0到100之间,包括0,不包括100括号里面的100是可以变化的,如果是1000,就是0到1000之间的数据

    跳出循环

    1、for:用于指定次数的循环,应用率比较高

    2、break:跳出循环

    ​ countinue:跳过循环中的剩余语句而进入下一次循环

    3、嵌套循环

    ​ 1)嵌套中的循环,一般多行多列的时候,

    ​ 外层控制行,内层控制列

    ​ 2)执行规则:外层循环走一次,内层走完所有的次数;

    ​ 3)建议:循环次数越少越好,能用一层解决的不要用多层解决

    ​ 如果你写的程序必须用到三层以上的循环,那么就考虑程序的设计是否有问题

    ​ 4)break:只能跳出一层循环


    数组

    1、概念

    数组是存储同一种数据类型多个元素的容器。数组既可以存储基本数据类型,也可以存储引用数据类型。

    2、定义格式

    格式1:数据类型[] 数组名;

    格式2:数据类型 数组名[];

    注意:这两种定义做完了,数组中式没有元素的。

    3、初始化

    动态初始化:在初始化时,只定义了数组的长度,通过系统来决定数组的初始化值;静态初始化:在初始化时,指定了每一个数组元素的初始化值,通过系统决定数组的长度;

    4、异常

    数组下标越界:

    ​ ArrayIndexOutOfBoundsException

    空指针异常:

    ​ NullPointerException

    3、异常机制

    ​ try----catch异常

    5、数组的复制

    1、arrays.copyOf(src, length)

    ​ JDK1.6版本提供的,使用时要用1.6及以上的版本

    2、System.arraycopy(src, srcPos, dest, destPOs, length)

    src:源数组

    srcPos:源数组的开始复制的位置

    dest:目标数组

    destPOs:目标数组的开始复制的位置

    length:复制的长度

    javaAPI提供的,底层是用c++写的,所以速度非常快,

    比for循环实现数组拷贝的效率高,推荐使用。


    栈和堆

    栈:

    局部变量就是定义在方法体中的变量使用完毕后会立即释放

    堆:

    存储的是new出来的对象;每一个对象都是有地址值的;每一个对象都是有默认值的; byte,short,int,long 0float,double, 0.0char ‘\u0000’boolean false引用数据类型 null使用完毕后有垃圾回收器在空闲的时候被回收

    冒泡排序

    ​ //定义一个数组对象 ​ int[] arr = {2,6,1,4}; ​ boolean isSorted;//优化 ​ //冒泡排序算法:n-1轮比较 ​ for (int i = 0; i < arr.length - 1; i++) { ​ isSorted = true;//建设剩下的元素已经排序好了 ​ for (int j = 0; j < arr.length - 1 - i; j++) { ​ if (arr[j] > arr[j + 1]) {//前面的数字大于紧跟在后面的数字 ​ int temp = arr[j]; ​ arr[j] = arr[j + 1]; ​ arr[j + 1] = temp; ​ //一旦进行数组元素的交换 ​ //那么剩下的元素时没有进行交换的 ​ isSorted = false; ​ } ​ System.out.println("第" + i + "轮 " + ": arr[j] = " + arr[j]); ​ } ​ System.out.println("--------------------"); ​ if (isSorted) { ​ break; ​ } ​ System.out.print("第" + i + "轮排序后的数组:"); ​ for (int j = 0; j < arr.length; j++) { ​ System.out.print(arr[j] + " "); ​ } ​ System.out.println(); ​ } ​ System.out.print("排序后的数组:"); ​ for (int i = 0; i < arr.length; i++) { ​ System.out.print(arr[i] + " "); ​ }

    方法:(函数、过程)

    1、概念:

    封装了一段特定的业务逻辑的功能。方法尽可能是独立的,让一个方法去干一件事。方法也可以被反复的重复的去调用。较少代码的重复,有利于代码的后期维护,同时能够团队的开发成本,提高开发效率。

    2、语法结构:

    ​ 修饰词 返回值类型 方法名(参数列表){

    ​ 方法体;//具体的业务逻辑功能

    ​ return 返回值;

    ​ }

    修饰词:public、static返回值类型:用于限定返回值的具体类型方法名:为了调用方便,起的名字参数列表:(参数类型 参数名,参数类型 参数名2,…)参数名:用于接受调用方法时传入的数据变量

    3、方法的使用:

    1)明确方法是否有返回值2)方法是否有参数列表

    4、方法的调用

    1)单独去调用,不建议使用2)输出调用,有意义的,不太完善。可能要对得到的数字进行操作3)赋值调用,推荐使用
    最新回复(0)