中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

獨(dú)立站和企業(yè)網(wǎng)站區(qū)別網(wǎng)絡(luò)技術(shù)培訓(xùn)

獨(dú)立站和企業(yè)網(wǎng)站區(qū)別,網(wǎng)絡(luò)技術(shù)培訓(xùn),wordpress oss upload,檢索類的網(wǎng)站建設(shè)1. JDK7-Date類 我們先來看時(shí)間的相關(guān)知識(shí)點(diǎn) 世界標(biāo)準(zhǔn)時(shí)間: 格林尼治時(shí)間/格林威治時(shí)間(Greenwich Mean Time)簡稱GMT。目前世界標(biāo)準(zhǔn)時(shí)間(UTC)已經(jīng)替換為:原子鐘中國標(biāo)準(zhǔn)時(shí)間: 世界標(biāo)準(zhǔn)時(shí)間8小時(shí) 時(shí)間單位換算: 1秒1000毫秒 1毫秒1000微秒 1微秒1000納秒 Date類 Date類…

1. JDK7-Date類

我們先來看時(shí)間的相關(guān)知識(shí)點(diǎn)

  • 世界標(biāo)準(zhǔn)時(shí)間:

      格林尼治時(shí)間/格林威治時(shí)間(Greenwich Mean Time)簡稱GMT。目前世界標(biāo)準(zhǔn)時(shí)間(UTC)已經(jīng)替換為:原子鐘
    
  • 中國標(biāo)準(zhǔn)時(shí)間: 世界標(biāo)準(zhǔn)時(shí)間+8小時(shí)

時(shí)間單位換算:

  • 1秒=1000毫秒

  • 1毫秒=1000微秒

  • 1微秒=1000納秒


Date類
Date類是一個(gè)JDK寫好的Javabean類,用來描述時(shí)間,精確到毫秒。

  • 利用空參構(gòu)造創(chuàng)建的對象,默認(rèn)表示系統(tǒng)當(dāng)前時(shí)間。
  • 利用有參構(gòu)造創(chuàng)建的對象,表示指定的時(shí)間。

我們給出一些常用的方法和構(gòu)造方法:

  • 構(gòu)造方法
方法說明
public Date()創(chuàng)建Date對象,表示當(dāng)前時(shí)間
public Date(long date)創(chuàng)建Date對象,表示指定時(shí)間
  • 成員方法
方法說明
public void setTime(long time)設(shè)置/修改毫秒值
public long getTime()獲取時(shí)間對象的毫秒值

代碼示例:

Date d1 = new Date();
System.out.println(d1);
//表示一個(gè)指定的時(shí)間
Date d2 = new Date(1000L);
System.out.println(d2);
//設(shè)置一個(gè)時(shí)間
d2.setTime(1000L);//從時(shí)間原點(diǎn)開始設(shè)置
System.out.println(d2);
//獲取當(dāng)前時(shí)間的毫秒值
long time = d2.getTime();//返回值為long類型
System.out.println(time);

輸出結(jié)果為:
在這里插入圖片描述
這里給上其他例子:

  1. 獲取時(shí)間原點(diǎn)一年以后的時(shí)間
  2. 隨機(jī)創(chuàng)建兩個(gè)時(shí)間對象并比較

代碼示例:

System.out.println("--------------------");
//時(shí)間原點(diǎn)一年以后的時(shí)間
long time1 = 1000L * 60 * 60 * 24 * 365;
Date d3 = new Date(time1);
System.out.println(d3);
System.out.println("--------------------");
//獲取兩個(gè)隨機(jī)時(shí)間
Random r = new Random();
Date d4 = new Date(Math.abs(r.nextInt()));
Date d5 = new Date(Math.abs(r.nextInt()));
System.out.println(d4);
System.out.println(d5);
//時(shí)間的比較使用gettime方法即可

2. JDK7-SimpleDateFormat類

這個(gè)類主要有兩個(gè)作用:

  1. 把時(shí)間變成我們想要的格式
  2. 把字符串表示的時(shí)間變成Date對象

下面我們介紹構(gòu)造方法和常用的成員方法:

#構(gòu)造方法
public SimpleDateFormat()  : 默認(rèn)格式
public SimpleDateFormat(String pattern) : 指定格式
#成員方法
public final String format(Date date)   :  格式化(日期對象->字符串)
public Date parse(String source)   :  解析(字符串->日期對象)

public SimpleDateFormat(String pattern)中的pattern是這個(gè)類的一個(gè)成員變量,表述時(shí)間的格式。

  • 如果使用空參構(gòu)造那么格式化的時(shí)候就會(huì)是:年/月/日/ 上午/下午 時(shí):分:秒
  • 使用帶參數(shù)構(gòu)造方法:傳入格式

傳入的格式:(常用格式-來自黑馬程序員)
在這里插入圖片描述
代碼示例:

//1.利用空參構(gòu)造創(chuàng)建SimpleDateFormat對象,默認(rèn)格式
SimpleDateFormat sdf1 = new SimpleDateFormat();
Date d1 = new Date(OL);
String str1 = sdf1.format(d1);|
System.out.println(str1);//1970/1/1 1:48:00
//2.利用帶參構(gòu)造創(chuàng)建SimpleDateFormat對象,指定格式
SimpleDateFormat sdf2 = new SimpleDateFormat(pattern:"yyyy|MM]ddHH:mm:ssEE");
String str2 = sdf2.format(d1);
System.out.println(str2);//1970年01月01日 08:00:00

parse(String source) : 字符串->時(shí)間對象

//1.定義一個(gè)字符串表示時(shí)間
String str = "2023-11-11 11:11:11";
//2.利用空參構(gòu)造創(chuàng)建SimpleDateFormat對象
//細(xì)節(jié):
//創(chuàng)建對象的格式要跟字符串的格式完全一致
SimpleDateFormat sdf = new SimpleDateFormat( pattern: "yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(str);
//3.打印結(jié)果
System.out.println(date.getTime());//1699672271000

3.JDK7-Calendar類

Calendar代表了系統(tǒng)當(dāng)前時(shí)間的日歷對象,可以單獨(dú)修改、獲取時(shí)間中的年,月,日

細(xì)節(jié):Calendar是一個(gè)抽象類,不能直接創(chuàng)建對象。

獲取Calendar日歷類對象的方法

public static Calendar getInstance()  獲取當(dāng)前時(shí)間的日歷對象的子類對象

常用方法:

方法名說明
public final Date getTime()獲取日期對象
public final setTime(Date date)給日歷設(shè)置日期對象
public long getTimeInMillis()拿到時(shí)間毫秒值
public void setTimeInMillis(long millis)給日歷設(shè)置時(shí)間毫秒值
public int get(int field)取日歷中的某個(gè)字段信息
public void set(int field, int value)修改日歷的某個(gè)字段信息
public void add(int field, int amount)為某個(gè)字段增加/減少指定的值
  1. 獲取日歷對象
  • 細(xì)節(jié): Calendar是一個(gè)抽象類,不能直接new,而是通過一個(gè)靜態(tài)方法獲取到子類對象
  • 會(huì)根據(jù)系統(tǒng)的不同時(shí)區(qū)來獲取不同的日歷對象,默認(rèn)表示當(dāng)前時(shí)間。
  • 把會(huì)把時(shí)間中的紀(jì)元,年,月,日,時(shí),分,秒,星期,等等的都放到一個(gè)數(shù)組當(dāng)中
Calendar c = Calendar.getInstance();
  1. 修改一下日歷代表的時(shí)間
Date d = new Date(OL);
c.setTime(d);
System.out.println(c);

3.get(int field)
首先我們要知道在日歷對象數(shù)組中數(shù)字的意義:

  • 月份:范圍0~11 如果獲取出來的是0.那么實(shí)際上是1月。
  • 星期: 數(shù)字表示略有不同
    • 1(星期日)
    • 2(星期一)
    • 3(星期二)
    • 4(星期三)
    • 5(星期四)
    • 6(星期五)
    • 7(星期六)

方法的參數(shù)field值為:0,1,2,3,4,5,6,,,16
其中:

  • 0 - 紀(jì)元
  • 1 - 年
  • 2 - 月
  • 3 - 一年中的第幾周
  • 4 - 一個(gè)月中的第幾周
  • 5 - 一個(gè)月中的第幾天

代碼示例:

Calendar c = Calendar.getInstance();
System.out.println(c);
System.out.println(c.get(1) + "年" + (c.get(2) + 1) + "月" + c.get(5) + "日");

輸出結(jié)果為:2024年11月29日

注意:這里月份加一:(c.get(2) + 1)

  1. set(int field, int value)add(int field, int amount)

使用獲取的日歷對象調(diào)用
set方法中,field 表示的和上面get方法中的 field一樣
后面value表示要修改的值

add方法中field表示和上述相同,amount表示要增加或者刪去的數(shù)。

  • 要注意的時(shí)月份在編譯器中的范圍是:0-11
  • amount為正數(shù)表示增加,為負(fù)數(shù)表示減少

3.JDK8相關(guān)時(shí)間類

a.為什么要學(xué)習(xí)JDK8的時(shí)間類

  • JDK8 的時(shí)間類相比于JDK7 在代碼上更為簡潔和方便
  • 更為的安全,JDK8的時(shí)間日期對象都是不可變的,解決了多線程環(huán)境下導(dǎo)致的環(huán)境安全問題

b.JDK8時(shí)間相關(guān)類的分類

我們按照對比JDK7時(shí)間類的方法進(jìn)行分類:

  1. 和JDK7中的Date類相照應(yīng):
    • ZoneId:時(shí)區(qū)
    • Instant:時(shí)間戳
    • ZoneDateTime:帶時(shí)區(qū)的時(shí)間
  2. SimpleDateFormat相對應(yīng)
    • DateTimeFormatter:用于時(shí)間格式化和解析
  3. Calendar類相對應(yīng)
    • LocalDate:年、月、日
    • LocalTime:時(shí)、分、秒
    • LocalDateTime:年、月、日、時(shí)、分、秒
  4. 工具類
    • Duration : 用于計(jì)算兩個(gè)“時(shí)間”間隔(秒,納秒)
    • Period: 用于計(jì)算兩個(gè)“日期”間隔(年、月、日)
    • ChronoUnit: 用于計(jì)算兩個(gè)“日期”間隔(使用范圍更廣,要熟練掌握)

c.類的成員方法

  1. ZoneId

     static Set<String> getAvailableZoneIds()———獲取Java中支持的所有時(shí)區(qū)static ZoneId systemDefault()———獲取系統(tǒng)默認(rèn)時(shí)區(qū)static ZoneId of(String zoneId)——獲取一個(gè)指定時(shí)區(qū)
    

代碼示例:

//獲取所有時(shí)區(qū)
Set<String> zoneIds = ZoneId.getAvailableZoneIds();
System.out.println(zoneIds);
//獲取當(dāng)前系統(tǒng)默認(rèn)時(shí)區(qū)
ZoneId systemDefault = ZoneId.systemDefault();
System.out.println(systemDefault);
//獲取一個(gè)指定時(shí)區(qū)
ZoneId of = ZoneId.of("US/Indiana-Starke");
System.out.println(of);

值得注意的是getAvailableZoneIds()的返回類型是一個(gè)集合,這個(gè)集合的泛型式String
當(dāng)然對于第二個(gè)默認(rèn)時(shí)區(qū)我們可以在電腦的設(shè)置上進(jìn)行修改

  1. 時(shí)間戳Instant

時(shí)間戳獲取的式標(biāo)準(zhǔn)時(shí)間不帶時(shí)區(qū)

方法說明
static Instant now( )獲取當(dāng)前時(shí)間的Instant對象(標(biāo)準(zhǔn)時(shí)間)
static Instant ofXxxx(long epochMilli)根據(jù)(秒/毫秒/納秒)獲取Instant對象
ZonedDateTime atZone(ZoneId zone)指定時(shí)區(qū)
boolean isXxx(Instant otherInstant)判斷系列的方法
Instant minusXxx(long millisToSubtract)減少時(shí)間系列的方法
Instant plusXxx(long millisToSubtract)增加時(shí)間系列的方法

上面的Xxxx表示這個(gè)方法有很多的不同的類型

我們給出代碼示例:

Instant now = Instant.now();
System.out.println(now);
//根據(jù)傳入的時(shí)間獲取對象(相對于時(shí)間原點(diǎn))
Instant instant = Instant.ofEpochMilli(1000L);
Instant instant1 = Instant.ofEpochSecond(1L);
Instant instant2 = Instant.ofEpochSecond(1L, 1000000000L);
System.out.println(instant);
System.out.println(instant1);
System.out.println(instant2);
//獲取指定時(shí)區(qū)的時(shí)間戳
ZonedDateTime zonedDateTime = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
//1.返回類型式zonedDateTime
//2.需要Instant對象調(diào)用
//3.傳入的參數(shù)式zoneId類型的時(shí)區(qū)
System.out.println(zonedDateTime);
//判斷時(shí)間前后
boolean after = instant.isAfter(instant1);
boolean before = instant.isBefore(instant2);
System.out.println(after);
System.out.println(before);
//減少時(shí)間
Instant instant3 = instant.minusSeconds(1L);
System.out.println(instant);
System.out.println(instant3);
  1. ZoneDateTime:帶時(shí)區(qū)的時(shí)間

方法:

方法說明
static ZonedDateTime now()獲取當(dāng)前時(shí)間的ZonedDateTime對象(帶時(shí)區(qū))
static ZonedDateTime ofXxxx( )獲取指定時(shí)間的ZonedDateTime對象(帶時(shí)區(qū))
ZonedDateTime withXxx(時(shí)間)修改時(shí)間系列的方法
ZonedDateTime minusXxx(時(shí)間)減少時(shí)間系列的方法
ZonedDateTime plusXxx(時(shí)間)增加時(shí)間系列的方法

需要我么注意的是有一個(gè)和Instant搭配的用法,我們前面也講過:

//獲取指定時(shí)區(qū)的時(shí)間戳
ZonedDateTime zonedDateTime = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
//1.返回類型式zonedDateTime
//2.需要Instant對象調(diào)用
//3.傳入的參數(shù)式zoneId類型的時(shí)區(qū)
System.out.println(zonedDateTime);

同時(shí)修改時(shí)間的方法可以針對性的修改年份、月份、時(shí)、秒等

InstantZoneDateTime都是時(shí)間對象,主要區(qū)別在于前者時(shí)獲取標(biāo)準(zhǔn)時(shí)間對象,后者表示帶時(shí)區(qū)的時(shí)間對象

  1. DateTimeFormatter:用于時(shí)間格式化和解析
方法說明
static DateTimeFormatter ofPattern(格式)獲取格式對象
String format(時(shí)間對象)按照指定方式格式化

代碼示例:

//獲取時(shí)間對象
ZonedDateTime time = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
// 解析/格式化器
DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm: ss EE a");
// 格式化
System.out.println(dtf1.format(time));
  1. LocalDateTime及相關(guān)
方法名說明
static XXX now()獲取當(dāng)前時(shí)間的對象
static XXX of(. . . )獲取指定時(shí)間的對象
get開頭的方法獲取日歷中的年、月、日、時(shí)、分、秒等信息
isBefore, isAfter比較兩個(gè) LocalDate
with開頭的修改時(shí)間系列的方法
minus開頭的減少時(shí)間系列的方法
plus開頭的增加時(shí)間系列的方法

同時(shí)LocalDateTime可以轉(zhuǎn)換成LocalDateLocalTime
在這里插入圖片描述
方法:

方法名說明
public LocalDate toLocalDate()LocalDateTime轉(zhuǎn)換成一個(gè)LocalDate對象
public LocalTime toLocalTime()LocalDateTime轉(zhuǎn)換成一個(gè)LocalTime對象

4.包裝類

a.什么是包裝類

包裝類是基本數(shù)據(jù)類型對應(yīng)的引用數(shù)據(jù)類型(對象)
使用包裝類是為了數(shù)據(jù)的統(tǒng)一,因?yàn)橹挥幸脭?shù)據(jù)類型才能使用集合,也只有類才可以使用Object來接收數(shù)據(jù)

public void show(Object obj){//代碼
}

實(shí)際上內(nèi)存原理是:

  • 使用一個(gè)類的成員變量來記錄數(shù)值
  • 操作數(shù)據(jù)的方法

內(nèi)存圖:
在這里插入圖片描述

b. 包裝類的分類

基本數(shù)據(jù)類型包裝類
byteByte
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean

只有int和char的包裝類命名比較特殊,其他都是首字母大寫


c.創(chuàng)建一個(gè)包裝類對象

1.JDK5之前的創(chuàng)建方法
方法說明
public Integer(int value)根據(jù)傳遞的整數(shù)創(chuàng)建一個(gè)Integer對象
public Integer(String s)根據(jù)傳遞的字符串創(chuàng)建一個(gè)Integer對象
public static Integer valueOf(int i)根據(jù)傳遞的整數(shù)創(chuàng)建一個(gè)Integer對象
public static Integer valueOf(String s)根據(jù)傳遞的字符串創(chuàng)建一個(gè)Integer對象
public static Integer valueOf(String s, int radix)根據(jù)傳遞的字符串和進(jìn)制創(chuàng)建一個(gè)Integer對象

上面的方法中兩個(gè)構(gòu)造方法和三個(gè)靜態(tài)方法,我們介紹它們的區(qū)別

Integer i1 = new Integer(1);
Integer i2 = new Integer("2");
//
Integer i3 = Integer.valueOf(1);
Integer i4 = Integer.valueOf("3");
Integer i5 = Integer.valueOf("123", 8);
System.out.println(i1);
System.out.println(i2);
System.out.println("---------------");
System.out.println(i3);
System.out.println(i4);
System.out.println(i5);
  • 在Java內(nèi)部對valueof進(jìn)行了優(yōu)化,傳入的數(shù)值在-128 ~ 127之間時(shí)會(huì)返回一個(gè)固定的對象,對象的地址值是固定的
  • 而使用構(gòu)造方法new是一定會(huì)創(chuàng)建一個(gè)新的對象

當(dāng)然這都是過時(shí)的方法,現(xiàn)在不常用了

2. 當(dāng)前創(chuàng)建包裝類對象

我們使用上述的方法創(chuàng)建的包裝類在進(jìn)行運(yùn)算的時(shí)候比較麻煩需要經(jīng)歷以下步驟:

  1. 把包裝類轉(zhuǎn)換為基本數(shù)據(jù)類型
  2. 使用基本數(shù)據(jù)類型進(jìn)行運(yùn)算
  3. 把運(yùn)算的結(jié)果轉(zhuǎn)換為包裝類型

在JDK5之后,Java做了優(yōu)化,把上述的過程直接在底層實(shí)現(xiàn)了。我們可以直接使用包裝類進(jìn)行賦值

Integer i = 10;
Integer j = 11;
Integer sum = i + j; 

d.Integer類成員方法詳解

方法說明
public static String toBinaryString(int i)得到二進(jìn)制
public static String toOctalString(int i)得到八進(jìn)制
public static String toHexString(int i)得到十六進(jìn)制
public static int parseInt(String s)將字符串類型的整數(shù)轉(zhuǎn)成int類型的整數(shù)

前面三種方法的返回值都是String類型,原因:

  • 用基本數(shù)據(jù)類型長度可能不夠
  • 返回二進(jìn)制時(shí)候返回的值可能是負(fù)數(shù)。例如:01101,但是基本數(shù)據(jù)類型0不可以作為開頭

這里詳細(xì)講一下字符串轉(zhuǎn)換:

int i = Integer.parseInt( s: "123");
System.out.println(i);
System.out.println(i + 1);//124
String str = "true";
boolean b = Boolean.parseBoolean(str);
System.out.println(b);

java是一種強(qiáng)類型語言(每種數(shù)據(jù)在java中都有各自的數(shù)據(jù)類型)在計(jì)算的時(shí)候,如果不是同一種數(shù)據(jù)類型,是無法直接計(jì)算的。

值得注意的是parseInt(String s)的兩點(diǎn):

  • 在類型轉(zhuǎn)換的時(shí)候,括號(hào)中的參數(shù)只能是數(shù)字不能是其他,否則代碼會(huì)報(bào)錯(cuò)
  • 8種包裝類當(dāng)中,除了Character都有對應(yīng)的parseXxx的方法,進(jìn)行類型轉(zhuǎn)換

e.鍵盤錄入nextLine

我們之前使用Scanner對象進(jìn)行鍵盤錄入的時(shí)候會(huì)有一點(diǎn)的弊端:

  • 比如:nextInt, nextDouble, next等
  • 在進(jìn)行錄入的時(shí)候如果遇到空格, 回車制表符時(shí)候就停止了

所以在以后我們建議使用nextLine:可以錄入一整行的數(shù)據(jù),遇到回車停止

  • 返回值是String類型
  • 可以使用類型轉(zhuǎn)換的方法,把錄入的String類型的數(shù)據(jù)轉(zhuǎn)換為我們需要的數(shù)據(jù)

代碼示例:

Scanner scanner = new Scanner(System.in);
System.out.println("請輸入一個(gè)字符串");
String s = scanner.nextLine();
int i = Integer.parseInt(s);
System.out.println(i);

http://www.risenshineclean.com/news/27341.html

相關(guān)文章:

  • 個(gè)人博客網(wǎng)站制作論文網(wǎng)站關(guān)鍵詞快速排名服務(wù)
  • 軟件企業(yè)網(wǎng)站模板2023全民核酸又開始了
  • 做網(wǎng)站需要多少資金如何建立個(gè)人網(wǎng)址
  • 軟件工程畢業(yè)可以做網(wǎng)站嗎購買網(wǎng)站域名
  • 學(xué)做網(wǎng)站要學(xué)什么語言熱狗網(wǎng)站關(guān)鍵詞優(yōu)化
  • 寧波seo網(wǎng)絡(luò)推廣推薦公眾號(hào)seo工資水平
  • 子網(wǎng)站怎么建設(shè)產(chǎn)品營銷策略有哪些
  • 旅游網(wǎng)站有哪些功能指數(shù)基金什么意思
  • 手機(jī)賺錢網(wǎng)站新河seo怎么做整站排名
  • iis搭建網(wǎng)站seo學(xué)校培訓(xùn)課程
  • 長沙交互網(wǎng)站設(shè)計(jì)服務(wù)商愛站網(wǎng)seo綜合查詢
  • 網(wǎng)站怎么在百度做推廣看今天的新聞
  • 簡單的手機(jī)網(wǎng)站模板下載國內(nèi)企業(yè)網(wǎng)站模板
  • 網(wǎng)頁美工設(shè)計(jì)課程谷歌優(yōu)化師
  • 網(wǎng)站500m空間夠用嗎seo快速排名源碼
  • 手機(jī)設(shè)計(jì)端點(diǎn)seo博客
  • 網(wǎng)站設(shè)計(jì)班培訓(xùn)北京seo網(wǎng)絡(luò)優(yōu)化招聘網(wǎng)
  • 聯(lián)通公司網(wǎng)站誰做的網(wǎng)絡(luò)營銷的推廣方法有哪些
  • 網(wǎng)站建設(shè)費(fèi)計(jì)入什么科目代運(yùn)營公司排行榜
  • 設(shè)計(jì)網(wǎng)站私單價(jià)格草根seo博客
  • 網(wǎng)站社區(qū)的建設(shè)外鏈生成
  • 商城網(wǎng)站建設(shè)好么百度貼吧怎么做推廣
  • 和一起做網(wǎng)店類似的網(wǎng)站18歲以上站長統(tǒng)計(jì)
  • 論壇網(wǎng)站建設(shè)流程長沙網(wǎng)站推廣工具
  • 找個(gè)免費(fèi)的網(wǎng)站這么難嗎網(wǎng)絡(luò)營銷方式包括哪些
  • 如果給公司做網(wǎng)站搜索引擎優(yōu)化技術(shù)有哪些
  • 網(wǎng)站建設(shè)公司源碼網(wǎng)絡(luò)銷售的工作內(nèi)容
  • 帝國怎么做中英文網(wǎng)站百度seo建議
  • 佛山用戶網(wǎng)站建設(shè)廣州推廣引流公司
  • 福建省建設(shè)廳網(wǎng)站怎么推廣軟件