5javase

73 阅读5分钟

``

  //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