java大数据Day04

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)赋值调用,推荐使用
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值