Java基础优胜客APP下载包装类 System类 异常)

    技术2022-07-11  80

    Map是集合容器,优胜客APP官方下载负责人Q1204007777存放的元素有键与值两部分组成,通过键可以找到所对应的值,键和值必须是引用数据类型,键是唯一的,不能重复,没有顺序。HashMap是Map的实现类.Map的添加,删除,查询

    复制代码

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    //创建Map对象

    Map<String, String> map = new HashMa p<String,String>();

    //给map中添加元素

    map.put("1", "Monday");

    map.put("7", "Sunday");

    System.out.println(map);

    //当给Map中添加元素,会返回key对应的原来的 value值,若key没有对应的值,返回null System.out.println(map.put("1", "Mo n")); // Monday

    System.out.println(map); // {星期日=Su nday, 星期一=Mon}   根据指定的key获取对应的value

    String en = map.get("1");

    System.out.println(en); // Sunday 根据key删除元素,会返回key对应的value值

    String value = map.remove("1");

    System.out.println(value); // Sunday

    System.out.println(map); // {1=Mon}

    Map的遍历

    复制代码

    1

    2

    3

    4

    5

    6

    7

    8

    Map<String, String> map = new HashMa p<String,String>();//给map中添加元素

    map.put("邓超", "孙俪");

    map.put("李晨", "范冰冰");

    map.put("刘德华", "柳岩"); //获取Map中的所有key

    Set<String> keySet = map.keySe t();

     for(String key : keySet){

        System.out.println(map.get(ke y))

     }

     

    Calender

    复制代码

    1

    2

    3

    4

    5

    6

    7

    8

    9

    /*

    public abstract class Calendar  extends Object  implements Serializable, Cloneable, Comparable<Calendar>   抽象类

     */    //创建对象  

            Calendar calendar = Calendar.getInstance();

     

            //get(int filed)

            //获取年月日  时分秒信息

            int year = calendar.get(Calendar.YEAR);

            int month = calendar.get(Calendar.MONTH)+1;//从0开始算起,最大11;0代表1月,11代表12月     int date = calendar.get(Calendar.DATE);     int hour = calendar.get(Calendar.HOUR);

    复制代码

    1

    2

    3

    4

    int minute = calendar.get(Calendar.MINUTE);

    int second = calendar.get(Calendar.SECOND);

    System.out.println(year+"年"+month+"月"+date+"日 "+hour+":"+minute+":"+second);  //2020年7月1日     11:14:46

         //指定字段增加值     Calendar c = Calendar.getInstance();     //修改当前时间为3天后     c.add(Calendar.DATE, 3);     //修改当前时间为5小时后     c.add(Calendar.HOUR, 5);

    复制代码

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    //转换日期类型

       Date time = calendar.getTime();

       System.out.println(time);  // Wed Jul 01 11:16:10 CST 2020

     

       //设置时间为2020年5月7日

       calendar.set(Calendar.YEAR, 2020);

       calendar.set(Calendar.MONTH, 5);

       calendar.set(Calendar.DATE, 7);

       int year2 = calendar.get(Calendar.YEAR);

       int month2= calendar.get(Calendar.MONTH);

       int date2 = calendar.get(Calendar.DATE);

       System.out.println(year2+"年"+month2+"月"+date2+"日");//2020年5月7日

          //使用日历计算平年闰年更为方便

          Calendar c = Calendar.getInstance();

          c.set(2000, 2, 1);

          c.add(Calendar.DATE, -1);

          int a = c.get(Calendar.DATE);

          System.out.println(a);

     

     

     

     

     

     

      

    Date

    构造函数  :public Date()

    分配一个 Date对象并对其进行初始化,以便它表示分配的时间,测量到最近的毫秒。System.currentTimeMillis();

    复制代码

    1

    2

    3

    4

    Date date1 = new Date();

    System.out.println(date1);//当前日期

    Date date2 = new Date(12354356000000L);

    System.out.println(date2);//指定日期

      //日期和毫秒的转换

    复制代码

    1

     

      Date date = new Date();

    复制代码

    1

     

      long time = date.getTime();

    复制代码

    1

     

      System.out.println(time);//1499169262875

    复制代码

    1

     

      

    DateFormat

      格式化日期类,通常用于日期和String的转换

    复制代码

    1

    2

    3

    4

    Date date2 = new Date(); //DateFormat抽象类,SimpleDateFormat是DateF ormat实现类

    DateFormat df = new SimpleDateFormat("yyy y-MM-dd E HH:mm:ss a");

    String str = df.format(date2);

    System.out.println(str);//2017-07-04 星期 二 20:04:43 下午

     

     

      日期字符串之间的抓换

    复制代码

    1

    2

    3

    4

    5

    6

    Date date = new Date(12354356000000L);

    DateFormat df = new SimpleDateFormat(“yyy y年MM月dd日”);

    String str = df.format(date);

    String str = ”2020年12月11日”;

    DateFormat df = new SimpleDateFormat(“yyy y年MM月dd日”);

    Date date = df.parse(str);

    System

    复制代码

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    public static void main(String[] args) {

        // 获取当前时间的毫秒值

        System.currentTimeMillis();

       // 结束当前程序

        System.exit(0);

      // 数组的拷贝

     

        System.currentTimeMillis();//取当前系统时间与1970年01月01日00:00点 之间的毫秒差值

        System.exit(0);//结束程序,通常传入0记为正常状 态,其他为异常状态

        int[] src = new int[]{1,2,3,4,5};

        int[] dest = new int[]{6,7,8,9,10}; //源数组,源数组的起始位置,目标数组,目标数组的起 始位置,目标数组的长度

        System.arraycopy( src, 0, dest, 0, 3); //src数组元素[1,2,3,4,5] //dest数组元素[1,2,3,9,10]

    }

     

    Math

    abs方法,结果都为正数

    复制代码

    1

    2

    double d1 = Math.abs(-5); // d1的值为5

    double d2 = Math.abs(5); // d2的值为5

      

    ceil方法,结果为比参数值大的最小整数的double值

    复制代码

    1

    2

    3

    double d1 = Math.ceil(3.3); //d1的值为 4.0

    double d2 = Math.ceil(-3.3); //d2的值为 -3.0

    double d3 = Math.ceil(5.1); // d3的值为 6.0

    floor方法,结果为比参数值小的最大整数的double值

    复制代码

    1

    2

    3

    double d1 = Math.floor(3.3); //d1的值为3.0

    double d2 = Math.floor(-3.3); //d2的值 为-4.0

    double d3 = Math.floor(5.1); //d3的值为 5.0

     

    max方法,返回两个参数值中较大的值

    复制代码

    1

    2

    double d1 = Math.max(3.3, 5.5); //d1的值为 5.5

    double d2 = Math.max(-3.3, -5.5); //d2的 值为-3.3

     

    min方法,返回两个参数值中较小的值

    复制代码

    1

    2

    double d1 = Math.min(3.3, 5.5); //d1的值为 3.3

    double d2 = Math.max(-3.3, -5.5); //d2的 值为-5.5

     

    pow方法,返回第一个参数的第二个参数次幂的值

    复制代码

    1

    2

    double d1 = Math.pow(2.0, 3.0); //d1的值为 8.0

    double d2 = Math.pow(3.0, 3.0); //d2的值为 27.0

     

    round方法,返回参数值四舍五入的结果

    复制代码

    1

    2

    double d1 = Math.round(5.5); //d1的值为6.0

    double d2 = Math.round(5.4); //d2的值为5.0

     

    random方法,产生一个大于等于0.0且小于1.0的double小数

    复制代码

    1

    2

    3

    4

    double d1 = Math.random();

    //得到的 是[0,1)的小数

    //锁定范围获取 a-b整数

    int a = (int)(Math.random()*(b-a+1))+a

     

    包装类

      包装类的作用实现基本数据类型和字符串之间的转换字符串,基本数据类型,

      包装类型转换字符串转换基本数据类型需要调用包装类 包装类.parse基本数据类型("字符串");

      int a = Integer.parseInt("12");

     

      基本数据类型转换字符串 String str = ""+基本数据类型;

      或者 String str =String.valueOf(34);

      基本数据类型转换包装类型: Integer obj =Interger.valueOf(3);

      包装类型转换基本数据类型: int a =obj.intValue();

      jdk1.5以后系统提供自动装箱:int和integer可以自动转换

     

     

    大数据运算

    BigInteger

    大数据整数的加,减,乘,除

    复制代码

    1

    2

    3

    4

    5

    //大数据封装为BigInteger对象

    BigInteger big1 = new BigInteger("12345 678909876543210");

    BigInteger big2 = new BigInteger("98765 432101234567890"); //add实现加法运算

    BigInteger bigAdd = big1.add(big2); System.out.println(bigAdd); //subtract实现减法运算

    BigInteger bigSub = big1.subtract(big 2); System.out.println(bigSub); //multiply实现乘法运算 BigInteger bigMul = big1.multiply(big 2);System.out.println(bigMul); //divide实现除法运算 BigInteger bigDiv = big2.divide(big1); System.out.println(bigDiv);

     

    BigDecimal

    有些时候操作小数的,会出现精度问题如

    复制代码

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    System.out.println(0.09+0.01);//0.0999999 9999999999 <br>System.out.println(1.201*100);//120.10000 000000001

    //大数据封装为BigDecimal对象

    BigDecimal big1 = new BigDecimal("0.09");

    BigDecimal big2 = new BigDecimal("0.01"); //add实现加法运算

    BigDecimal bigAdd = big1.add(big2); System.out.println(bigAdd );

    BigDecimal big3 = new BigDecimal("1.0");

    BigDecimal big4 = new BigDecimal("0.32"); //subtract实现减法运算

    BigDecimal bigSub = big3.subtract(big4);

    System.out.println(bigSub);

    BigDecimal big5 = new BigDecimal("1.10 5");

    BigDecimal big6 = new BigDecimal("100"); //multiply实现乘法运算

    BigDecimal bigMul = big5.multiply(big6); System.out.println(bigMul); //divide实现除法

    BigDecimal bigDiv = big5.divide(big6,2,Bi gDecimal.ROUND_UP);

     

    Arrays

    复制代码

    1

    2

    3

    4

    5

    6

    7

    8

    9

    使用二分查找搜索指定int类型数组

    int[] arr = {1,3,4,5,6};

    int index = Arrays.binarySearch(arr, 4); //index的值为2

    int index2= Arrasy.binarySearch(arr, 2); //index2的值为-1

    数组升序排序

    int[] arr = {1,5,9,3,7};

    Arrays.sort( arr );

    将数组的内容以字符串形式呈现

    int[] arr = {1,5,9,3,7}; String str = Arrays.toString(arr); // str 的值为[1, 3, 5, 7, 9]

      

     

    异常

      如果产生异常的地方没有对他处理,那么会向上抛出,抛向调用者,如果调用者没有对异常作出处理,会给jvm处理,jvm会找到自己内部能不能识别到该异常信息对应的类,如果找到了,会构建一个异常的对象,会把异常产生的原因,异常产生的位置,异常产生的内容封装进该对象中在控制台显现出来,并且终止程序。

      throwable类中

        public String getMessage()返回此throwable的详细消息字符串。在Throwable类的下的子类Error异常情况是无法解决的,属于硬伤,作为程序员能够解决的是Exception这种类型的异常情况。

    Exception:

      编译期异常:通过使用集成开发工具在编写程序的时候,就出现的异常问题,如果不处理,程序无法继进行,需要程序员立刻对异常做出处理,否则无法编写。

      运行期异常:在编译之后,程序在运行过程中产生的异常问题,JM把异常信息抛出,一般是由于逻辑错误导致的异常情况,通过优化你的代码可以解决掉的

    编译期异常:除了RunTimeException异常之外,其余的都是编译期异常。

    运行期异常:

      算术异常:Ari thmeticException

      空指针异常:Null PointerException

      越界异常:IndexOutOfBoundsException

      类转换异常:ClassCastException

     

    Processed: 0.011, SQL: 12