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. 数组的使用
数组是多个相同类型数据的组合,实现对这些数据的统一管理
数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
数组创建后,如果没有赋值,有默认值
**int0,short0,byte0,long0,float0.0,double0.0,char\u0000,booleanfalse,Stringnull**
使用数组的步骤 1. 声明数组并开辟空间 2 给数组各个元素赋值 3 使用数组
数组的下标是从 0 开始的。
数组属于引用类型
3. 数组拷贝
浅拷贝:数组变量拷贝到另一个数组变量,两数组都将引用同一个数组(引用类型)
深拷贝:一个数组的所有值拷贝到新数组
Arrays.copyOf(oldArray,oldArray.length*2)//扩容
不能保证浅拷贝与深拷贝就是这样的,突然想到的
4. 数组排序
冒泡排序
for(inti=0;i<arr.length-1;i++) {
for(intj=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. 声明数组
动态初始化
静态初始化
2. 使用
多重循环遍历
类与对象
1. 类与对象的关系
类是抽象的,概念的,代表一类事物,比如人类,猫类.., 即它是数据类型.
对象是具体的,实际的,代表一个具体事物, 即 是实例.
类是对象的模板,对象是类的一个个体,对应一个实例
对象在内存中的存在形式
2. 对象
构造一个对象: new操作符 + 构造器(构造函数)
new Date() //对象被初始化为当前日期和时间
访问属性
对象名.属性名
成员方法
1)提高代码的复用性
2)可以将实现细节封装起来,供别人调用即可
3. 方法调用机制
程序执行到方法时,会开辟一个独立的空间(栈空间)
犯法执行完毕或执行到return时,就会返回
返回调用方法的地方
返回后再继续执行方法后面的地方
main方法(栈)执行完毕后整个程序退出
4. 方法传参机制
基本数据类型,传递的是值(值拷贝),形参的改变不影响实参
引用数据类型,传递的是地址(传递也是值,但值是地址),可以通过形参影响实参
5. 方法重载
方法名必须相同
形参列表必须不同(类型或个数或顺序至少一个不同,参数名无要求)
返回类型无要求
方法签名:方法的名字和参数列表,不包括返回类型