【Java】——API( toString/equals/Date/DateFormat/Calendar/System/ StringBuilder)

toString

//返回该对象的字符串表示。
public String toString()

toString 方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+ 内存地址值。

由于 toString 方法返回的结果是内存地址,而在开发中,经常需要按照对象的属 性得到相应的字符串表现形式,因此也需要重写它。

public class Person { 
    private String name;
    private int age;
    @Override
    public String toString() {
        return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';
    }
    // 省略构造器与 Getter Setter
}

equals

public boolean equals(Object obj) {//指示其他某个对象是否与此对象“相等”。

    return (this == obj);

}

参数:

Object obj:可以传递任意的对象

== 比较运算符,返回的是一个布尔值 true/false

基本数据类型:比较的是值

引用数据类型:比较的是两个对象的地址值

this 那个对象调用的方法, 方法中的this就是那个对象

obj 传递过来的参数

import java.util.Objects;
public class Person {
    private String name;
    private int age;
    @Override
    public boolean equals(Object o) {
        // 如果对象地址一样,则认为相同
        if (this == o)
            return true;
        // 如果参数为空,或者类型信息不一样,则认为不同
        if (o == null || getClass() != o.getClass())
            return false;
        // 转换为当前类型
        Person person = (Person) o;
        // 要求基本类型相等,并且将引用类型交给 java.util.Objects 类的equals 静态方法取用结果
        return age == person.age && Objects.equals(name, person.name);
    } 
}

Date

java.util.Date:表示日期和时间的类

//Date() 获取当前系统的日期和时间
Date date = new Date();

//Date(long date) 传递毫秒值,吧毫秒值转换为Date日期
date = new Date(3742767540068L);

//long getTime() 把日期转换成毫秒值(相当于System.currentTimeMilllis()方法)
Date date = new Date();
long time = date.getTime();

DateFormat

java.text.DateFormat:是日期/时间格式化子类的抽象类

//使用format,把日期格式转化为文本
public static void demo01{
    //1、创建SimpleDateFormat对象,构造方法中传递指定的模式
    SimpleDateFormat sdf = new SimpleDateFormat(pattern:"yyyy年MM月dd日 HH时mm分ss秒");
    //2、调用format方法,
    Date date = new Date();
    String d = sdf.format(date);
    sout……
}
//使用parse,把文本解析为日期
public static void demo02 throws ParseExcep {
    //1、创建SimpleDateFormat对象,构造方法中传递指定的模式
    SimpleDateFormat sdf = new SimpleDateFormat(pattern:"yyyy年MM月dd日 HH时mm分ss秒");
    //2、调用parse方法,
    Date date = sdf.parse(source:"2088年08月08日 15时51分54秒");
    sout……
}

Calendar

java.util.Calendar:是日历类

//使用默认时区和语言环境获得一个日历
public static Calendar getInstance()
Calendar c = Calendar.getInstance();//多态
System.out.println(c);

/*
    public int get(int field):返回给定日历字段的值
    参数:传递指定的日历字段(YEAR,MONRH……)
    返回值:日历字段代表的具体的值
*/
private static void dome01 {
    Calendar c = Calendar.getInstance();
    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);//西方的月份0-11,东方:1-12
    int date = c.get(Calender.DATE);
}
/*
    public void set(int field,int value):将给定的日历字段设置为给定值
    参数:
        int field:传递指定的日历字段(YEAR,MONRH……)
        int value:给指定字段设置的值
*/
private static void dome02 {
    Calendar c = Calendar.getInstance();
    c.set(Calendar.YEAR,9999);
    c.set(Calendar.MONTH,9);
    c.set(Calendar.DATE,9);
    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);//西方的月份0-11,东方:1-12
    int date = c.get(Calender.DATE);
}

//或者 c.set(8888,8,8);
/*
    public Date getTime():返回一个表示此Calendar时间值的date对象
    把日历对象,转换为日期对象

*/
private static void dome03 {
    Calendar c = Calendar.getInstance();
    Date date = c.getTime();
}

System

java.lang.System类中提供了大量的静态方法, 可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:

/*
    public static long currentTimeMilllis():返回以毫秒为单位的当前时间。
    用来程序的效率
    验证for循环打印数字1-9999所需要使用的时间(毫秒)
*/
private static void demo01 {
    //程序执行前
    long s = System.currentTimeMilllis();
    //执行for循环
    for(int i = 1;i<=9999;i++){
        System.out.println(i);
    }
    //程序执行后,获取一次毫秒值
    long e = System.currentTimeMillls();
    System.out.println("程序共耗时:"+(e-s)+"毫秒");
}
/*
    puhlic static void arraycopy(Object src,int srcPos,Object dest,int desPos,int length):
    将数组中指定的数据拷贝到另一个数组中
    参数:
        src-源数组
        srcPos-源数组中的起始位置(起始索引)
        dest-目标数组
        destPos-目标数据中的起始位置
        length-要复制的数组元素的数量
*/
private static void demo02 {
    //定义源数组
    int[] src = {1,2,3,4};
    //定义目标数组
    int[] dest = {6,7,8,9,10};
    System.out.println("复制前:"+Arrays.toString(dest));
    //使用arraycopy吧源数组的前3个元素复制到目标数组的前3个位置上
    System.arraycopy(src,0,dest,3);
    System.out.println("复制后:"+Arrays.toString(dest));
}

StringBuilder

java.lang.StringBuilder类:字符串缓冲区,可以提高字符串的效率 

public static void main(String[] args) {
    //空参数构造方法
    StringBuilder bu1 =new StringBuilder();
    System.out.println("bu1:"+bu1);//bu1:""
    //带字符串的构造方法
    StringBuilder bu2 = new StringBuilder("abc");
    System.out.println("bu2:"+bu2);//bu2:"abc"
}

public static void main(String[] args) {
    StringBuilder bu =new StringBuilder();
    bu.append("abc");
}

//链式编程
System.out.println("abc".toUpperCase().toLowerCase().toLowerCase());
bu.append("abc").append(1).append(true).append(8.8).append('中');

public static void main(String[] args) {
    //String->StringBuilder
    String str = "hello";
    System.out.println("str:" +str);//str:hello
    StringBuilder bu =new StringBuilder(str);
    //往StringBuilder中添加数据
    bu.append("world");
    System.out.println("bu:"+bu);//bu:helloworld
    
    //StringBuilder-> String
    String s = bu.toString();
    System.out.println("s:"+s);//s:helloworld
}
发布了215 篇原创文章 · 获赞 37 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/MirabelleZWH/article/details/94634813