欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java大数据学习day04

程序员文章站 2024-01-15 19:14:10
...

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 0
    • float,double, 0.0
    • char ‘\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)赋值调用,推荐使用