API(Application Programming Interface)

API(Application Programming Interface)

文章目录

  • API(Application Programming Interface)
    • 一、API概述
    • 二、Object类
    • 三、Math类
    • 四、BigDecimal类
    • 五、Arrays类
    • 六、正则表达式
    • 七、JDK7-时间类
    • 八、JDK8-日历类
    • 九、时间格式化类
    • 十、时区类
    • 十一、工具类

一、API概述

API:应用程序编程接口,简单来说,就是Java内部已经帮我们写好的类与方法,可直接调用。

二、Object类

类Object是类层次接口的根类,每个类都使用Object作为超类,所有对象(包括数组)都实现这个类的方法。

方法名 说明
protected Object clone() 创建并返回此对象的一个副本
boolean equals(Object o) 指示其他某个对象是否与此对象“相等”
protected void finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
int hashCode() 返回 此对象的哈希码值
void notify 唤醒在此对象监视器上等待的单个线程
void notifyAll() 唤醒在此对象监视器上等待的所有线程
String toString() 返回此对象的字符串表示
void wait() 在其他线程调用此对象的notify()方法或notifyAll()方法前,导致当前线程等待
void wait(long timeout) 在其他线程调用此对象的notify()方法或notifyAll()方法,或者超过指定的时间量前,导致当前线程等待
void wait(long timeout,int nanos) 在其他线程调用此对象的notify()方法或notifyAll()方法,或者其他某个线程中断当前线程,或者已超过某个时间的时间量前,导致当前线程等待

此处先重点举例toString\equals

(1)toString

下面是代码示例加解析

/**
 * @author Tweek
 */
public class APIDemo1 {
    /**
       public String toString():返回此对象的字符串表示
       代码源码:
       public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
       getClass().getName():类名称,全类名称(包名+类名)
       hashCode():的是对象内存地址+哈希算法,算出来的整数(哈希值)

     **细节:使用打印语句,打印对象名的时候,println方法,源码层面,会自动调用该对象的toString方法
     * 故可以在对应类中重写toString方法,来迎合我们的使用
            */
    public static void main(String[] args) {
        A a = new A();
        System.out.println(a);
        System.out.println(a.toString());
        System.out.println("-------------------------------------");
        //创建学生类,来通过对象名调用学生类中的信息
        Student stu1= new Student("ZHANGSAN",25);
        Student stu2= new Student("DUYUSHENG",74);
        System.out.println(stu1);
        System.out.println(stu2);

    }
}
public class Student {
    private String name;
    private int age;

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Student() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
class A{

}

控制台输出:
API.Itemout.APIout.A@4554617c
API.Itemout.APIout.A@4554617c
-------------------------------------
Student{name='ZHANGSAN', age=25}
Student{name='DUYUSHENG', age=74}

(2)equals

下面的代码示例,能让我们更好的理解equals方法

public class APIDemo2 {
    /**
          public boolean equals(Object obj):对象之间进行比较
     源码
     public boolean equals(Object obj) {
     return (this == obj);
     }
     总结:Object类中的equals方法,默认比较的是对象内存地址
         通常需要按照我们自己的需求来重写equals方法,比较对象之间的内容
     */
    public static void main(String[] args) {

        B b = new B("ZHANGSAN",24);
        B b2 = new B("ZHANGSAN",24);
        System.out.println(b.equals(b2));
        System.out.println("----------------------------------");
        Student stu1 = new Student("ZhangSan",23);
        Student stu2 = new Student("ZhangSan",23);
        Student stu3 = new Student("ZhangSan",24);
        Student stu4 = new Student("ZhangSan",23);
        System.out.println(stu1.equals(stu2));
        System.out.println(stu3.equals(stu4));
    }
}
class B{
    private String name;
    private int age;

    public B(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
public class Student {
    private String name;
    private int age;

    @Override
    public boolean equals(Object obj) {
         if(obj instanceof Student){
             Student stu = (Student)obj;
             return Objects.equals(this.name, stu.name) && this.age == stu.age;
         }else{
             return false;
         }
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Student() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

控制台输出:
false
----------------------------------
true
false

三、Math类

1、概述

Math类中的方法都是被static所修饰,故此类是工具类。

2、常用的方法

方法名 说明
public static int abs(int a) 获取参数的绝对值
public static double ceil(double a) 向上取整
public static double floor(double a) 向下取整
public static int round(float a) 四舍五入
public static int max(int a,int b) 获取两个int值中的较大值
public static double pow(double a,double b) 返回a的b次幂的值
public static doubel random() 返回值为double的随机值,取值范围[0.0,1.0]

下面的代码示例,能让我们更好地了解Math常用方法

/**
 * @author Tweek
 */
public class APIDemo3 {
    /**
     * | public static int abs(int a)                | 获取参数的绝对值                          |
     * | public static double ceil(double a)         | 向上取整                                  |
     * | public static double floor(double a)        | 向下取整                                  |
     * | public static int round(float a)            | 四舍五入                                  |
     * | public static int max(int a,int b)          | 获取两个int值中的较大值                   |
     * | public static double pow(double a,double b) | 返回a的b次幂的值                          |
     * | public static doubel random()               | 返回值为double的随机值,取值范围[0.0,1.0] |
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(Math.abs(123));
        System.out.println(Math.abs(-123));
        System.out.println("------------------------------------");
        System.out.println(Math.ceil(12.0));
        System.out.println(Math.ceil(12.1));
        System.out.println(Math.ceil(12.2));
        System.out.println(Math.ceil(12.3));
        System.out.println(Math.ceil(12.5));
        System.out.println(Math.ceil(12.9));
        System.out.println(Math.ceil(13.1));
        System.out.println("--------------------------------------");
        System.out.println(Math.floor(12.0));
        System.out.println(Math.floor(12.1));
        System.out.println(Math.floor(12.2));
        System.out.println(Math.floor(12.5));
        System.out.println(Math.floor(12.9));
        System.out.println(Math.floor(13.1));
        System.out.println("--------------------------------------");
        System.out.println(Math.round(12.0));
        System.out.println(Math.round(12.1));
        System.out.println(Math.round(12.2));
        System.out.println(Math.round(12.6));
        System.out.println(Math.round(12.9));
        System.out.println(Math.round(13.1));
        System.out.println("--------------------------------------");
        System.out.println(Math.max(12,564));
        System.out.println("--------------------------------------");
        System.out.println(Math.pow(2,10));
        System.out.println("--------------------------------------");
        System.out.println(Math.random()*100);

    }
}

控制台输出:
123
123
------------------------------------
12.0
13.0
13.0
13.0
13.0
13.0
14.0
--------------------------------------
12.0
12.0
12.0
12.0
12.0
13.0
--------------------------------------
12
12
12
13
13
13
--------------------------------------
564
--------------------------------------
1024.0
--------------------------------------
95.63701359295206

Process finished with exit code 0

四、System类

1、概述

System类的功能都是静态的,故直接使用类名调用即可

方法名 说明
public static void exit(int status) 终止当前运行的JAVA虚拟机,非零表示异常终止
public static long currentTimeMills() 返回当前系统的时间毫秒值形式
public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数) 数组拷贝

下面的代码,能让我们更好地理解System类的常用方法

/**
 * @author Tweek
 */
public class APIDemo4 {
    /**
     * | 方法名                                                       | 说明                                       |
     * | ------------------------------------------------------------ | ------------------------------------------ |
     * | public static void exit(int status)                          | 终止当前运行的JAVA虚拟机,非零表示异常终止 |
     * | public static long currentTimeMills()                        | 返回当前系统的时间毫秒值形式               |
     *  返回1970年1月1日 0时0分0秒到现在经历的毫秒数
     * | public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数) | 数组拷贝                                   |
     */
    public static void main(String[] args) {
        int[] arr ={11,22,33,44,55};
        int[] cpArr = new int[3];
        System.arraycopy(arr,0,cpArr,0,3);
        for (int i = 0; i < cpArr.length; i++) {
            System.out.println(cpArr[i]);
        }
       timeCheck();
        System.exit(-1);
    }

    private static void timeCheck() {
        long start =System.currentTimeMillis();
        String s ="";
        for (int i = 1; i <=10000 ; i++) {
            s+=i;
        }
        System.out.println(s);
        long end =System.currentTimeMillis();
        System.out.println("该程序所耗费的时间为"+(end-start));
    }
}

控制台输出:
11
22
33
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000
该程序所耗费的时间为280

Process finished with exit code -1

四、BigDecimal类

1、概述

BigDecimal:解决小数运算中,出现的不精确问题

2、BigDecimal类的使用

(1)创建对象

public BigDecimal(double val)//不推荐,无法保证小数运算的精确
public BigDecimal(String val)
public static BigDecimal valueOf(double val)         

下面是代码示例

/**
 * @author Tweek
 */
public class APIDemo5 {
    public static void main(String[] args) {
        BigDecimal bd1= new BigDecimal(0.12);
        BigDecimal bd2= new BigDecimal(0.18);
        System.out.println(bd1.add(bd2));

        System.out.println("-----------------");
        BigDecimal bd3= new BigDecimal("0.12");
        BigDecimal bd4= new BigDecimal("0.18");
        System.out.println(bd3.add(bd4));
        System.out.println("------------------");
        BigDecimal bd5= BigDecimal.valueOf(0.12);
        BigDecimal bd6= BigDecimal.valueOf(0.18);
        System.out.println(bd5.add(bd6));
    }
}

控制台输出:
0.299999999999999988897769753748434595763683319091796875
-----------------
0.30
------------------
0.30

3、BigDecimal的常用方法

方法名 说明
public BigDecimal add(BigDecimal b) 加法
public BigDecimal subtract(BigDecimal b) 减法
public BigDecimal multiply(BigDecimal b) 乘法
public BigDecimal divide(BigDecimal b) 除法
public BigDecimal divide(另一个BigDecimal对象.精确几位数,舍入模式) 除法

下面是代码示例

/**
 * @author Tweek
 */
public class APIDemo6 {
    /**
     *| 方法名                                                       | 说明 |
     * | ------------------------------------------------------------ | ---- |
     * | public BigDecimal add(BigDecimal b)                          | 加法 |
     * | public BigDecimal subtract(BigDecimal b)                     | 减法 |
     * | public BigDecimal multiply(BigDecimal b)                     | 乘法 |
     * | public BigDecimal divide(BigDecimal b)                       | 除法 |
     * | public BigDecimal divide(另一个BigDecimal对象.精确几位数,舍入模式) | 除法 |
     * @param args
     */
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("200");
        BigDecimal bd2 = new BigDecimal("50");
        System.out.println(bd1.add(bd2));
        System.out.println("-------------------");
        System.out.println(bd1.subtract(bd2));
        System.out.println("-------------------");
        System.out.println(bd1.multiply(bd2));
        System.out.println("-------------------");
        System.out.println(bd1.divide(bd2));
        System.out.println("-------------------");
        BigDecimal bd3 = BigDecimal.valueOf(10.0);
        BigDecimal bd4 =BigDecimal.valueOf(3.0);
        System.out.println(bd3.divide(bd4,3, RoundingMode.CEILING));//向上取整
        System.out.println(bd3.divide(bd4,3, RoundingMode.HALF_UP));//四舍五入
        System.out.println(bd3.divide(bd4,3, RoundingMode.UP));//后面的内容不要了,向前进1
        System.out.println(bd3.divide(bd4,3, RoundingMode.DOWN));//后面的内容全部不要
    }
}

控制台输出:
250
-------------------
150
-------------------
10000
-------------------
4
-------------------
3.334
3.333
3.334
3.333

注意:将BigDecimal转化为数值的方法为doubleValue()

五、Arrays类

1、概述

数组操作工具类:专门用于操作数组元素

2、常用方法

方法名 说明
public static String toString(类型[] a) 将数组元素拼接为带有格式的字符串
public static boolean equals(类型[] a, 类型[] b) 比较两个数组内容是否相同
public static int binarySearch(int[] a,int key) 查找元素在数组中的索引(二分查找法)(如果数组中不存在元素则返回(-(插入点)-1)
public static void sort(类型[] a) 对数组进行默认升序排序

下面是代码示例

/**
 * @author Tweek
 */
public class APIDemo7 {
    /**
     * | 方法名                                           | 说明                               |
     * | ------------------------------------------------ | ---------------------------------- |
     * | public static String toString(类型[] a)          | 将数组元素拼接为带有格式的字符串   |
     * | public static boolean equals(类型[] a, 类型[] b) | 比较两个数组内容是否相同           |
     * | public static int binarySearch(int[] a,int key)  | 查找元素在数组中的索引(二分查找法) |
     * | public static void sort(类型[] a)                | 对数组进行默认升序排序             |
     */
    public static void main(String[] args) {
        int[] arr1 = {11, 22, 33, 44, 55};
        int[] arr2 = {11, 22, 33, 44, 55};
        int[] arr3 = {1, 2, 3, 4, 5};
        int[] arr4 = {1, 5, 3, 7, 99, 51};
        System.out.println(Arrays.toString(arr1));
        System.out.println("---------------------------");
        System.out.println(Arrays.equals(arr1, arr2));
        System.out.println(Arrays.equals(arr1, arr3));
        System.out.println("---------------------------");
        System.out.println(Arrays.binarySearch(arr1, 44));
        System.out.println(Arrays.binarySearch(arr1, 22));
        System.out.println("---------------------------");
        System.out.println("Before sort:");
        for (int i = 0; i < arr4.length; i++) {
            System.out.print(arr4[i] + "  ");
        }
        System.out.println();
        System.out.println("After sort:");
        Arrays.sort(arr4);
        for (int i = 0; i < arr4.length; i++) {
            System.out.print(arr4[i] + "  ");
        }
    }
}

控制台输出:
[11, 22, 33, 44, 55]
---------------------------
true
false
---------------------------
3
1
---------------------------
Before sort:
1  5  3  7  99  51  
After sort:
1  3  5  7  51  99  
Process finished with exit code 0

六、正则表达式

1、正则表达式分类

1.字符类 2.预定义字符类 3.数量类

(1)字符类

[]:对单个字符做限制

^:异或符号

表达式 说明
[abc] 只能是a,b,c
[^abc] 除了a,b,c之外的任何字符
[a-zA-Z] a到z,A到Z,包括(范围)
[a-d[m-p]] a到d,或m通过p([a-dm-p]联合)
[a-z&&[def]] d,e,或f(交集)
[a-z&& (^bc)] *此处的括号应该换成[] a到z,除了b和c:([ad-z]减法)
[a-z&&(^m-p)] *此处的括号应该换成[] a到z,除了m到p:([a-lq-z]减法)

*校验字符串的方法:“需要校验的字符串”.matches(“编写规则”)

(2)预定义字符类

*异或符号的括号应该换成[],该编辑器会自动将[]变成幂指数,故特此声明

\:转义字符

表达式 说明
. 一个任何字符
\d 一个数字:[0-9]
\D 非数字:(^0-9)
\s 一个空白字符[\t\n\x00\f\r]
\S 非空白字符:(^\s)
\w [a-zA-Z_0-9] 英文、数字、下划线
\W (^\w) 一个非单词字符

(3)数量

表达式 说明
X? 一次或0次
X* 0次成多次(任意次数)
X+ 一次或多次
X{n} 正好n次
X{n, } 至少n次
X{n,n} 至少n次但不超过n次

下面的代码示例,能让我们更好地了解正则表达式

public class Regex {
    /*
       1、QQ号正则
           不能以0开头
           全部都是数字
           5~12位
       2、手机号正则
           必须是1开头
           第二位:3 4 5 6 7 8 9
           全部都是数字且必须是11位
       3、邮箱正则
           [email protected]
           [email protected]
           [email protected]
           [email protected]
           [email protected]
           [email protected]
           [email protected]
     */
    public static void main(String[] args) {
        String qqRegex = "[1-9]\\d{4,11}";
        System.out.println("12345445".matches(qqRegex));
        String telRegex = "[1][3-9]\\d{9}";
        System.out.println("13345678910".matches(telRegex));
        String emailRegex = "\\w+[@][\\w&&[^_]]+(\\.[a-z]{2,3})+";
        System.out.println("[email protected]".matches(emailRegex));
        System.out.println("[email protected]".matches(emailRegex));
        System.out.println("[email protected]".matches(emailRegex));
    }
}

控制台输出:
true
true
true
true
true

2、用正则表达式做数据爬取

/**
 * @author Tweek
 */
public class Regex1 {
    /**
          用正则表达式爬取数据
     */
    public static void main(String[] args) {
        String data = "HAVE A GOOD DAY"+
                "TEL:186485649628,16475221548"+
                "Email:[email protected] Email:[email protected]"+
                "HOMETEL:01036517895,010-98951256"+
                "HOTTEL:400-618-9090,400-618-4000,4006189000";
        String regex = "1[3-9]\\d{9}|\\w+@[\\w&&[^_]]+(\\.[a-z]{2,3})+|0\\d{2,3}-?\\d{7,8}|400-?\\d{3}-?\\d{4}";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(data);
        while(matcher.find()){
            System.out.println(matcher.group());
        }
    }
    
控制台输出:
18648564962
16475221548
baidu@itcast.cn
baozi@itcast.cn
01036517895
010-98951256
400-618-9090
400-618-4000
4006189000

Process finished with exit code 0

七、JDK7-时间类

1、Date类

(1)构造方法

构造器 说明
public Date() 创建一个Date对象,代表的是系统当前此刻日期时间
public Date(long time) 把时间毫秒值转换成Date日期对象

(2)常用方法

方法名 说明
public long getTime() 返回从1970年1月1日0时0分0秒走到此刻的总的毫秒数
public void setTime(long Time) 设置日期对象的时间为当前时间毫秒值对应的时间

下面是代码示例

/**
 * @author Tweek
 */
public class TimeDemo1 {
    public static void main(String[] args) {
        // 将当前时间,封装为Date日期对象
        Date date = new Date();
        System.out.println(date);
        //把时间毫秒值转换成Date日期对象
        Date date1  = new Date(1000L);
        System.out.println(date1);
        System.out.println(date.getTime());
        System.out.println(date1.getTime());
        System.out.println("----------------------");
        Date date2 =new Date();
        date2.setTime(0L);
        System.out.println(date2);
    }
}
控制台输出:
Fri Apr 07 16:45:20 CST 2023
Thu Jan 01 08:00:01 CST 1970
1680857120354
1000
----------------------
Thu Jan 01 08:00:00 CST 1970

2、SimpleDateFormat类

(1)构造器

构造器 说明
public SimpleDateFormat() 构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern) 构造一个SimpleDateFormat,使用指定的格式

(2)格式化方法

格式化方法 说明
public final String format(Date date) 将日期格式化成日期/时间字符串
public final Date parse(String source) 将字符串解析为日期类型

下面是代码示例

/**
 * @author Tweek
 */
public class TimeDemo2 {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E a");
        //创建Date对象
        Date date = new Date();
        System.out.println(simpleDateFormat.format(date));

        System.out.println("-----------------------------");
        String today = "2023年4月7日";
        SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日");
        Date date1 = s.parse(today);
        System.out.println(date1);
    }
}

控制台输出:
2023040717:25:45 星期五 下午
-----------------------------
Fri Apr 07 00:00:00 CST 2023

3、Calendar类

(1)创建对象:

public static Calendar getInstance() //获取当前时间的日历对象

(2)常用方法:

方法名 说明
public int get(int field) 取日历中的某个字段信息
public void set(int field,int value) 修改日历的某个字段信息
public void add(int field,int amount) 为某个字段增加/减少指定的值
public final Date getTime() 获取日期对象
public final setTime(Date date) 给日历设置日期对象

下面是代码示例

/**
 * @author Tweek
 */
public class TimeDemo4 {

    public static void main(String[] args) {
        //Calendar c:抽象类
        //Calendar.getInstance():获取子类对象
        //get()调用的是静态方法。
        Calendar c = Calendar.getInstance();

        //get()
        int year = c.get(Calendar.YEAR);
        //月份是0-11 常规的月份显示需要+1
        int mouth = c.get(Calendar.MONTH)+1;
        int day = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(year);
        System.out.println(mouth);
        System.out.println(day);
        //星期,从星期天开始为1
        String[] weeks={" ","日","一","二","三","四","五","六"};
        int weekIndex =c.get(Calendar.DAY_OF_WEEK);
        System.out.println(weeks[weekIndex]);
        int dayOfYear =c.get(Calendar.DAY_OF_YEAR);
        System.out.println(dayOfYear);

        System.out.println("-----------------------");
        Calendar c1= Calendar.getInstance();
        setMethod(c1);
        c1.add(Calendar.YEAR,1);
        System.out.println(c1.get(Calendar.YEAR));
        c1.add(Calendar.YEAR,-1);
        System.out.println(c1.get(Calendar.YEAR));
    }

    private static void setMethod(Calendar c1) {
        c1.set(Calendar.YEAR,2022);
        c1.set(2008,8,8);
        System.out.println(c1.get(Calendar.YEAR));
    }
}
控制台输出:
2023
4
797
-----------------------
2008
2009
2008

八、JDK8-日历类

1、概述

JDK8版本之后:都是不可变对象,修改后会返回新的时间对象,不会丢失最开始的时间

2、类别

LocalDate:代表本地日期(年、月、日、星期)

LocalTime:代表本地时间(时、分、秒、纳秒)

LocalDateTime:代表本地日期、时间(年、月、日、星期、时、分、秒、纳秒)

3、获取对象

方法名 示例
public static xxxx now();获取系统当前时间对应的该对象 LocalDate Id = LocalDate.now();
public static xxxx of(…):获取指定时间的对象 LocalDate Id = LocalDate.of(2099,11,11);

4、修改年月日时分秒相关的方法

注意:LocalDate LocalTime LocalDateTime不可变,下列方法返回的是一个新的对象

方法名 说明
withHour,withMinute,withSecond,withNano 修改时间,返回新时间对象
plusHours,plusMinutes,plusSeconds,plusNanos 把某个信息加多少,返回新时间对象
minusHours,minusMinutes,minusSeconds,minusNanos 把某个信息减多少,返回新时间对象
equals isBefore isAfter 判断2个时间对象,是否相等,在前还是在后

下面是代码示例

/**
 * @author Tweek
 */
public class TimeDemo8 {
    /**
     * | withHour,withMinute,withSecond,withNano        | 修改时间,返回新时间对象                |
     * | plusHours,plusMinutes,plusSeconds,plusNanos     | 把某个信息加多少,返回新时间对象        |
     * | minusHours,minusMinutes,minusSeconds,minusNanos | 把某个信息减多少,返回新时间对象        |
     * | equals isBefore isAfter                         | 判断2个时间对象,是否相等,在前还是在后 |
     */
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);
        System.out.println("减一个小时" + now.minusHours(1));
        System.out.println("减一个分钟" + now.minusMinutes(1));
        System.out.println("减一个秒" + now.minusSeconds(1));
        System.out.println("减一个纳秒" + now.minusNanos(1));
        System.out.println("-----------------------");
        System.out.println("加一个小时" + now.plusHours(1));
        System.out.println("加一个分钟" + now.plusMinutes(1));
        System.out.println("加一个秒" + now.plusSeconds(1));
        System.out.println("加一个纳秒" + now.plusNanos(1));
        System.out.println("-----------------------");
        System.out.println("修改的效果:");
        System.out.println(now.withYear(2008));
        System.out.println(now.withMonth(8));
        System.out.println(now.withDayOfMonth(8));
        System.out.println(now.withHour(8));
        System.out.println(now.withMinute(8));
        System.out.println(now.withSecond(8));
        System.out.println(now.withNano(8));
        System.out.println("-----------------------");
        LocalDate myDate = LocalDate.of(2008,8,8);
        LocalDate nowDate = LocalDate.now();

        //myDate是否是在nowDate之前
        System.out.println(myDate.isBefore(nowDate));
        //myDate是否是在nowDate之后
        System.out.println(myDate.isAfter(nowDate));
        //两个时间是否相同
        System.out.println(myDate.equals(nowDate));
    }
}

控制台输出:
2023-04-07T18:52:59.144
减一个小时2023-04-07T17:52:59.144
减一个分钟2023-04-07T18:51:59.144
减一个秒2023-04-07T18:52:58.144
减一个纳秒2023-04-07T18:52:59.143999999
-----------------------
加一个小时2023-04-07T19:52:59.144
加一个分钟2023-04-07T18:53:59.144
加一个秒2023-04-07T18:53:00.144
加一个纳秒2023-04-07T18:52:59.144000001
-----------------------
修改的效果:
2008-04-07T18:52:59.144
2023-08-07T18:52:59.144
2023-04-08T18:52:59.144
2023-04-07T08:52:59.144
2023-04-07T18:08:59.144
2023-04-07T18:52:08.144
2023-04-07T18:52:59.000000008
-----------------------
true
false
false
    
Process finished with exit code 0

九、时间格式化类

1、对象的获取

static DateTimeFormatter ofPattern(格式):获取格式对象

2、格式化

String format(时间对象):按照指定方式格式化

3、解析:

LocalDateTime.parse("解析字符串",格式化对象)
LocalDate.parse("解析字符串",格式化对象)
LocalTime.parse("解析字符串",格式化对象)

下面是代码示例

/**
 * @author Tweek
 */
public class TimeDemo9 {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        System.out.println("格式化之前"+now);

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");

        //格式化
        String result = formatter.format(now);
        System.out.println("格式化之后" + result);

        //解析
        String time = "2008年08月08日";
        LocalDate parse = LocalDate.parse(time,formatter);
        System.out.println(parse);

    }
}

控制台输出:
格式化之前2023-04-07T19:14:33.613
格式化之后202304072008-08-08

十、时区类

1、Instant类

用于表示时间的对象,类似于之前的Date

下面是代码示例

/**
 * @author Tweek
 */
public class TimeDemo10 {
    public static void main(String[] args) {
        Instant now = Instant.now();
        System.out.println("当前的时间戳是:" + now);

        ZonedDateTime zonedDateTime = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
        System.out.println(zonedDateTime);
    }
}

控制台输出:
当前的时间戳是:2023-04-07T12:03:46.490Z
2023-04-07T20:03:46.532+08:00[Asia/Shanghai]

Instant类常用方法

方法名 说明
static Instant now() 获取当前时间的Instant对象(标准时间)
static Instant ofXXX(long epochMilli) 根据(秒/毫秒/纳秒)获取 Instant对象
ZoneDateTime atZone(ZoneId zone) 指定时区
boolean isXXX(Instant otherInstant) 判断系列方法
Instant minusXXX(long millisToSubtract) 减少时间系列的方法
Instant plusXXX(long millisToSubtract) 增加时间系列的方法

2、ZoneId类(时区类)

(1)常用方法

方法名 说明
static Set getAvailableZoneIds() 获取JAVA中支持的所有时区
static ZoneId systemDefault() 获取系统默认时区
static ZoneId of(String zoneId) 获取一个固定时区

下面是代码示例:

/**
 * @author Tweek
 */
public class TimeDemo10 {
    public static void main(String[] args) {
        //获取所有时区
        Set<String> set = ZoneId.getAvailableZoneIds();
        System.out.println(set);
        System.out.println(set.size());
        System.out.println("----------------------");
        //获取系统默认时区
        ZoneId zoneId = ZoneId.systemDefault();
        System.out.println(zoneId);
        System.out.println("----------------------");
        //获取固定时区
        ZoneId of = ZoneId.of("Asia/Shanghai");
        System.out.println(of);

        ZonedDateTime zonedDateTime = Instant.now().atZone(of);
        System.out.println(zonedDateTime);

    }
}

控制台输出:
[Asia/Aden, America/Cuiaba, Etc/GMT+9, Etc/GMT+8, Africa/Nairobi, America/Marigot, Asia/Aqtau, Pacific/Kwajalein, America/El_Salvador, Asia/Pontianak, Africa/Cairo, Pacific/Pago_Pago, Africa/Mbabane, Asia/Kuching, Pacific/Honolulu, Pacific/Rarotonga, America/Guatemala, Australia/Hobart, Europe/London, America/Belize, America/Panama, Asia/Chungking, America/Managua, America/Indiana/Petersburg, Asia/Yerevan, Europe/Brussels, GMT, Europe/Warsaw, America/Chicago, Asia/Kashgar, Chile/Continental, Pacific/Yap, CET, Etc/GMT-1, Etc/GMT-0, Europe/Jersey, America/Tegucigalpa, Etc/GMT-5, Europe/Istanbul, America/Eirunepe, Etc/GMT-4, America/Miquelon, Etc/GMT-3, Europe/Luxembourg, Etc/GMT-2, Etc/GMT-9, America/Argentina/Catamarca, Etc/GMT-8, Etc/GMT-7, Etc/GMT-6, Europe/Zaporozhye, Canada/Yukon, Canada/Atlantic, Atlantic/St_Helena, Australia/Tasmania, Libya, Europe/Guernsey, America/Grand_Turk, US/Pacific-New, Asia/Samarkand, America/Argentina/Cordoba, Asia/Phnom_Penh, Africa/Kigali, Asia/Almaty, US/Alaska, Asia/Dubai, Europe/Isle_of_Man, America/Araguaina, Cuba, Asia/Novosibirsk, America/Argentina/Salta, Etc/GMT+3, Africa/Tunis, Etc/GMT+2, Etc/GMT+1, Pacific/Fakaofo, Africa/Tripoli, Etc/GMT+0, Israel, Africa/Banjul, Etc/GMT+7, Indian/Comoro, Etc/GMT+6, Etc/GMT+5, Etc/GMT+4, Pacific/Port_Moresby, US/Arizona, Antarctica/Syowa, Indian/Reunion, Pacific/Palau, Europe/Kaliningrad, America/Montevideo, Africa/Windhoek, Asia/Karachi, Africa/Mogadishu, Australia/Perth, Brazil/East, Etc/GMT, Asia/Chita, Pacific/Easter, Antarctica/Davis, Antarctica/McMurdo, Asia/Macao, America/Manaus, Africa/Freetown, Europe/Bucharest, Asia/Tomsk, America/Argentina/Mendoza, Asia/Macau, Europe/Malta, Mexico/BajaSur, Pacific/Tahiti, Africa/Asmera, Europe/Busingen, America/Argentina/Rio_Gallegos, Africa/Malabo, Europe/Skopje, America/Catamarca, America/Godthab, Europe/Sarajevo, Australia/ACT, GB-Eire, Africa/Lagos, America/Cordoba, Europe/Rome, Asia/Dacca, Indian/Mauritius, Pacific/Samoa, America/Regina, America/Fort_Wayne, America/Dawson_Creek, Africa/Algiers, Europe/Mariehamn, America/St_Johns, America/St_Thomas, Europe/Zurich, America/Anguilla, Asia/Dili, America/Denver, Africa/Bamako, Europe/Saratov, GB, Mexico/General, Pacific/Wallis, Europe/Gibraltar, Africa/Conakry, Africa/Lubumbashi, Asia/Istanbul, America/Havana, NZ-CHAT, Asia/Choibalsan, America/Porto_Acre, Asia/Omsk, Europe/Vaduz, US/Michigan, Asia/Dhaka, America/Barbados, Europe/Tiraspol, Atlantic/Cape_Verde, Asia/Yekaterinburg, America/Louisville, Pacific/Johnston, Pacific/Chatham, Europe/Ljubljana, America/Sao_Paulo, Asia/Jayapura, America/Curacao, Asia/Dushanbe, America/Guyana, America/Guayaquil, America/Martinique, Portugal, Europe/Berlin, Europe/Moscow, Europe/Chisinau, America/Puerto_Rico, America/Rankin_Inlet, Pacific/Ponape, Europe/Stockholm, Europe/Budapest, America/Argentina/Jujuy, Australia/Eucla, Asia/Shanghai, Universal, Europe/Zagreb, America/Port_of_Spain, Europe/Helsinki, Asia/Beirut, Asia/Tel_Aviv, Pacific/Bougainville, US/Central, Africa/Sao_Tome, Indian/Chagos, America/Cayenne, Asia/Yakutsk, Pacific/Galapagos, Australia/North, Europe/Paris, Africa/Ndjamena, Pacific/Fiji, America/Rainy_River, Indian/Maldives, Australia/Yancowinna, SystemV/AST4, Asia/Oral, America/Yellowknife, Pacific/Enderbury, America/Juneau, Australia/Victoria, America/Indiana/Vevay, Asia/Tashkent, Asia/Jakarta, Africa/Ceuta, Asia/Barnaul, America/Recife, America/Buenos_Aires, America/Noronha, America/Swift_Current, Australia/Adelaide, America/Metlakatla, Africa/Djibouti, America/Paramaribo, Europe/Simferopol, Europe/Sofia, Africa/Nouakchott, Europe/Prague, America/Indiana/Vincennes, Antarctica/Mawson, America/Kralendijk, Antarctica/Troll, Europe/Samara, Indian/Christmas, America/Antigua, Pacific/Gambier, America/Indianapolis, America/Inuvik, America/Iqaluit, Pacific/Funafuti, UTC, Antarctica/Macquarie, Canada/Pacific, America/Moncton, Africa/Gaborone, Pacific/Chuuk, Asia/Pyongyang, America/St_Vincent, Asia/Gaza, Etc/Universal, PST8PDT, Atlantic/Faeroe, Asia/Qyzylorda, Canada/Newfoundland, America/Kentucky/Louisville, America/Yakutat, Asia/Ho_Chi_Minh, Antarctica/Casey, Europe/Copenhagen, Africa/Asmara, Atlantic/Azores, Europe/Vienna, ROK, Pacific/Pitcairn, America/Mazatlan, Australia/Queensland, Pacific/Nauru, Europe/Tirane, Asia/Kolkata, SystemV/MST7, Australia/Canberra, MET, Australia/Broken_Hill, Europe/Riga, America/Dominica, Africa/Abidjan, America/Mendoza, America/Santarem, Kwajalein, America/Asuncion, Asia/Ulan_Bator, NZ, America/Boise, Australia/Currie, EST5EDT, Pacific/Guam, Pacific/Wake, Atlantic/Bermuda, America/Costa_Rica, America/Dawson, Asia/Chongqing, Eire, Europe/Amsterdam, America/Indiana/Knox, America/North_Dakota/Beulah, Africa/Accra, Atlantic/Faroe, Mexico/BajaNorte, America/Maceio, Etc/UCT, Pacific/Apia, GMT0, America/Atka, Pacific/Niue, Canada/East-Saskatchewan, Australia/Lord_Howe, Europe/Dublin, Pacific/Truk, MST7MDT, America/Monterrey, America/Nassau, America/Jamaica, Asia/Bishkek, America/Atikokan, Atlantic/Stanley, Australia/NSW, US/Hawaii, SystemV/CST6, Indian/Mahe, Asia/Aqtobe, America/Sitka, Asia/Vladivostok, Africa/Libreville, Africa/Maputo, Zulu, America/Kentucky/Monticello, Africa/El_Aaiun, Africa/Ouagadougou, America/Coral_Harbour, Pacific/Marquesas, Brazil/West, America/Aruba, America/North_Dakota/Center, America/Cayman, Asia/Ulaanbaatar, Asia/Baghdad, Europe/San_Marino, America/Indiana/Tell_City, America/Tijuana, Pacific/Saipan, SystemV/YST9, Africa/Douala, America/Chihuahua, America/Ojinaga, Asia/Hovd, America/Anchorage, Chile/EasterIsland, America/Halifax, Antarctica/Rothera, America/Indiana/Indianapolis, US/Mountain, Asia/Damascus, America/Argentina/San_Luis, America/Santiago, Asia/Baku, America/Argentina/Ushuaia, Atlantic/Reykjavik, Africa/Brazzaville, Africa/Porto-Novo, America/La_Paz, Antarctica/DumontDUrville, Asia/Taipei, Antarctica/South_Pole, Asia/Manila, Asia/Bangkok, Africa/Dar_es_Salaam, Poland, Atlantic/Madeira, Antarctica/Palmer, America/Thunder_Bay, Africa/Addis_Ababa, Asia/Yangon, Europe/Uzhgorod, Brazil/DeNoronha, Asia/Ashkhabad, Etc/Zulu, America/Indiana/Marengo, America/Creston, America/Punta_Arenas, America/Mexico_City, Antarctica/Vostok, Asia/Jerusalem, Europe/Andorra, US/Samoa, PRC, Asia/Vientiane, Pacific/Kiritimati, America/Matamoros, America/Blanc-Sablon, Asia/Riyadh, Iceland, Pacific/Pohnpei, Asia/Ujung_Pandang, Atlantic/South_Georgia, Europe/Lisbon, Asia/Harbin, Europe/Oslo, Asia/Novokuznetsk, CST6CDT, Atlantic/Canary, America/Knox_IN, Asia/Kuwait, SystemV/HST10, Pacific/Efate, Africa/Lome, America/Bogota, America/Menominee, America/Adak, Pacific/Norfolk, Europe/Kirov, America/Resolute, Pacific/Tarawa, Africa/Kampala, Asia/Krasnoyarsk, Greenwich, SystemV/EST5, America/Edmonton, Europe/Podgorica, Australia/South, Canada/Central, Africa/Bujumbura, America/Santo_Domingo, US/Eastern, Europe/Minsk, Pacific/Auckland, Africa/Casablanca, America/Glace_Bay, Canada/Eastern, Asia/Qatar, Europe/Kiev, Singapore, Asia/Magadan, SystemV/PST8, America/Port-au-Prince, Europe/Belfast, America/St_Barthelemy, Asia/Ashgabat, Africa/Luanda, America/Nipigon, Atlantic/Jan_Mayen, Brazil/Acre, Asia/Muscat, Asia/Bahrain, Europe/Vilnius, America/Fortaleza, Etc/GMT0, US/East-Indiana, America/Hermosillo, America/Cancun, Africa/Maseru, Pacific/Kosrae, Africa/Kinshasa, Asia/Kathmandu, Asia/Seoul, Australia/Sydney, America/Lima, Australia/LHI, America/St_Lucia, Europe/Madrid, America/Bahia_Banderas, America/Montserrat, Asia/Brunei, America/Santa_Isabel, Canada/Mountain, America/Cambridge_Bay, Asia/Colombo, Australia/West, Indian/Antananarivo, Australia/Brisbane, Indian/Mayotte, US/Indiana-Starke, Asia/Urumqi, US/Aleutian, Europe/Volgograd, America/Lower_Princes, America/Vancouver, Africa/Blantyre, America/Rio_Branco, America/Danmarkshavn, America/Detroit, America/Thule, Africa/Lusaka, Asia/Hong_Kong, Iran, America/Argentina/La_Rioja, Africa/Dakar, SystemV/CST6CDT, America/Tortola, America/Porto_Velho, Asia/Sakhalin, Etc/GMT+10, America/Scoresbysund, Asia/Kamchatka, Asia/Thimbu, Africa/Harare, Etc/GMT+12, Etc/GMT+11, Navajo, America/Nome, Europe/Tallinn, Turkey, Africa/Khartoum, Africa/Johannesburg, Africa/Bangui, Europe/Belgrade, Jamaica, Africa/Bissau, Asia/Tehran, WET, Europe/Astrakhan, Africa/Juba, America/Campo_Grande, America/Belem, Etc/Greenwich, Asia/Saigon, America/Ensenada, Pacific/Midway, America/Jujuy, Africa/Timbuktu, America/Bahia, America/Goose_Bay, America/Virgin, America/Pangnirtung, Asia/Katmandu, America/Phoenix, Africa/Niamey, America/Whitehorse, Pacific/Noumea, Asia/Tbilisi, America/Montreal, Asia/Makassar, America/Argentina/San_Juan, Hongkong, UCT, Asia/Nicosia, America/Indiana/Winamac, SystemV/MST7MDT, America/Argentina/ComodRivadavia, America/Boa_Vista, America/Grenada, Asia/Atyrau, Australia/Darwin, Asia/Khandyga, Asia/Kuala_Lumpur, Asia/Famagusta, Asia/Thimphu, Asia/Rangoon, Europe/Bratislava, Asia/Calcutta, America/Argentina/Tucuman, Asia/Kabul, Indian/Cocos, Japan, Pacific/Tongatapu, America/New_York, Etc/GMT-12, Etc/GMT-11, Etc/GMT-10, SystemV/YST9YDT, Europe/Ulyanovsk, Etc/GMT-14, Etc/GMT-13, W-SU, America/Merida, EET, America/Rosario, Canada/Saskatchewan, America/St_Kitts, Arctic/Longyearbyen, America/Fort_Nelson, America/Caracas, America/Guadeloupe, Asia/Hebron, Indian/Kerguelen, SystemV/PST8PDT, Africa/Monrovia, Asia/Ust-Nera, Egypt, Asia/Srednekolymsk, America/North_Dakota/New_Salem, Asia/Anadyr, Australia/Melbourne, Asia/Irkutsk, America/Shiprock, America/Winnipeg, Europe/Vatican, Asia/Amman, Etc/UTC, SystemV/AST4ADT, Asia/Tokyo, America/Toronto, Asia/Singapore, Australia/Lindeman, America/Los_Angeles, SystemV/EST5EDT, Pacific/Majuro, America/Argentina/Buenos_Aires, Europe/Nicosia, Pacific/Guadalcanal, Europe/Athens, US/Pacific, Europe/Monaco]
600
----------------------
Asia/Shanghai
----------------------
Asia/Shanghai
2023-04-07T20:10:11.625+08:00[Asia/Shanghai]

Process finished with exit code 0

ZoneDateTime带时区的时间对象

方法名 说明
static ZoneDateTime now() 获取当前时间的ZoneDate对象
static ZoneDateTime ofXXX(…) 获取指定时间的ZoneDate对象
ZoneDateTime minusXXX(时间) 减少时间系列的方法
ZoneDateTime plusXXX(时间) 增加时间系列的方法
ZoneDateTimewithXXX(时间) 修改时间系列的方法

十一、工具类

1、Duration(计算日期间隔,时分秒)

/**
 * @author Tweek
 */
public class DurationDemo1 {
    public static void main(String[] args) {
        //当前时间
        LocalDateTime today = LocalDateTime.now();
        System.out.println(today);

        //昨天
        LocalDateTime yestoday = LocalDateTime.of(2023,4,6,0,0,0);
        System.out.println(yestoday);

 
        //yestoday - today
        Duration duration = Duration.between(today,yestoday);
        //两个时间差的各个时间单位间隔
        System.out.println(duration.toDays());
        System.out.println(duration.toHours());
        System.out.println(duration.toMinutes());
        System.out.println(duration.toMillis());
        System.out.println(duration.toNanos());
    }
}
控制台输出:
2023-04-07T20:34:23.223
2023-04-06T00:00
-1
-44
-2674
-160463223
-160463223000000

2、Period(计算日期间隔,年月日)

/**
 * @author Tweek
 * Period
 */
public class pillDemo1 {
    public static void main(String[] args) {
        //当前时间
        LocalDate today = LocalDate.now();
        System.out.println(today);

        //昨天
        LocalDate yestoday = LocalDate.of(2023,4,6);
        System.out.println(yestoday);

        //Period对象表示时间的间隔对象
        //yestoday - today
        Period period = Period.between(today,yestoday);

        System.out.println(period.getYears());
        System.out.println(period.getMonths());
        System.out.println(period.getDays());
        System.out.println(period.toTotalMonths());
    }
}

控制台输出:
2023-04-07
2023-04-06
0
0
-1
0

3、ChronoUnit

该类比较全面,可以用于耽搁时间单位内测量一段时间,可以用于比较所有的时间单位,下面的代码只展示了年月周日。

/**
 * @author Tweek
 */
public class ChronoUnitDemo {
    public static void main(String[] args) {
        //当前时间
        LocalDateTime today = LocalDateTime.now();
        System.out.println(today);

        //昨天
        LocalDateTime yestoday = LocalDateTime.of(2023,4,6,0,0,0);
        System.out.println(yestoday);

        System.out.println("相差的年数" + ChronoUnit.YEARS.between(yestoday, today));
        System.out.println("相差的月数" + ChronoUnit.MONTHS.between(yestoday, today));
        System.out.println("相差的周数" + ChronoUnit.WEEKS.between(yestoday, today));
        System.out.println("相差的天数" + ChronoUnit.DAYS.between(yestoday, today));
    }
}

控制台输出:
2023-04-07T20:38:28.595
2023-04-06T00:00
相差的年数0
相差的月数0
相差的周数0
相差的天数1

4、计算年龄案例

/**
    计算用户实际年龄
 * @author Tweek
 */
public class CalculateAge {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入您的生日:");
        String birthday = in.nextLine();

        //转换日期对象
        LocalDate birthdayDate = LocalDate.parse(birthday, DateTimeFormatter.ofPattern("yyyy年M月d日"));
        //获取今天日期
        LocalDate today = LocalDate.now();
        //计算时间间隔
        System.out.println("计算出您今年" + ChronoUnit.YEARS.between(birthdayDate, today) + "岁");
    }
}

控制台输出:
请输入您的生日:
2002128//输入
计算出您今年21

你可能感兴趣的:(JAVA基础,java,jvm,开发语言)