>  기사  >  Java  >  일반적으로 사용되는 Java API: 객체 클래스, 날짜 및 시간 클래스, StringBuilder 클래스, 패키징 클래스

일반적으로 사용되는 Java API: 객체 클래스, 날짜 및 시간 클래스, StringBuilder 클래스, 패키징 클래스

php是最好的语言
php是最好的语言원래의
2018-08-02 11:44:461851검색

이 글에서는 향후 개발에서 자주 사용될 Object 클래스, 날짜 및 시간 클래스, StringBuilder 클래스, 패키징 클래스 등 일반적으로 사용되는 여러 Java API를 소개합니다.

객체 클래스

Java.lang.Object 클래스는 Java 언어의 루트 클래스로 모든 클래스의 상위 클래스입니다. 여기에 설명된 모든 메서드는 하위 클래스에서 사용할 수 있습니다. 객체가 인스턴스화되면 객체가 찾는 최종 상위 클래스는 Object입니다.

Object 클래스에는 11개의 멤버 메서드가 포함되어 있습니다. 일반적으로 사용되는 두 가지 메서드만 나열하겠습니다.

- public String toString():返回该对象的字符串表示。
- public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。

1. toString 메서드

public String toString(): 개체의 문자열 표현을 반환합니다. public String toString():返回该对象的字符串表示。

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值,由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,一般都会重写它。

方法重写:

    //重写toString方法
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

2.equals方法

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

调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。这里的“相同”有默认和自定义两种方式。

如果没有覆盖重写equals方法,那么Object类中默认进行==运算符的对象地址比较,只要不是同一个对象,结果必然为false。

方法重写:

/*
        Object类的equals方法,默认比较的是两个对象的地址值
        重写equals方法,比较两个对象的属性
        问题:
            隐含这一个多态,无法使用子类特有的内容(属性和方法)
        解决:
            可以使用向下转型(强制类型转换)把o类型转换为Person
     */
    //重写equals方法
    @Override
    public boolean equals(Object o){
        //增加一个判断,如果传递的参数是this本身,直接返回true
        if(this==o) return true;

        //增加一个判断,如果传递的参数是null,直接返回false
        if(o==null) return  false;

        //增加一个判断,防止类型转换一次ClassCastException
        if(o instanceof Person){
            //使用向下转型,把o转换为Person类型
            Person p=(Person)o;
            //比较两个对象的属性,一个对象是this(p1),一个对象是p(o->p2)
            boolean b=this.name.equals(p.name) && this.age==p.age;
            return  b;
        }

        //不是Person类型,返回false
        return false;

日期时间类

1.Date类

java.util.Date 类表示特定的瞬间,精确到毫秒。

常用方法:

public long getTime() 把日期对象转换成对应的时间毫秒值。

实例:

    /*
        long getTime() 把日期转换为毫秒值(相当于System.currentTimeMillis()方法)
        返回自1970年1月1日0点0分0秒 GMT以来此Date对象表示的毫秒数
     */
    public static void demo3(){
        Date date =new Date();
        long time=date.getTime();
        System.out.println(time);
    }

    //结果值
    1533119389083

2.DateFormat类

java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。

格式化:按照指定的格式,从Date对象转换为String对象。

解析:按照指定的格式,从String对象转换为Date对象。

常用两个方法:

- public String format(Date date):将Date对象格式化为字符串。
- public Date parse(String source):将字符串解析为Date对象。

实例:

package demo2_Date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test02_Dateformat {
    public static void main(String[] args) throws ParseException {
        //将date对象格式化为字符串
        find_Date01();
        
        //将字符串解析为date对象
        find_Date02();
    }


    //将字符串解析为date对象
    public static void  find_Date01() throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
        String str="2018年8月1日 7点12分23秒";
        Date s=sdf.parse(str);
        System.out.println(new Date());
    }

    //将date对象格式化为字符串
    public static void  find_Date02(){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        String s=sdf.format(new Date());
        System.out.println(s);
    }
}

计算出生天数:

package demo2_Date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/*
    计算出生天数
        1.键盘录入出生日期,并转换date类型(毫秒值)
        2.获取当前日期毫秒值
        3.相减得到差值毫秒值,转换得到天数
 */
public class Test03_FindBirthday {
    public static void main(String[] args) throws ParseException {
        //录入出生日期
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的出生日期:格式(yyyy-MM-dd)");
        String bithDateString=sc.next();

        //使用DateFormat类中的parse方法,把字符串类型的出生日期,转换成为date类型
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date birthDate=sdf.parse(bithDateString);

        //把出生日期转换为毫秒值
        long birthDateTime=birthDate.getTime();
        long nowDateTime=new Date().getTime();

        long daysTime=nowDateTime-birthDateTime;
        //获取天数
        System.out.println(daysTime/1000/60/60/24);
    }
}

输出结果:

请输入你的出生日期:格式(yyyy-MM-dd)
1996-05-24
8104

Process finished with exit code 0

3.Calendar类

概念:

java.util.Calendar

toString 메소드는 객체의 문자열 표현을 반환합니다. 실제로 문자열의 내용은 객체 +@+메모리 주소 값의 유형이므로 개발 시에는 객체의 속성에 따라 이를 얻어야 하는 경우가 종종 있습니다. 해당 문자열 표현은 일반적으로 다시 작성됩니다.

메서드 재정의:

public static Calendar getInstance():使用默认时区和语言环境获得一个日历

2.equals 메서드

public boolean equals(Object obj): 다른 개체가 이 개체와 "동일"한지 여부를 나타냅니다.

멤버 메소드 equals를 호출하고 매개변수를 다른 객체로 지정하면 두 객체가 동일한지 확인할 수 있습니다. 여기에는 기본과 사용자 정의라는 두 가지 "동일" 방법이 있습니다.

equals 메서드가 재정의되지 않으면 == 연산자의 개체 주소 비교는 기본적으로 Object 클래스에서 수행됩니다. 동일한 개체가 아닌 한 결과는 false여야 합니다. .

메서드 재정의:

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

Date time class

1.Date class

java.util.Date 클래스는 밀리초까지 정확한 특정 순간을 나타냅니다.

일반적인 메소드:

package demo2_Date;
import java.util.Calendar;
import java.util.Date;

/*
    四种常用成员方法:
    - public int get(int field):返回给定日历字段的值。
    - public void set(int field, int value):将给定的日历字段设置为给定值。
    - public abstract void add(int field, int amount):根据日历的规则,
        为给定的日历字段添加或减去指定的时间量。
    - public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
 */
public class Test04_Calendar {
    public static void main(String[] args) {
//        demo1();
//        demo2();
        demo3();
        demo4();
    }

    /*
    - public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
     */
    public static void demo4(){
        Calendar cal=Calendar.getInstance();
        Date date=cal.getTime();
        System.out.println(date);   //Wed Aug 01 19:20:51 CST 2018
    }


    /*
     public abstract void add(int field, int amount):根据日历的规则,
        为给定的日历字段添加或减去指定的时间量。
     参数:设定指定的日历字段以及修改量
     返回值:修改过后的日历字段代表的值
     */
    public static void demo3(){
        Calendar cal =Calendar.getInstance();

        //加两年,减两月
        cal.add(Calendar.YEAR,+2);
        cal.add(Calendar.MONTH,-2);

        int year =cal.get(Calendar.YEAR);
        int month=cal.get(Calendar.MONTH)+1;
        int day=cal.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+month+"月"+day+"日");//   2020年6月1日
    }

    /*
     public void set(int field, int value):将给定的日历字段设置为给定值。
     参数:设定指定的日历字段以及设置值
     返回值:重新设定的日历字段代表的值
     */
    public static void demo2(){
        //创建Calendar对象
        Calendar cal= Calendar.getInstance();
        cal.set(Calendar.YEAR ,2020);
        int year=cal.get(Calendar.YEAR);
        System.out.println(year+"年");       //2020年
    }

    /*
        public int get(int field):返回给定日历字段的值。
        参数:传递指定的日历字段(YEAR,MONTH)
        返回值:日历字段代表的具体的值
     */
    public static void demo1(){
        //创建Calendar对象
        Calendar cal= Calendar.getInstance();
        //获取年份
        int year =cal.get(Calendar.YEAR);
        //获取月份
        int month=cal.get(Calendar.MONTH)+1;
        int day=cal.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+month+"月"+day+"日"); //2018年8月1日
    }
}

인스턴스:

package demo3_System;

import java.util.Arrays;

/*
    两个常用方法:
        1.currentTimeMillis
        2.arraycopy
 */
public class Test01_System {
    public static void main(String[] args) {
        demo1();
        demo2();
    }

    //将数组中指定的数据拷贝到另一个数组中。
    public static void demo2(){
        int[] arr1={1,2,3,4,5};
        int[] arr2={6,7,8,9,10};
        System.arraycopy(arr1,0,arr2,0,3);
        System.out.println(Arrays.toString(arr2));      //[1, 2, 3, 9, 10]
    }

    //返回以毫秒为单位的时间
    public static void demo1(){
        long begin=System.currentTimeMillis();
        int sum=0;
        for(int i=0;i<10000;i++){
            System.out.println(i);
        }
        long end=System.currentTimeMillis();
        System.out.println(end-begin);  //205毫秒
    }

2.DateFormat 클래스

java.text.DateFormat는 날짜/시간 형식 지정 하위 클래스의 추상 클래스입니다. 이 클래스를 사용하면 도움이 될 수 있습니다. 날짜와 텍스트 사이의 변환을 완료합니다. 즉, Date 객체와 String 객체 사이를 앞뒤로 변환할 수 있습니다.

Formatting

: 지정된 형식에 따라 Date 객체를 String 객체로 변환합니다.

Parsing

: 지정된 형식에 따라 String 객체를 Date 객체로 변환합니다.
- public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身。
- public String toString():将当前StringBuilder对象转换为String对象。
인스턴스:
package demo4_StringBufilder;

public class Test01_StringBuilder {
    public static void main(String[] args) {
//        demo1();
        demo2();
    }

    //通过toString方法,StringBuilder对象将会转换为不可变的String对象
    public static void  demo2(){
        //创建对象
        StringBuilder str=new StringBuilder("会发光").append("的小太阳");
        //调用方法
        String atr1=str.toString();
        System.out.println(atr1);   //会发光的小太阳
    }

    //StringBuilder类的append方法,返回值是一个StringBuilder对象
    public static void demo1(){
        //创建对象
        StringBuilder str=new StringBuilder();
        //返回的是一个StringBuilder对象
        StringBuilder str2= str.append("会发光的");
        str2.append("小太阳");
        System.out.println("str2: "+str2);      //str2: 会发光的小太阳

        //调用一个方法返回值是一个对象的时候,可以使用返回值对象继续调用方法
        //链式编程
        str2.append("会吸光").append("小月亮");
        System.out.println("str2==: "+str2);    //str2==: 会发光的小太阳会吸光小月亮
    }
}
rrreeerrreee3.Calendar 클래스획득 방법: rrreeerrreee인스턴스: rrreee 루프 코드와 같은 코드 효율성을 테스트하는 데 자주 사용되는 현재 시간을 밀리초 단위로 반환합니다. 예: rrreee StringBuilder는 String과 유사한 문자열 버퍼라고도 하며 특정 메서드를 호출하여 시퀀스의 길이와 내용을 변경할 수 있습니다. StringBuilder는 문자열의 버퍼, 즉 많은 문자열을 담을 수 있는 컨테이너라는 것이 밝혀졌습니다. 그리고 그 안에 있는 문자열에 대해 다양한 작업을 수행할 수 있습니다. 문자열 내용을 저장하는 내부 배열이 있습니다. 문자열을 연결하면 새 내용이 배열에 직접 추가됩니다. StringBuilder는 자동으로 배열 확장을 유지합니다. 원칙은 아래 그림과 같습니다. (기본 16자 공백, 자동 확장 초과) rrreeerrreeePackaging 클래스기본 유형--패키징 클래스기본 유형해당 패키징 클래스(java.lang 패키지에 위치)
일반적으로 사용되는 두 가지 방법:
생년월일 계산: 출력 결과:
개념: java.util.Calendar Date 뒤에 나타나며 많은 Date 메서드를 대체하는 달력 클래스입니다. 이 클래스는 쉽게 액세스할 수 있도록 가능한 모든 시간 정보를 정적 멤버 변수로 캡슐화합니다. Calendar 클래스는 다양한 시간 속성을 얻는데 편리합니다.
Calendar는 정적 메서드를 통해 하위 클래스 객체를 생성하고 반환하는 추상 클래스입니다. 공통 메서드: Calendar에는 네 가지 일반적인 메서드가 있으며 주로 get 메서드와 getTime 메서드입니다.
시스템 클래스 1.currentTimeMillis 메소드
2.arraycopy method 배열에 지정된 데이터를 다른 배열에 복사합니다.
StringBuilder 클래스 1. 개요
2. 일반적으로 사용되는 방법: 3. 예:
1.
🎜byte🎜🎜Byte🎜🎜🎜🎜short🎜🎜Short 🎜🎜🎜🎜int 🎜🎜Integer🎜🎜 🎜🎜long🎜🎜Long🎜🎜🎜🎜float🎜🎜Float🎜🎜🎜🎜double🎜🎜Double🎜🎜🎜🎜chart🎜🎜Char t🎜🎜 부울🎜🎜Boolean🎜🎜🎜🎜

2. Unboxing 및 Packing

기본 유형과 해당 패키징 클래스 객체 사이를 오가는 변환 과정을 "boxing" 및 "unboxing"이라고 합니다.

Boxing: 기본 유형에서 해당 래퍼 클래스 객체로 변환합니다.

Unboxing: 래퍼 클래스 개체에서 해당 기본 유형으로 변환합니다.

3. 자동 언박싱 및 자동 패킹

기본 유형과 패키징 클래스 간에 변환이 필요한 경우가 많기 때문에 Java 5(JDK 1.5)부터는 기본 유형 및 패키징 클래스의 boxing 및 unboxing 작업이 자동으로 수행됩니다. 그러니 우리는 아무것도 할 필요가 없습니다. 그렇죠, 이게 자동포장과 자동박스킹이라 놀랍지도 놀랍지도 않습니다.

관련 기사:

Java의 일반적인 날짜 클래스 설명

Java의 날짜 및 달력 클래스 사용

[java 튜토리얼] Java StringBuffer 및 StringBuilder 클래스

위 내용은 일반적으로 사용되는 Java API: 객체 클래스, 날짜 및 시간 클래스, StringBuilder 클래스, 패키징 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.