``
//java.lang.Integer类对象的创建
//Integer 类在对象中包装了一个基本类型 int的值。
////创建Integer类的对象: 静态方法传递int数字
//Integer i5 = Integer.valueOf(300);
////创建Integer类的对象: 静态方法传递String数字
//Integer i6 = Integer.valueOf("300");
//Integer valueOf(int i): 作用: 把方法参数int类型的i转换成Integer类型并返回
//Integer valueOf(String i): 把方法参数String类型的i转换成Integer类型并返回
//注意:
// 1.构造方法/静态方法参数不可以超出int的范围
// 2.构造方法/静态方法如果采用String的参数,参数中不可以包含非数字字符
//BigInteger 代表超级大的小数,不可变的任意精度的小数。
// 1.构造方法: public BigDecimal(String val):
//作用: 把构造方法参数String类型的val,转换成BigDecimal类的对象
//参数: 必须是String类型的数字,内部不能出现非数字内容
//BigDecima对于 除法 运算,可能会出现 无限循环/无限不循环的结果
//解决方案:
// (1)告诉它保留多少位小数
// (2)如何保留小数
//public BigDecimal divide(BigDecimal divisor, int scale: 要保留几位小数, int roundingMode: 如何保留小数):
//按照方法参数指定的保留位数以及保留方式做除法运算
//参数: BigDecimal.ROUND_UP 向上加1。
//BigDecimal.ROUND_DOWN 直接舍去。
//BigDecimal.ROUND_HALF_UP 四舍五入。
////创建BigDecimal类的对象 ""中不能有非数字符号
//BigDecimal b1 = new BigDecimal("10.0");
////BigDecimal b3 = b1.divide(b2);//3.333333333333333333333
////保留3位小数,不管第四位是什么,直接进一
//BigDecimal b3 = b1.divide(b2, 3, BigDecimal.ROUND_UP);
// System.out.println(b3);//3.334
////把BigDecimal转成double
//double num = b1.doubleValue();
```js
/*
java.lang.Integer类: 内部会包装一个int/String数字
1.思考:
如何获取int数据的取值范围? 最大值和最小值(通过Integer类中的常量)
public static final int MAX_VALUE = 0x7f ff ff ff;
public static final int MIN_VALUE = 0x80000000;
Integer.MAX_VALUE Integer.toBinaryString(num)
如何获取int数字对应的二进制/八进制/十六进制数字?
toBinaryString 转换成二进制,
toOctalString(int i): 转换成八进制
toHexString 转换成十六进制
0b: 表示二进制 0x: 表示十六进制 0: 表示八进制
*/
//异常处理方式一:
//使用throws关键字: 声明抛出异常
// throws Exception
// 1.throws关键字必须写在方法声明的后面
// 2.throws关键字后面跟的是异常类,而且可以写多个
// 3.throw必须使用在方法内部
// 4.throw后面必须写异常对象,而且只能写一个
// 5.throw表示把一个具体的异常对象抛出给该方法的调用者
// e.printStackTrace(); 打印异常的跟踪栈信息并输出到控制台。
/*
包装类的自动装箱拆箱
自动装箱:
基本类型数据,可以自动转换为对应的引用类型(包装类),是自动完成滴,不需要代码特殊处理
自动拆箱:
引用类型数据(包装类),可以自动转换为对应的基本类型,是自动完成滴,不需要代码特殊处理
发生自动拆箱: 把引用类型数据(对象)内部包装的一个基本类型数字帮助我们获取出来
底层原理:
调用Integer类的成员方法intValue
返回Integer对象i1中封装的int数据value的值
i1.intValue()
*/
/*
基本类型int 转换成 String
1.最简单/最常用的方式:
基本类型int数据 + "" 借助+进行字符串拼接
//String的静态方法valueOf,把int数字转换成String
String s1 = String.valueOf(200);
//Integer的静态方法toString,把int数字转换成String
String s2 = Integer.toString(300);
*/
/*
5.获取键盘录入的新的用户名,保存到String变量userName中
String userName = sc.nextLine();
//3.定义方法判断新的用户名是否可以用
checkUserName(list, userName);
public static void checkUserName(ArrayList<String> list, String userName) throws UserNameRegisterException {
//遍历集合
for (int i = 0; i < list.size(); i++) {
//说明注册过了
if (userName.equals(list.get(i))) {
throw new UserNameRegisterException("非常抱歉,宝贝,用户名: " + userName + ", 已经被注册了....");
}
}
}
*/
/*
String解析成对应的基本类型(很常用的)
包装类中除了Character以外,每个包装类都会提供一个静态方法
public static xxx parseXxx(String str):
把方法参数String数据str转换成xxx类型的数据
Integer类:
public static int parseInt(String str):
把方法参数String数据str转换成int类型的数据
String str = "20";
//Integer类的静态方法parseInt把字符串数字str,解析成int数字
int num = Integer.parseInt(str);
Double类:
public static double parseDouble(String str):
把方法参数String数据str转换成double类型的数据
String str2 = "true";
//Boolean类的静态方法parseBoolean把字符串布尔值,解析成boolean类型的值
boolean flag = Boolean.parseBoolean(str2);
Boolean类:
public static boolean parseBoolean(String str):
把方法参数String数据str转换成boolean类型的数据
*/
/*
有一些特定的代码无论异常是否发生,无论异常是否被正确处理,都需要执行的代码,写在finally中
使用场景:
后面使用IO流对象/操作数据库的连接对象后,必须要释放资源,
而释放资源的代码就必须写在finally当中
int[] array = {100, 200, 300};
int value = getValue(array, 5);
int value2 = array[index];
*/
/*
异常处理方式一:
使用throws关键字: 声明抛出多个异常
告诉方法的调用者,你调用我的方法时,我方法内部有可能会产生什么样子的异常,
方法内部没有处理,谁调用我谁来处理
使用格式:
修饰符 返回值类型 方法名称(形式参数列表....) throws 异常类1,异常类2 {
方法体;
}
场景:
项目经理: JVM
项目组长: main方法
程序猿: sports方法
注意:
throws后面的多个异常类之间如果有继承关系,可以直接只写父类
*/
//readFile