亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaSE系列基礎(chǔ)包裝類(lèi)及日歷類(lèi)詳解

 更新時(shí)間:2021年12月16日 10:09:12   作者:java舞動(dòng)乾坤  
這篇文章主要介紹的是JavaSE中常用的基礎(chǔ)包裝類(lèi)以及日歷類(lèi)的使用詳解,文中的示例代碼簡(jiǎn)潔易懂,對(duì)我們學(xué)習(xí)JavaSE有一定的幫助,感興趣的小伙伴快來(lái)跟隨小編一起學(xué)習(xí)吧

1. 基本類(lèi)型包裝類(lèi)

1.1 概述

它用于基本數(shù)據(jù)類(lèi)型與字符串之間的轉(zhuǎn)換

在這里插入圖片描述

舉例:

public class IntegerDemo {
    public static void main(String[] args) {
        //判斷數(shù)據(jù)是否在int范圍內(nèi)
        System.out.println(Integer.MAX_VALUE);//最大范圍
        System.out.println(Integer.MIN_VALUE);//最小范圍
    }
}

1.2 Integer類(lèi)的概述與使用

這里只介紹Integer,其他的可自行查看幫助文檔。

那么我們重點(diǎn)看構(gòu)造方法

它的構(gòu)造方法,建議以后用Integer的方法,用valueOf()來(lái)使用

過(guò)時(shí)的方法當(dāng)然也可以用,不過(guò)它會(huì)提示已經(jīng)過(guò)時(shí),如下圖所示:

但是如果是字符串類(lèi)型的字母,就會(huì)運(yùn)行錯(cuò)誤,它識(shí)別的是字符串類(lèi)型的數(shù)字

Integer i3=new Integer("asd");//這里就會(huì)運(yùn)行錯(cuò)誤

不建議使用上面的兩種形式,建議使用這種格式:Integer i1=Integer.valueOf();

public class IntegerDemo {
    public static void main(String[] args) {
        Integer i1=Integer.valueOf(123);//數(shù)字類(lèi)型
        System.out.println(i1);
        Integer i2=Integer.valueOf("123");//字符串類(lèi)型
    }
}

1.3 int和String的相互轉(zhuǎn)換

簡(jiǎn)單的方式:“字符串”+數(shù)字,得出來(lái)的是拼接的字符串

int number=100;
String s1=""+number;

方式二官方版:

這里可以用官方文檔給我們提示的進(jìn)行,這里用的是valueOf進(jìn)行轉(zhuǎn)換

數(shù)字轉(zhuǎn)換為字符串:String s1=String.valueOf(num);

字符串轉(zhuǎn)換為數(shù)字:

方式一:先將String轉(zhuǎn)換為Integer再轉(zhuǎn)化為int

String—>Integer—>int

方式二:Integer.parseInt();

public class IntegerDemo {
    public static void main(String[] args) {
       int num=100;
       String s1=String.valueOf(num);
       //int轉(zhuǎn)換為字符串類(lèi)型
        System.out.println(s1);
        System.out.println("----------");
        //字符串轉(zhuǎn)換為int
        String s2="100";
       // 方式一:
        //String--->Integer--->int
        Integer i1=Integer.valueOf(s2);
        //通過(guò)幫助文檔發(fā)現(xiàn),
        // intValue()用來(lái)返回Integer
        // 作為int的值,正好符合要求
        int x=i1.intValue();//返回值用int接收
        System.out.println(x);
        //方式二:使用parseInt靜態(tài)方法
        int y=Integer.parseInt(s2);
        System.out.println(y);
    }
}

1.4 案例-字符串中數(shù)據(jù)排序

需求:有一個(gè)字符串:“91 27 46 38 50”,請(qǐng)寫(xiě)程序最終輸出的結(jié)果是:“27,38,46,50,91”.

思路:

代碼展示:

public class IntegerDemo {
    public static void main(String[] args) {
      //定義字符串
        String s="91 27 46 38 56";
        //將字符串中數(shù)據(jù)抽離出來(lái),以空格作為分割點(diǎn)
        String[] s1 = s.split(" ");
        //定義一個(gè)int數(shù)組,用于存這些數(shù)據(jù)
        int []arr=new int[s1.length];//以s1的長(zhǎng)度
        //轉(zhuǎn)換為int類(lèi)型
        for (int i = 0; i < s1.length; i++) {
            arr[i] = Integer.parseInt(s1[i]);
            //賦值
        }
        //進(jìn)行排序
        Arrays.sort(arr);
        //字符串拼拼接
        StringBuilder sb=new StringBuilder();
        for(int i = 0; i < arr.length; i++){
            if(i==arr.length-1){
                sb.append(arr[i]);
            }else{
                sb.append(arr[i]).append(" ");
            }

        }
        String result = sb.toString();
        System.out.println("排序后的:"+ result);




    }
}

1.5 自動(dòng)裝箱和拆箱

裝箱: 把基本數(shù)據(jù)類(lèi)型轉(zhuǎn)換為對(duì)應(yīng)包裝類(lèi)型拆箱: 把包裝類(lèi)型轉(zhuǎn)換為基本數(shù)據(jù)類(lèi)型

先看裝箱:通過(guò)定義我們可以看出,裝箱把基本數(shù)據(jù)類(lèi)型轉(zhuǎn)化為對(duì)應(yīng)包裝類(lèi)型,例如:

Inter i=Integer.valueOf(100);//這里先把100轉(zhuǎn)化為Inter類(lèi)型,賦值
Integer i1=100;//這里java5之后就在jdk內(nèi)部
//已經(jīng)潛移默化的為我們包裝好了
//它等同于上步

拆箱:與裝箱執(zhí)行相反的步驟

Integer i1=100;
//拆箱:轉(zhuǎn)換為int型,用intValue()這個(gè)方法
//然后進(jìn)行基本類(lèi)型的運(yùn)算后再賦值給i1
//完成自動(dòng)拆箱
i1=i1.intValue()+200;//最后賦值是自動(dòng)裝箱

自動(dòng)拆箱:省去了轉(zhuǎn)化為int類(lèi)型的基本數(shù)據(jù)類(lèi)型,直接進(jìn)行運(yùn)算

Integer i1=100;
i1+=200;//內(nèi)部隱含了自動(dòng)拆箱和自動(dòng)裝箱

注意

如果定義時(shí),定義的Integer i=null;那么i進(jìn)行運(yùn)算時(shí)會(huì)運(yùn)行錯(cuò)誤,這里要注意,引用類(lèi)型的最好要判斷是否為null,只要是對(duì)象,就必須判斷是否為空

2. Date類(lèi)

要注意,Date類(lèi)導(dǎo)包時(shí)要清楚自己導(dǎo)的哪個(gè)包

構(gòu)造方法:

Date 代表了指定時(shí)間,精確到毫秒

舉例:注意!在這里導(dǎo)入的util包下的

public class DateDemo {
    public static void main(String[] args) {
        Date d=new Date();
        //按道理輸出的應(yīng)該是地址,結(jié)果輸出了時(shí)間,因?yàn)橹貙?xiě)了toString方法
        System.out.println(d);
        //有參構(gòu)造
        long data=1000*60*60;//毫秒*1000->秒->*60->分鐘->*60->小時(shí)
        Date d2=new Date(data);
        System.out.println(d2);
    }
}

運(yùn)行結(jié)果:

Wed Dec 15 17:51:04 CST 2021

Thu Jan 01 09:00:00 CST 1970//其中09:00:00是時(shí)區(qū)

2.1 Date常用方法

public long getTime() 獲取的是日期對(duì)象,從1970年1月1日00:00:00到現(xiàn)在的毫秒

public void setTime(long time) 設(shè)置時(shí)間,給的是毫秒值

getTime:
public class DateDemo {
    public static void main(String[] args) {
        Date d=new Date();
        //獲取時(shí)間
        System.out.println(d.getTime()*1.0/1000/60/60/24/365+"年");
    }
}

運(yùn)行結(jié)果:

51.99024939979706年//從1970到現(xiàn)在

setTime
public class DateDemo {
    public static void main(String[] args) {
        Date d=new Date();
       long date=1000*60*60;
       d.setTime(date);
        System.out.println(d);
    }
}

運(yùn)行結(jié)果:

Thu Jan 01 09:00:00 CST 1970

3. SimpleDateFormat類(lèi)

概述

SimpleDateFormat是一個(gè)具體的類(lèi),用于以區(qū)域設(shè)置敏感的方式格式化和解析日期。重點(diǎn)學(xué)習(xí)日期格式化和解析化

日期和時(shí)間格式由日期和時(shí)間模式字符串指定,在日期和時(shí)間模式字符串中,從‘A'到‘Z'以及從‘a(chǎn)'到‘z'引號(hào)的字母被解釋為表示日期或時(shí)間字符串的組件的模式字母

常用模式字母對(duì)應(yīng)關(guān)系

  • y…年
  • M…月
  • d…天
  • H…時(shí)
  • m…分
  • s…秒

構(gòu)造方法

SimpleDateFormat格式化與解析日期

格式化(從Date到String)public final String format(Date date):將日期格式化成日期/時(shí)間字符串

解析(從String到Date)public Date parse(String souce):從給定字符串的開(kāi)始解析文本以生成日期

舉例

格式化

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

public class SimpleDateFormatDemo {
    public static void main(String[] args) {
        //格式化
        Date d=new Date();
        //無(wú)參構(gòu)造
        //先創(chuàng)建SimpleDateFormat類(lèi)
        SimpleDateFormat sdf = new SimpleDateFormat();
        //通過(guò)對(duì)象調(diào)用方法
        String s = sdf.format(d);
        System.out.println(s);

    }
}

運(yùn)行結(jié)果:

2021/12/15 下午7:11

為了看起來(lái)更加方便,可以自己設(shè)置模式:傳遞參數(shù):

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

運(yùn)行結(jié)果

解析

要注意的點(diǎn):字符串模式的格式要和傳參一樣

2021-12-15 12:00:00要和yyyy-MM-dd HH:mm:ss"格式對(duì)應(yīng),例如都需要-,在代碼下面會(huì)提示異常,要拋出異常,快捷鍵Alt+Enter

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

public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {//拋出異常
        //解析
        Date d=new Date();
        String s="2021-12-15 12:00:00";
        //先創(chuàng)建SimpleDateFormat類(lèi)
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//這里格式要和模式的一樣
        //通過(guò)對(duì)象調(diào)用方法
        Date ss = sdf.parse(s);
        //拋出異常Alt+Enter
        System.out.println(ss);

    }
}

3.1 案例-日期工具類(lèi)

工具類(lèi):

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

/*
工具類(lèi):構(gòu)造方法私有,成員靜態(tài)
*/
public class DateUtils {
    private DateUtils() {}
    //方法,把日期轉(zhuǎn)化為指定格式的字符串
    //返回類(lèi)型:String
    //參數(shù):Date date,String format
    public static String dateTostring(Date date,String format){
        SimpleDateFormat sdf=new SimpleDateFormat(format);
        String s = sdf.format(date);
        return s;
    }
    //方法,把字符串轉(zhuǎn)化為指定格式的日期
    //返回類(lèi)型:Date
    //參數(shù):String s,String format
    public static Date stringTodate(String s1,String format) throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat(format);
       Date p = sdf.parse(s1);
       return p;
    }
}

測(cè)試類(lèi):

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

public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {//拋出異常
        //創(chuàng)建日期對(duì)象
        Date d=new Date();
        //調(diào)用方法
        String s = DateUtils.dateTostring(d, "yyyy年MM月dd日 HH:mm:ss");
        System.out.println(s);
        //也可以拿到部分
        String s1 = DateUtils.dateTostring(d, "yyyy年MM月dd日");
        System.out.println(s1);
        System.out.println("----以下是解析----");
        String s2="2021-12-15 00:00:00";
        Date date = DateUtils.stringTodate(s2, "yyyy-MM-dd HH:mm:ss");
        System.out.println(date);
    }
}

運(yùn)行結(jié)果:

4. Calendar類(lèi)-日歷

概述

Calendar為某一時(shí)刻和一組日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段提供了一些方法

Calendar提供了一個(gè)類(lèi)方法getlnstance用于獲取Calendar對(duì)象,其日歷字段已使用當(dāng)前日期和時(shí)間

初始化: Calendar rightNow = Calendar.getInstance();


import java.util.Calendar;

public class CalendarDemo {
    public static void main(String[] args) {
        //獲取對(duì)象
        Calendar c = Calendar.getInstance();//多態(tài)的形式
        int year = c.get(Calendar.YEAR);//因?yàn)樽侄问庆o態(tài)修飾的,所以通過(guò)對(duì)象調(diào)用字段
        //即Calendar.YEAR
        int month = c.get(Calendar.MONTH)+1;//一定要注意,月份是從0開(kāi)始的,要+1
        int date = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
    }
}

注意:這里的月份是從0開(kāi)始的,所以在使用時(shí)要+1

運(yùn)行結(jié)果:

2021年12月15日

4.1 Calendar 的常用方法

add()方法,由于在默認(rèn)類(lèi)中重寫(xiě)了方法,所以這里可以直接使用

import java.util.Calendar;

public class CalendarDemo {
    public static void main(String[] args) {
        //獲取對(duì)象
        Calendar c = Calendar.getInstance();//多態(tài)的形式
        c.add(Calendar.YEAR,10);//在現(xiàn)在的基礎(chǔ)上增加十年
        c.add(Calendar.DATE,-5);//在原來(lái)的基礎(chǔ)上-5天
        int year = c.get(Calendar.YEAR);//因?yàn)樽侄问庆o態(tài)修飾的,所以通過(guò)對(duì)象調(diào)用字段
        //即Calendar.YEAR
        int month = c.get(Calendar.MONTH)+1;//一定要注意,月份是從0開(kāi)始的,要+1
        int date = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
    }
}

運(yùn)行結(jié)果:

set()方法

import java.util.Calendar;

public class CalendarDemo {
    public static void main(String[] args) {
        //獲取對(duì)象
        Calendar c = Calendar.getInstance();//多態(tài)的形式
        c.set(2022,11,05);//這里11出來(lái)的結(jié)果會(huì)是12
        int year = c.get(Calendar.YEAR);//因?yàn)樽侄问庆o態(tài)修飾的,所以通過(guò)對(duì)象調(diào)用字段
        //即Calendar.YEAR
        int month = c.get(Calendar.MONTH)+1;//一定要注意,月份是從0開(kāi)始的,要+1
        int date = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
    }
}

運(yùn)行結(jié)果:

以上就是JavaSE系列基礎(chǔ)包裝類(lèi)及日歷類(lèi)詳解的詳細(xì)內(nèi)容,更多關(guān)于JavaSE 基礎(chǔ)包裝類(lèi) 日歷類(lèi)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • spring通過(guò)構(gòu)造函數(shù)注入實(shí)現(xiàn)方法分析

    spring通過(guò)構(gòu)造函數(shù)注入實(shí)現(xiàn)方法分析

    這篇文章主要介紹了spring通過(guò)構(gòu)造函數(shù)注入實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了spring通過(guò)構(gòu)造函數(shù)注入的原理、實(shí)現(xiàn)步驟及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • MyEclipse設(shè)置Console輸出到文件的實(shí)現(xiàn)方法

    MyEclipse設(shè)置Console輸出到文件的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇MyEclipse設(shè)置Console輸出到文件的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • 使用java編程從0到1實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器

    使用java編程從0到1實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器

    這篇文章主要介紹了使用java編程從0到1實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器,文章中用代碼實(shí)例講解的很清晰,有感興趣的同學(xué)可以學(xué)習(xí)研究下
    2021-02-02
  • java多線程導(dǎo)入excel的方法

    java多線程導(dǎo)入excel的方法

    最近項(xiàng)目寫(xiě)了poi導(dǎo)入excel數(shù)據(jù)到數(shù)據(jù)庫(kù),想把學(xué)到的知識(shí)用于實(shí)踐,于是使用多線程方式導(dǎo)入excel,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Java8新特性Stream流實(shí)例詳解

    Java8新特性Stream流實(shí)例詳解

    Stream流是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列。這篇文章主要介紹了Java8新特性Stream流的相關(guān)資料,需要的朋友參考下吧
    2017-10-10
  • SpringBoot中熱部署配置深入講解原理

    SpringBoot中熱部署配置深入講解原理

    在實(shí)際開(kāi)發(fā)中,每次修改代碼就需要重啟項(xiàng)目,重新部署,對(duì)于一個(gè)后端開(kāi)發(fā)者來(lái)說(shuō),重啟確實(shí)很難受。在java開(kāi)發(fā)領(lǐng)域,熱部署一直是一個(gè)難以解決的問(wèn)題,目前java虛擬機(jī)只能實(shí)現(xiàn)方法體的熱部署,對(duì)于整個(gè)類(lèi)的結(jié)構(gòu)修改,仍然需要重啟項(xiàng)目
    2023-01-01
  • Java開(kāi)發(fā)實(shí)現(xiàn)猜拳游戲

    Java開(kāi)發(fā)實(shí)現(xiàn)猜拳游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)猜拳游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Feign?請(qǐng)求動(dòng)態(tài)URL方式

    Feign?請(qǐng)求動(dòng)態(tài)URL方式

    這篇文章主要介紹了Feign?請(qǐng)求動(dòng)態(tài)URL方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Mybatis-Plus實(shí)現(xiàn)自動(dòng)生成代碼的操作步驟

    Mybatis-Plus實(shí)現(xiàn)自動(dòng)生成代碼的操作步驟

    AutoGenerator 是 MyBatis-Plus 的代碼生成器,通過(guò) AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各個(gè)模塊的代碼,極大的提升了開(kāi)發(fā)效率,本文將給大家介紹Mybatis-Plus實(shí)現(xiàn)自動(dòng)生成代碼的操作步驟
    2023-10-10
  • SpringCloud zuul 網(wǎng)關(guān)如何解決跨域問(wèn)題

    SpringCloud zuul 網(wǎng)關(guān)如何解決跨域問(wèn)題

    這篇文章主要介紹了SpringCloud zuul網(wǎng)關(guān)解決跨域問(wèn)題的具體實(shí)現(xiàn)方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評(píng)論