美文网首页java学习笔记
java学习笔记(十四)常用API第二部分

java学习笔记(十四)常用API第二部分

作者: Broken故城 | 来源:发表于2020-03-17 12:15 被阅读0次

    1、object类

    1.1、tostring

    用于返回对象的字符串表示,比如数组,使用该方法后可以查看对应的字符串表示而无需遍历

    String s = Arrays.toString(dest);
    

    1.2、equals方法

    用于比较两个参数是否相等,返回布尔类型

    A.equals(B)
    

    这个方法在object中,原始的代码对于引用数据类型来说只会比较地址值,没有意义。所以其他的类中(如String)重写了该方法,使得它可以比较引用数据类型的属性。

    以下为String类中重写该方法的代码

        public boolean equals(Object anObject) {
            if (this == anObject) {
                return true;
            }
            if (anObject instanceof String) {
                String anotherString = (String)anObject;
                int n = value.length;
                if (n == anotherString.value.length) {
                    char v1[] = value;
                    char v2[] = anotherString.value;
                    int i = 0;
                    while (n-- != 0) {
                        if (v1[i] != v2[i])
                            return false;
                        i++;
                    }
                    return true;
                }
            }
            return false;
        }
    
    

    2、Date类

    与时间和日期相关的类(单位是毫秒)

    时间原点:1970年1月1日0点(格林威治时间)

    2.1、无参构造

    Date date = new Date();
    //直接输出date可查看当前时间
    

    2.2、带参构造

    Date date = new Date(0L);
    //传递一个long类型的毫秒值,获得一个对应时间的date对象
    

    2.3、gettime()方法

    date.getTime()
    //返回date对象到时间原点的毫秒值
    

    3、DateFormat类

    对日期进行格式化的类,是一个抽象类,功能借助子类SimpleDateFormat实现

    日期模式:y年 M月 d日 H时 m分 s秒(区分大小写)

    使用这些字母组合成日期的表达模式

    3.1、SimpleDateFormat类

    构造

    传递一个模式作为构造方法,例如

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-mm-ss");
    

    常用方法:

    格式化:

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-mm-ss");
            //创建对象并传递模式
            Date date = new Date();//获取一个时间
            String format = sdf.format(date);//格式化并存储
            System.out.println(date);//输出格式化之前的
            System.out.println(format);//输出格式化之后的
    

    如上format方法将日期按模式转换为对应模式的字符串

    解析:按模式将字符串解析成日期(模式和字符串不符会抛出异常)

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-mm-ss");
            //注意,解析的字符串如果跟模式不一样,会给异常
            Date parse = sdf.parse("2020-03-10-14-07");
            System.out.println(parse);
    

    3、Calendar类

    日历类,可以操作年月日等属性

    是个抽象类,通过静态方法getInstance可以直接获得子类对象(多态)

    常用成员方法:

    *     get(int field)
    *           返回给定日历字段的值。
    *     set(int field, int value)
    *           将给定的日历字段设置为给定值。
    *     add(int field, int amount)
    *           根据日历的规则,为给定的日历字段添加或减去指定的            时间量。
    *     getTime()
    *           返回一个表示此 Calendar 时间值(从历元至现在的            毫秒偏移量)的 Date 对象。
    

    演示:

    get方法

    /**
         * public int get(int field),返回给定日历字段的值
         * 参数:传递指定日历字段(YEAR,MONTH。。。)
         * 返回值:日历字段代表的具体的值
         */
        private static void demo01() {
            //getDemo
            //使用getinstance方法
            Calendar c = Calendar.getInstance();
            int year = c.get(Calendar.YEAR);//获取当前年份
            System.out.println(year);
    
            int mouth = c.get(Calendar.MONTH);//获取月份
            System.out.println(mouth);//注意,月份为西方月份,从0到11
    
            int date = c.get(Calendar.DATE);//获取日
            System.out.println(date);
        }
    

    set方法:

    private static void demo02() {
            //steDemo
            /**
             * public void set(int field,int value)将给定日历字段设置为给定值
             * 参数:
             *      同get
             */
            Calendar c = Calendar.getInstance();//获取对象
            //设置年为9999
            c.set(Calendar.YEAR,9999);//设置对象的年份
            int year = c.get(Calendar.YEAR);
            System.out.println(year);
    
            //同时设置年月日
            c.set(8888,8,8);
        }
    

    add方法:

    private static void demo03() {
            //addDemo
            /**
             * 根据日历的规则,为给定的日历字段增加或减少相应的值
             * 正数增加,负数减少
             */
            Calendar c = Calendar.getInstance();
            //增加两年
            c.add(Calendar.YEAR,2);
            int year = c.get(Calendar.YEAR);
            System.out.println(year);
        }
    

    getTime方法:

    private static void demo04() {
            //getTimeDemo,把Calendar的时间值转化成Date对象
            Calendar c = Calendar.getInstance();
            Date date = c.getTime();
            System.out.println(date);
        }
    

    4、System类

    可以获取与系统相关信息或系统级操作

    这里介绍获取当前时间和复制数组两个方法

    4.1、currentTimeMillis方法

    可以获取当前时间(毫秒级)可用于测试程序运行时间

    private static void demo01() {
            /**
             * currentTimeMillis;返回毫秒级单位的当前时间
             * 用来测试程序运行耗时
             * 执行前获取一次,执行后获取一次
             * 下面以测试for循环输出1-9999为例,看耗时多少
             */
            long s = System.currentTimeMillis();
            //获取第一次时间
            for (int i = 0; i < 9999; i++) {
                System.out.println(i);
            }
            long s2 = System.currentTimeMillis();
            //获取第二次时间
            System.out.println(s2-s);
            //输出测试结果
        }
    

    4.2、copyarray方法

    将数组中指定的数据拷贝到另一数组

    public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
    

    参数含义如下

    src - 源数组。
    srcPos - 源数组中的起始位置。
    dest - 目标数组。
    destPos - 目标数据中的起始位置。
    length - 要复制的数组元素的数量。
    

    举例,将src数组中的前三个元素复制到dest数组的前三位

    //定义原数组
    int[] src = {1,2,3,4,5};
    int[] dest = {6,7,8,9,10};
    
    System.arraycopy(src,0,dest,0,3);
     String s = Arrays.toString(dest);
    System.out.println(s);//dest的前三个被替换了
    

    5、StringBuilder类

    字符串缓冲区,可看做长度可变的字符串,可以提高字符串的操作效率

    5.1、构造方法:

    StringBuilder()构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。
    StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容。可用于将字符串转化成StringBuilder
    

    5.2、append方法:

    private static void demo01() {
            StringBuilder bu = new StringBuilder();
            //使用append方法
            //返回的是this 调用方法的对象
            StringBuilder bu2 = bu.append("abc");//把bu的地址值给了bu2,其实不用接受返回值
            System.out.println(bu);
            System.out.println(bu2);
            System.out.println(bu==bu2);//比较的是地址
        }
    

    append方法可接受任何类型的字符串形式

    5.3、toString方法

    private static void demo02() {
            //toString
            /**
             * StringBuilder可以和String相互转换
             *      String-->StringBuilder可以使用StringBuilder的构造方法
             *      StringBuilder-->String使用StringBuilder中的toString
             */
            //String-->StringBuilder
            String str = "hello";
            System.out.println(str);
            StringBuilder bu =new StringBuilder(str);
            //添加数据
            bu.append("world");
            System.out.println(bu);
    
            //StringBuilder-->String
            String s = bu.toString();
            System.out.println(s);
        }
    

    6、包装类

    用一个类把基本数据类型包装起来,使其可以被当成对象使用

    装箱:把基本数据类型的数据放到包装类中

    方法:

    构造方法:Integer(int value)构造一个新的Integer对象,表示指          定的int值
            Integer(String s)构造一个新分配的Integer对象,注            意:传入的参数必须为基本类型的字符串,否则异常
    静态方法:valueOf(String s)
            valueOf(String s, int radix)返回一个 Integer 对          象,该对象中保存了用第二个参数提供的基数进行解析时从          指定的 String 中提取的值。
    

    示范

            //传整数建立对象
            Integer in1 = new Integer(1);//方法过时了
            System.out.println(in1);
    
            //传字符串建对象
            Integer in2 = new Integer("1");
            System.out.println(in2);
    
            //传整数
            Integer in3 = Integer.valueOf(1);//过时
            System.out.println(in3);
    
            //传字符串
            Integer in4 = Integer.valueOf("1");
            System.out.println(in4);
    

    拆箱:在包装类中取出基本数据类型

    成员方法:inValue()
    

    示范:

      //拆箱
            int i = in1.intValue();
            System.out.println(i);
    

    6.1、自动拆箱与装箱:

    //自动装箱,相当于Integer in = new Integer(1);
            Integer in = 1;
    
            //自动拆箱,包装类无法进行计算,因此在计算时会拆箱,但是计算完后又会自动装箱
            in = in+2;
    
    

    6.2、基本数据类型与字符串之间的转换

    /**
     * 基本数据类型与字符串类型之间的相互转换
     * 基本类型-->字符串:
     *      1、基本类型的值+“”  最简单的
     *      2、包装类的静态方法toString(参数),
     *      3、String类的静态方法valueof(参数)
     * 字符串-->基本类型:
     *      1、包装类的静态方法parsexxx("数字类的字符串")
     *          Integer类:static int parseInt(String s)
     */
    

    示范:

    public class translateDemo {
        public static void main(String[] args) {
            int i1 = 100;
            String s1 = i1 + "";
            System.out.println(s1);
    
            String s2 = Integer.toString(100);
            System.out.println(s2);
    
            String i3 = String.valueOf(1);
            System.out.println(i3);
    
    
            int i = Integer.parseInt(s1);
            System.out.println(i-10);
        }
    }
    
    

    相关文章

      网友评论

        本文标题:java学习笔记(十四)常用API第二部分

        本文链接:https://www.haomeiwen.com/subject/lvttyhtx.html