Java基础复习笔记第二天

ReviewDay2

一. 控制流程

1. 块作用域

  • 块(复合语句),若干Java语句用大括号组合起来

2. 条件语句

  • if (condition) statement;
  • if (condition) { }; //使用块(复合语句)
  • if (condition) { } else if() { } else { };

3. 循环

  • while(condition) statement;
  • do statement while (condition);
  • for (int i = 1; i <= 10; i ++) { }
  • 增强for:for each 循环(for each element in a)

    for (variable: collection) statement;

4. 多重选择

  • switch (choice) { case 1: … break; case 2: … break; default: … break;}

5. 终端控制流程的语句

  • break: 退出循环语句
  • break + 标签: 可以用于跳出多重嵌套的循环语句
  • continue: 不再执行循环体的剩余部分,立刻跳到循环首部,如果是for循环,则跳到“更新”部分

二. 大数

处理任意长度的数字序列的数值

  • BigInteger

    API: static BigInteger valueOf(long x) 返回任意值大整数

    API: BigInteger add(BigInteger other)

    API: BigInteger subtract(BigInteger other)

    API: BigInteger multiply(BigInteger other)

    API: BigInteger divide(BigInteger other)

    API: BigInteger mod(BigInteger other)

    API: BigInteger sqrt()

    API: int compareTo(BigInteger other)

  • BigDecimal

    API: BigDecimal add(BigDecimal other)

    API: BigDecimal subtract(BigDecimal other)

    API: BigDecimal multiply(BigDecimal other)

    API: BigDecimal divide(BigDecimal other)

    API: BigDecimal divide(BigDecimal other, RoundingMode mode) //如果商无限小数,第一个divide会报错,RoundingMode.HALF_UP四舍五入

    API: BigDecimal compareTo()BigDecimal other

    API: static BigDecimal valueOf(long x) //也可以再传入一个指数

三. 数组

1. 声明数组

  • 动态初始化

    先声明数组数据类型 数组名[]

    创建数组: 数组名 = new 数据类型[大小]

  • 静态初始化

    数据类型[] 数组名 = { 元素值, 元素值, }

匿名数组new int[] {1, 2, 3}

2. 数组的使用

  1. 数组是多个相同类型数据的组合,实现对这些数据的统一管理

  2. 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。

  3. 数组创建后,如果没有赋值,有默认值

    **int 0, short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000, boolean false, String null**
    
  4. 使用数组的步骤 1. 声明数组并开辟空间 2 给数组各个元素赋值 3 使用数组

  5. 数组的下标是从 0 开始的。

  6. 数组属于引用类型

3. 数组拷贝

  • 浅拷贝:数组变量拷贝到另一个数组变量,两数组都将引用同一个数组(引用类型)

  • 深拷贝:一个数组的所有值拷贝到新数组

    Arrays.copyOf(oldArray, oldArray.length * 2) //扩容
    

    不能保证浅拷贝与深拷贝就是这样的,突然想到的

4. 数组排序

  • 冒泡排序

    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]) {
              temp = arr[j];
              arr[j] = arr[j + 1];
              arr[j + 1] = temp;
          }     
      }
    }
    
  • Arrays 的API

    Arrays.sort(array) //优化的快速排序(QuickSort)

5. 多维数组 (数组的数组)

1. 声明数组
  • 动态初始化

    类型[][] 数组名 = new 类型 [大小] [大小]

  • 静态初始化

    类型[][] 数组名 = {{ }, { }, }

2. 使用
  • 多重循环遍历

类与对象

1. 类与对象的关系

  1. 类是抽象的,概念的,代表一类事物,比如人类,猫类…, 即它是数据类型.
  2. 对象是具体的,实际的,代表一个具体事物, 即 是实例.
  3. 类是对象的模板,对象是类的一个个体,对应一个实例
  4. 对象在内存中的存在形式
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OoKiFqJS-1649234441352)(./img/类与对象内存.png)]

2. 对象

  • 构造一个对象: new操作符 + 构造器(构造函数)

    new Date() //对象被初始化为当前日期和时间

  • 访问属性

    对象名.属性名

  • 成员方法

    1)提高代码的复用性

    2)可以将实现细节封装起来,供别人调用即可

3. 方法调用机制

  • 程序执行到方法时,会开辟一个独立的空间(栈空间)
  • 犯法执行完毕或执行到return时,就会返回
  • 返回调用方法的地方
  • 返回后再继续执行方法后面的地方
  • main方法(栈)执行完毕后整个程序退出

4. 方法传参机制

  • 基本数据类型,传递的是值(值拷贝),形参的改变不影响实参
  • 引用数据类型,传递的是地址(传递也是值,但值是地址),可以通过形参影响实参

5. 方法重载

  • 方法名必须相同
  • 形参列表必须不同(类型或个数或顺序至少一个不同,参数名无要求)
  • 返回类型无要求
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值