Java学习第16天——常用API

一、包装类

  1 什么是包装类

  包装类就是就是能够直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。是我们在实际使用中将基本数据类型转换为对象,方便操作

  2 包装类与基本数据类型的关系

  Java学习第16天——常用API

   3 基本使用

  基本类型转换为引用类型 

Java学习第16天——常用API

 

 二、Integer

  1 基本使用

         // 获取最大值和最小值
        System.out.println("int最大值 : " + Integer.MAX_VALUE);
        System.out.println("int最小值 : " + Integer.MIN_VALUE);
        System.out.println(Byte.MAX_VALUE);
        System.out.println(Long.MAX_VALUE);

        // 创建Integer对象   int类型转换为Integer类型
        Integer i1 = new Integer(10);
        // 可以直接把纯数字的字符串转换为Integer类型
        Integer i2 = new Integer("10");
        System.out.println(i1);
        System.out.println(i2);
        // false
        System.out.println(i1 == i2);
        // 覆写了equals true
        System.out.println(i1.equals(i2));

   2 常用方法

        // 1 对象 int-->Integer
        Integer i1 = new Integer(10);
        // 2 Interger-->int
        int i2 = i1.intValue();
        System.out.println(i2);
        //3 static int parseInt(String s); : 把纯数字字符串转换为int类型
        //String-->int 必须是纯数字字符串,有小数点也不行
        int i3=Integer.parseInt("123");
        System.out.println(i3);
        //小数只允许有一个小数点
        double d=Double.parseDouble("3.2");
        System.out.println(d);
        //将int类型的值转换为二进制的字符串表示形式
        //static String toBinaryString(int value);
        String s1=Integer.toBinaryString(12);//1100
        System.out.println(s1);
        //转换为八进制
        System.out.println(Integer.toOctalString(10));//12
        //转换为十六进制
        System.out.println(Integer.toHexString(10));//a
        //int-->Integer
        Integer i4=Integer.valueOf(10);
        //String-->Integer
        Integer i5=Integer.valueOf(10);
        System.out.println(i4==i5);  //true

  3 类型转换

//1 int-->Integer
        Integer i1=Integer.valueOf(11);
        //2 Integer-->int
        int i2=i1.intValue();
        //3 String-->Integer
        Integer i3=Integer.valueOf("22");
        //4 Integer-->String
        String s1=i3.toString();
        //5 String-->int
        int i4=Integer.parseInt("123");
        //6 int-->String
        String s2=2+"";

   4 自动装箱和自动拆箱

              4.1 概念

                    自动装箱: 把基本类型自动转换为对应的包装类类型
 *                 自动拆箱: 把对应的包装类类型自动转换为基本类型
 *                  并且 自动装箱与自动拆箱都是在编译阶段完成的

public static void main(String[] args) {
        //装箱与拆箱
        Integer i1=Integer.valueOf(11);
        int i2=i1.intValue();
        //自动装箱与拆箱
        Integer i3=2;
        int i4=i3;
        //此时的10是int类型的,没有办法转换为Object类型
        //所以,需要把int自动装箱为Integer类型,然后发生多态,再转换为Object类型
        m1(10);
    }
    public static void m1(Object obj){
        System.out.println(obj);
    }

         下面是编译后的class文件

 Java学习第16天——常用API

 

   5 整形常量池

Java学习第16天——常用API

 

 //自动装箱=Integer.valueOf(123);
        //整型常量池的范围:-128~127之间
        Integer i1=123;
        Integer i2=123;
        //true
        System.out.println(i1==i2);
        i1=new Integer(123);
        i2=new Integer(123);
        //false
        System.out.println(i1==i2);
        //这种写法就等于new Integer(128);
        i1=128;
        i2=128;
        //false
        System.out.println(i1==i2);
        String s1="abc";
        String s2="abc";
        System.out.println(s1==s2);
        s1=new String("abc");
        s2=new String("abc");
        System.out.println(s1==s2);

 三、System

  1是什么

  System代表系统,系统很多属性和控制方法都在这个类中,位于java.lang包下

   2 怎么用

    // 计算时间差
        long startTime = System.currentTimeMillis();
        String[] strs = { "a", "b", "c", "d", "e", "f", "a", "b", "c", "d" };
        String temp = "";
        // for (int i = 0; i < strs.length; i++) {
        // temp+=strs[i]+",";
        // }
        StringBuilder sb=new StringBuilder();
        for (int i = 0; i < strs.length; i++) {
            sb.append(strs[i]+",");
        }
        temp=sb.toString();
        System.out.println(temp);
        long endTime=System.currentTimeMillis();
        //关闭JVM,0表示正常退出,非0表示异常退出,一般用于关闭图形界面
        System.exit(0);
        System.out.println("耗时 : " + (endTime - startTime) + "毫秒");

四、Date

1 是什么

表示特定的瞬间,精确到毫秒

2 构造方法

Date():使用无参构造器创建的对象可以获取本地当前时间。

Date(long date)

    //获取当前系统时间
        Date d1 =new Date();
        //获取时间原点指定时间的毫秒数
        d1=new Date(1000);
        System.out.println(d1);

3 时间格式化

Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat

类是一个不与语言环境有关的方式来格式化和解析日期的具体类。

它允许进行格式化:日期à文本、解析:文本à日期

 // 年y, 月M, 日d, 小时H, 分m, 秒s, 毫秒S
        //创建格式化对象并指定格式
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss:SSS");
        //对时间进行格式化,返回字符串类型
        String strDate=sdf.format(d1);
        //1970年01月01日 08:00:00 000
        System.out.println(strDate);
        //解析 字符串格式必须和解析格式一致
        Date d2=sdf.parse(strDate);
        System.out.println(d2);

五、Calendar

1 是什么

Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能

2 方法

获取Calendar实例的方法

使用Calendar.getInstance()方法

调用它的子类GregorianCalendar的构造器。

一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想 要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、 MINUTE、SECOND

public void set(int field,int value)

public void add(int field,int amount)

public final Date getTime()

public final void setTime(Date date)

3 注意

获取月份时:一月是0,二月是1,以此类推,12月是11

获取星期时:周日是1,周一是2 , 。。。。周六是7

六、 Math

1 是什么

Math提供科学计算和基本的数字操作,常用方法都是静态的,使用类名直接调用即可
 * 在java.lang下面,使用时不需要导包

2 常用方法

//绝对值  abs
        System.out.println(Math.abs(-1.2));
        //向上取整  ceil
        System.out.println(Math.ceil(1.0001));
        //向下取整  floor
        System.out.println(Math.floor(2.999));
        //比较谁大  max
        System.out.println(Math.max(2.3, 2.2));
        //比较谁小  min
        System.out.println(Math.max(2.3, 2.2));
        //平方根开平方   sqrt
        System.out.println(Math.sqrt(16));
        //立方根开立方   cbrt
        System.out.println(Math.cbrt(8));
        //随机数:获取一个大于等于0并且小于1的数  random
        System.out.println(Math.random());
        //向下取整(随机数*(最大值-最小值+1)+最小值)
        System.out.println(Math.random()*10+10);
        //四舍五入:四舍六入五留双,  小数大于0.5就进位,小于0.5就舍弃,等于0.5就取偶数
        //比如:2.50001:3  ,  3.5000:4  ,  2.5000:2
        System.out.println(Math.rint(2.50001));
        //2的3次方
        System.out.println(Math.pow(2, 3));

七、BigInteger

1 是什么

1、Integer类作为int的包装类,能存储的最大整型值为231-1,Long类也是有限的, 最大为263-              1、如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行

         2、java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。 另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、 位操作以及一些其他操作。

2 常用方法

BigInteger add(BigInteger val) :返回其值为 (this + val) 的 BigInteger

BigInteger subtract(BigInteger val) :返回其值为 (this - val) 的 BigInteger

BigInteger multiply(BigInteger val) :返回其值为 (this * val) 的 BigInteger

BigInteger divide(BigInteger val) :返回其值为 (this / val) 的 BigInteger。整数 相除只保留整数部分。

BigInteger rpublic BigInteger abs():返回此 BigInteger 的绝对值的 BigInteger。

emainder(BigInteger val) :返回其值为 (this % val) 的 BigInteger。

BigInteger[] divideAndRemainder(BigInteger val):返回包含 (this / val) 后跟(this % val) 的两个 BigInteger 的数组。

BigInteger pow(int exponent) :返回其值为 (thisexponent) 的 BigInteger。

3 使用

//参数是字符串
        BigInteger v0=new BigInteger("11");
        //参数是数值
        BigDecimal v1=new BigDecimal(20);
        BigDecimal v2=new BigDecimal(10);
        // +  add
        BigDecimal v3=v1.add(v2);
        // -  substract
        v3=v1.subtract(v2);
        // *  multiply
        v3=v1.multiply(v2);
        // /  divide
        v3=v1.divide(v2);
        System.out.println(v3);
        // %  remainder
        v3=v1.remainder(v2);
        System.out.println(v3);
        System.out.println(Long.MAX_VALUE);
        BigDecimal sum=new BigDecimal(1);
        for (int i = 0; i <=100; i++) {
            sum=sum.multiply(new BigDecimal(i));
        }
        System.out.println(sum);

八、Random

    //创建随机数生成器
        Random r=new Random();
        //大于等于0且小于10的整数
        int result=r.nextInt(10);
        System.out.println(result);
        //生成10~20
        //nextInt(最大值-最小值+1)+最小值
        result =r.nextInt(11)+10;
        System.out.println(result);
        //生成a~z
        result =r.nextInt(26);
        char c=(char)(result+97);
        System.out.println(c);

上一篇:【ios学习】之七、Blocks简介


下一篇:application数据库连接池spring.datasource.type=com.alibaba.druid.pool.DruidDataSource报错