日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

6、常用类

發(fā)布時間:2024/3/13 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6、常用类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

6. 常用類

1、包裝類:每種基本數(shù)據(jù)類型都對應(yīng)著包裝類,用來將基本類型的數(shù)據(jù)封裝起來,完成對應(yīng)的方法

???? byte--Byte

???? short--Short

???? int--Integer

???? long--Long

???? float--Float

???? double--Double

???? char--Character

???? boolean--Boolean

2String不可變字符串存儲在方法區(qū)

???? 需要掌握很多的api方法

????? StringBuffer:可變字符串線程安全的,效率低

????? StringBuilder:可變字符串線程不安全效率高

3Date:util常用),sql

???? 1Date date? = new Date();顯示的日期格式不是常見的

???? 2、日期的計數(shù)從19701100:00:00,統(tǒng)計的毫秒數(shù)

4Calendar日歷類

???? 1、不能夠new對象必須通過getInstance方法獲取日歷對象

???? 2、掌握api

???? 3、常量屬性

5SimpleDateFormat格式化日期類可以指定顯示的格式

???? 1parse(String string):將字符串轉(zhuǎn)為日期類型

???? 2、format(Date date):將日期格式轉(zhuǎn)為String輸出

6、Math:數(shù)學(xué)的很多操作

7、Enum類:將所有可能的值列舉出來,使用的時候通過枚舉類的名稱.來直接訪問

1. Object

Object類(掌握)

?? (1)Object是類層次結(jié)構(gòu)的根類,所有的類都直接或者間接的繼承自O(shè)bject類。

?? (2)Object類的構(gòu)造方法有一個,并且是無參構(gòu)造

????? 這其實就是理解當(dāng)時我們說過,子類構(gòu)造方法默認(rèn)訪問父類的構(gòu)造是無參構(gòu)造

?? (3)要掌握的方法:

????? A:toString()

??????? 返回對象的字符串表示,默認(rèn)是由類的全路徑+'@'+哈希值的十六進(jìn)制表示。

??????? 這個表示其實是沒有意義的,一般子類都會重寫該方法。

??????? 如何重寫呢?過程我也講解過了,基本上就是要求信息簡單明了。

??????? 但是最終還是自動生成。

????? B:equals()

??????? 比較兩個對象是否相同。默認(rèn)情況下,比較的是地址值是否相同。

??????? 而比較地址值是沒有意義的,所以,一般子類也會重寫該方法。

??????? 重寫過程,我也詳細(xì)的講解和分析了。

??????? 但是最終還是自動生成。

?? (4)要了解的方法:

????? A:hashCode() 返回對象的哈希值。不是實際地址值,可以理解為地址值。

????? B:getClass() 返回對象的字節(jié)碼文件對象,反射中我們會詳細(xì)講解?

????? C:finalize() 用于垃圾回收,在不確定的時間

????? D:clone() 可以實現(xiàn)對象的克隆,包括成員變量的數(shù)據(jù)復(fù)制,但是它和兩個引用指向同一個對象是有區(qū)別的。

?? (5)兩個注意問題;

????? A:直接輸出一個對象名稱,其實默認(rèn)調(diào)用了該對象的toString()方法。

????? B:面試題

??????? ==和equals()的區(qū)別?

??????? A:==

??????? ?? 基本類型:比較的是值是否相同

?????????? 引用類型:比較的是地址值是否相同

??????? B:equals()

?????????? 只能比較引用類型。默認(rèn)情況下,比較的是地址值是否相同。但是,我們可以根據(jù)自己的需要重寫該方法。

/** Object:類 Object 是類層次結(jié)構(gòu)的根類。每個類都使用 Object 作為超類。* 每個類都直接或者間接的繼承自O(shè)bject類。** Object類的方法:* public int hashCode():返回該對象的哈希碼值。* 注意:哈希值是根據(jù)哈希算法計算出來的一個值,這個值和地址值有關(guān),但是不是實際地址值。* 你可以理解為地址值。** public final Class getClass():返回此 Object 的運行時類* Class類的方法:* public String getName():以 String 的形式返回此 Class 對象所表示的實體*/public class StudentTest {public static void main(String[] args) {Student s1 = new Student();System.out.println(s1.hashCode()); // 11299397Student s2 = new Student();System.out.println(s2.hashCode());// 24446859Student s3 = s1;System.out.println(s3.hashCode()); // 11299397System.out.println("-----------");Student s = new Student();Class c = s.getClass();String str = c.getName();System.out.println(str); // cn.itcast_01.Student//鏈?zhǔn)骄幊蘏tring str2 = s.getClass().getName();System.out.println(str2);}}

?

/** public boolean equals(Object obj):指示其他某個對象是否與此對象“相等”。* 這個方法,默認(rèn)情況下比較的是地址值。比較地址值一般來說意義不大,所以我們要重寫該方法。* 怎么重寫呢?* 一般都是用來比較對象的成員變量值是否相同。* 重寫的代碼優(yōu)化:提高效率,提高程序的健壯性。* 最終版:* 其實還是自動生成。** 看源碼:* public boolean equals(Object obj) {* //this - s1* //obj - s2* return (this == obj);* }** ==:* 基本類型:比較的就是值是否相同* 引用類型:比較的就是地址值是否相同* equals:* 引用類型:默認(rèn)情況下,比較的是地址值。* 不過,我們可以根據(jù)情況自己重寫該方法。一般重寫都是自動生成,比較對象的成員變量值是否相同*/public class StudentDemo {public static void main(String[] args) {Student s1 = new Student("林青霞", 27);Student s2 = new Student("林青霞", 27);System.out.println(s1 == s2); // falseStudent s3 = s1;System.out.println(s1 == s3);// trueSystem.out.println("---------------");System.out.println(s1.equals(s2)); // obj = s2; //falseSystem.out.println(s1.equals(s1)); // trueSystem.out.println(s1.equals(s3)); // trueStudent s4 = new Student("風(fēng)清揚",30);System.out.println(s1.equals(s4)); //falseDemo d = new Demo();System.out.println(s1.equals(d)); //ClassCastException}}

?

/** protected void finalize():當(dāng)垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調(diào)用此方法。用于垃圾回收,但是什么時候回收不確定。* protected Object clone():創(chuàng)建并返回此對象的一個副本。* A:重寫該方法** Cloneable:此類實現(xiàn)了 Cloneable 接口,以指示 Object.clone() 方法可以合法地對該類實例進(jìn)行按字段復(fù)制。* 這個接口是標(biāo)記接口,告訴我們實現(xiàn)該接口的類就可以實現(xiàn)對象的復(fù)制了。*/public class StudentDemo {public static void main(String[] args) throws CloneNotSupportedException {//創(chuàng)建學(xué)生對象Student s = new Student();s.setName("林青霞");s.setAge(27);//克隆學(xué)生對象Object obj = s.clone();Student s2 = (Student)obj;System.out.println("---------");System.out.println(s.getName()+"---"+s.getAge());System.out.println(s2.getName()+"---"+s2.getAge());//以前的做法Student s3 = s;System.out.println(s3.getName()+"---"+s3.getAge());System.out.println("---------");//其實是有區(qū)別的s3.setName("劉意");s3.setAge(30);System.out.println(s.getName()+"---"+s.getAge());System.out.println(s2.getName()+"---"+s2.getAge());System.out.println(s3.getName()+"---"+s3.getAge());}}

2. Scanner

Scanner的使用(了解)

?? (1)在JDK5以后出現(xiàn)的用于鍵盤錄入數(shù)據(jù)的類。

?? (2)構(gòu)造方法:

????? A:講解了System.in這個東西。

??????? 它其實是標(biāo)準(zhǔn)的輸入流,對應(yīng)于鍵盤錄入

????? B:構(gòu)造方法

??????? InputStream is = System.in;

???????

??????? Scanner(InputStream is)

????? C:常用的格式

??????? Scanner sc = new Scanner(System.in);

?? (3)基本方法格式:

????? A:hasNextXxx() 判斷是否是某種類型的

????? B:nextXxx() 返回某種類型的元素

?? (4)要掌握的兩個方法

????? A:public int nextInt()

????? B:public String nextLine()

?? (5)需要注意的小問題

????? A:同一個Scanner對象,先獲取數(shù)值,再獲取字符串會出現(xiàn)一個小問題。

????? B:解決方案:

??????? a:重新定義一個Scanner對象

??????? b:把所有的數(shù)據(jù)都用字符串獲取,然后再進(jìn)行相應(yīng)的轉(zhuǎn)換
?

/** Scanner:用于接收鍵盤錄入數(shù)據(jù)。** 前面的時候:* A:導(dǎo)包* B:創(chuàng)建對象* C:調(diào)用方法** System類下有一個靜態(tài)的字段:* public static final InputStream in; 標(biāo)準(zhǔn)的輸入流,對應(yīng)著鍵盤錄入。** InputStream is = System.in;** class Demo {* public static final int x = 10;* public static final Student s = new Student();* }* int y = Demo.x;* Student s = Demo.s;*** 構(gòu)造方法:* Scanner(InputStream source)*/public class ScannerDemo {public static void main(String[] args) {// 創(chuàng)建對象Scanner sc = new Scanner(System.in);int x = sc.nextInt();System.out.println("x:" + x);}} /** 基本格式:* public boolean hasNextXxx():判斷是否是某種類型的元素* public Xxx nextXxx():獲取該元素** 舉例:用int類型的方法舉例* public boolean hasNextInt()* public int nextInt()** 注意:* InputMismatchException:輸入的和你想要的不匹配*/public class ScannerDemo {public static void main(String[] args) {// 創(chuàng)建對象Scanner sc = new Scanner(System.in);// 獲取數(shù)據(jù)if (sc.hasNextInt()) {int x = sc.nextInt();System.out.println("x:" + x);} else {System.out.println("你輸入的數(shù)據(jù)有誤");}}}

?

/** 常用的兩個方法:* public int nextInt():獲取一個int類型的值* public String nextLine():獲取一個String類型的值** 出現(xiàn)問題了:* 先獲取一個數(shù)值,在獲取一個字符串,會出現(xiàn)問題。* 主要原因:就是那個換行符號的問題。* 如何解決呢?* A:先獲取一個數(shù)值后,在創(chuàng)建一個新的鍵盤錄入對象獲取字符串。* B:把所有的數(shù)據(jù)都先按照字符串獲取,然后要什么,你就對應(yīng)的轉(zhuǎn)換為什么。*/public class ScannerDemo {public static void main(String[] args) {// 創(chuàng)建對象Scanner sc = new Scanner(System.in);// 獲取兩個int類型的值// int a = sc.nextInt();// int b = sc.nextInt();// System.out.println("a:" + a + ",b:" + b);// System.out.println("-------------------");// 獲取兩個String類型的值// String s1 = sc.nextLine();// String s2 = sc.nextLine();// System.out.println("s1:" + s1 + ",s2:" + s2);// System.out.println("-------------------");// 先獲取一個字符串,在獲取一個int值// String s1 = sc.nextLine();// int b = sc.nextInt();// System.out.println("s1:" + s1 + ",b:" + b);// System.out.println("-------------------");// 先獲取一個int值,在獲取一個字符串// int a = sc.nextInt();// String s2 = sc.nextLine();// System.out.println("a:" + a + ",s2:" + s2);// System.out.println("-------------------");int a = sc.nextInt();Scanner sc2 = new Scanner(System.in);String s = sc2.nextLine();System.out.println("a:" + a + ",s:" + s);}}

?

3. String

String類的概述和使用(掌握)

?? (1)多個字符組成的一串?dāng)?shù)據(jù)。其實它可以和字符數(shù)組進(jìn)行相互轉(zhuǎn)換。

?? (2)構(gòu)造方法:

????? A:public String()

????? B:public String(byte[] bytes)

????? C:public String(byte[] bytes,int offset,int length)

????? D:public String(char[] value)

????? E:public String(char[] value,int offset,int count)

????? F:public String(String original)

????? 下面的這一個雖然不是構(gòu)造方法,但是結(jié)果也是一個字符串對象

????? G:String s = "hello";

?? (3)字符串的特點

????? A:字符串一旦被賦值,就不能改變。

??????? 注意:這里指的是字符串的內(nèi)容不能改變,而不是引用不能改變。

????? B:字面值作為字符串對象和通過構(gòu)造方法創(chuàng)建對象的不同

??????? String s = new String("hello");和String s = "hello"的區(qū)別?

?? (4)字符串的面試題(看程序?qū)懡Y(jié)果)

????? A:==和equals()

??????? String s1 = new String("hello");

??????? String s2 = new String("hello");

??????? System.out.println(s1 == s2);// false

??????? System.out.println(s1.equals(s2));// true,底層重寫了equals方法

?

??????? String s3 = new String("hello");

??????? String s4 = "hello";

??????? System.out.println(s3 == s4);// false

??????? System.out.println(s3.equals(s4));// true

?

??????? String s5 = "hello";

??????? String s6 = "hello";

??????? System.out.println(s5 == s6);// true

??????? System.out.println(s5.equals(s6));// true

????? B:字符串的拼接

??????? String s1 = "hello";

??????? String s2 = "world";

??????? String s3 = "helloworld";

??????? System.out.println(s3 == s1 + s2);// false

??????? System.out.println(s3.equals((s1 + s2)));// true

?

??????? System.out.println(s3 == "hello" + "world");// true

??????? System.out.println(s3.equals("hello" + "world"));// true

?? (5)字符串的功能(自己補齊方法中文意思)

????? A:判斷功能

??????? boolean equals(Object obj)

??????? boolean equalsIgnoreCase(String str)

??????? boolean contains(String str)

??????? boolean startsWith(String str)

??????? boolean endsWith(String str)

??????? boolean isEmpty()

????? B:獲取功能

??????? int length()

??????? char charAt(int index)

??????? int indexOf(int ch)

??????? int indexOf(String str)

??????? int indexOf(int ch,int fromIndex)

??????? int indexOf(String str,int fromIndex)

??????? String substring(int start)

??????? String substring(int start,int end)

????? C:轉(zhuǎn)換功能

??????? byte[] getBytes()

??????? char[] toCharArray()

??????? static String valueOf(char[] chs)

??????? static String valueOf(int i)

??????? String toLowerCase()

??????? String toUpperCase()

??????? String concat(String str)

????? D:其他功能

??????? a:替換功能

?????????? String replace(char old,char new)

?????????? String replace(String old,String new)

??????? b:去空格功能

?????????? String trim()

??????? c:按字典比較功能

?????????? int compareTo(String str)

?????????? int compareToIgnoreCase(String str)

?

/** 字符串:就是由多個字符組成的一串?dāng)?shù)據(jù)。也可以看成是一個字符數(shù)組。* 通過查看API,我們可以知道* A:字符串字面值"abc"也可以看成是一個字符串對象。* B:字符串是常量,一旦被賦值,就不能被改變。** 構(gòu)造方法:* public String():空構(gòu)造* public String(byte[] bytes):把字節(jié)數(shù)組轉(zhuǎn)成字符串* public String(byte[] bytes,int index,int length):把字節(jié)數(shù)組的一部分轉(zhuǎn)成字符串* public String(char[] value):把字符數(shù)組轉(zhuǎn)成字符串* public String(char[] value,int index,int count):把字符數(shù)組的一部分轉(zhuǎn)成字符串* public String(String original):把字符串常量值轉(zhuǎn)成字符串** 字符串的方法:* public int length():返回此字符串的長度。*/public class StringDemo {public static void main(String[] args) {// public String():空構(gòu)造String s1 = new String();System.out.println("s1:" + s1);System.out.println("s1.length():" + s1.length());System.out.println("--------------------------");// public String(byte[] bytes):把字節(jié)數(shù)組轉(zhuǎn)成字符串byte[] bys = { 97, 98, 99, 100, 101 };String s2 = new String(bys);System.out.println("s2:" + s2);System.out.println("s2.length():" + s2.length());System.out.println("--------------------------");// public String(byte[] bytes,int index,int length):把字節(jié)數(shù)組的一部分轉(zhuǎn)成字符串// 我想得到字符串"bcd"String s3 = new String(bys, 1, 3);System.out.println("s3:" + s3);System.out.println("s3.length():" + s3.length());System.out.println("--------------------------");// public String(char[] value):把字符數(shù)組轉(zhuǎn)成字符串char[] chs = { 'a', 'b', 'c', 'd', 'e', '愛', '林', '親' };String s4 = new String(chs);System.out.println("s4:" + s4);System.out.println("s4.length():" + s4.length());System.out.println("--------------------------");// public String(char[] value,int index,int count):把字符數(shù)組的一部分轉(zhuǎn)成字符串String s5 = new String(chs, 2, 4);System.out.println("s5:" + s5);System.out.println("s5.length():" + s5.length());System.out.println("--------------------------");//public String(String original):把字符串常量值轉(zhuǎn)成字符串String s6 = new String("abcde");System.out.println("s6:" + s6);System.out.println("s6.length():" + s6.length());System.out.println("--------------------------");//字符串字面值"abc"也可以看成是一個字符串對象。String s7 = "abcde";System.out.println("s7:"+s7);System.out.println("s7.length():"+s7.length());}} /** 字符串的特點:一旦被賦值,就不能改變。*/public class StringDemo {public static void main(String[] args) {String s = "hello";s += "world";System.out.println("s:" + s); // helloworld}}

?

/** String s = new String(“hello”)和String s = “hello”;的區(qū)別?* 有。前者會創(chuàng)建2個對象,后者創(chuàng)建1個對象。** ==:比較引用類型比較的是地址值是否相同* equals:比較引用類型默認(rèn)也是比較地址值是否相同,而String類重寫了equals()方法,比較的是內(nèi)容是否相同。*/public class StringDemo2 {public static void main(String[] args) {String s1 = new String("hello");String s2 = "hello";System.out.println(s1 == s2);// falseSystem.out.println(s1.equals(s2));// true}}

?

/** 看程序?qū)懡Y(jié)果*/public class StringDemo3 {public static void main(String[] args) {String s1 = new String("hello");String s2 = new String("hello");System.out.println(s1 == s2);// falseSystem.out.println(s1.equals(s2));// trueString s3 = new String("hello");String s4 = "hello";System.out.println(s3 == s4);// falseSystem.out.println(s3.equals(s4));// trueString s5 = "hello";String s6 = "hello";System.out.println(s5 == s6);// trueSystem.out.println(s5.equals(s6));// true}}

?

/** 看程序?qū)懡Y(jié)果* 字符串如果是變量相加,先開空間,在拼接。* 字符串如果是常量相加,是先加,然后在常量池找,如果有就直接返回,否則,就創(chuàng)建。*/public class StringDemo4 {public static void main(String[] args) {String s1 = "hello";String s2 = "world";String s3 = "helloworld";System.out.println(s3 == s1 + s2);// falseSystem.out.println(s3.equals((s1 + s2)));// trueSystem.out.println(s3 == "hello" + "world");// false 這個我們錯了,應(yīng)該是trueSystem.out.println(s3.equals("hello" + "world"));// true// 通過反編譯看源碼,我們知道這里已經(jīng)做好了處理。// System.out.println(s3 == "helloworld");// System.out.println(s3.equals("helloworld"));}}

?

?

/** String類的判斷功能:* boolean equals(Object obj):比較字符串的內(nèi)容是否相同,區(qū)分大小寫* boolean equalsIgnoreCase(String str):比較字符串的內(nèi)容是否相同,忽略大小寫* boolean contains(String str):判斷大字符串中是否包含小字符串* boolean startsWith(String str):判斷字符串是否以某個指定的字符串開頭* boolean endsWith(String str):判斷字符串是否以某個指定的字符串結(jié)尾* boolean isEmpty():判斷字符串是否為空。** 注意:* 字符串內(nèi)容為空和字符串對象為空。* String s = "";* String s = null;*/public class StringDemo {public static void main(String[] args) {// 創(chuàng)建字符串對象String s1 = "helloworld";String s2 = "helloworld";String s3 = "HelloWorld";// boolean equals(Object obj):比較字符串的內(nèi)容是否相同,區(qū)分大小寫System.out.println("equals:" + s1.equals(s2));System.out.println("equals:" + s1.equals(s3));System.out.println("-----------------------");// boolean equalsIgnoreCase(String str):比較字符串的內(nèi)容是否相同,忽略大小寫System.out.println("equals:" + s1.equalsIgnoreCase(s2));System.out.println("equals:" + s1.equalsIgnoreCase(s3));System.out.println("-----------------------");// boolean contains(String str):判斷大字符串中是否包含小字符串System.out.println("contains:" + s1.contains("hello"));System.out.println("contains:" + s1.contains("hw"));System.out.println("-----------------------");// boolean startsWith(String str):判斷字符串是否以某個指定的字符串開頭System.out.println("startsWith:" + s1.startsWith("h"));System.out.println("startsWith:" + s1.startsWith("hello"));System.out.println("startsWith:" + s1.startsWith("world"));System.out.println("-----------------------");// 練習(xí):boolean endsWith(String str):判斷字符串是否以某個指定的字符串結(jié)尾這個自己玩// boolean isEmpty():判斷字符串是否為空。System.out.println("isEmpty:" + s1.isEmpty());String s4 = "";String s5 = null;System.out.println("isEmpty:" + s4.isEmpty());// NullPointerException// s5對象都不存在,所以不能調(diào)用方法,空指針異常System.out.println("isEmpty:" + s5.isEmpty());}}

?

?

/** String類的獲取功能* int length():獲取字符串的長度。* char charAt(int index):獲取指定索引位置的字符* int indexOf(int ch):返回指定字符在此字符串中第一次出現(xiàn)處的索引。* 為什么這里是int類型,而不是char類型?* 原因是:'a'和97其實都可以代表'a'* int indexOf(String str):返回指定字符串在此字符串中第一次出現(xiàn)處的索引。* int indexOf(int ch,int fromIndex):返回指定字符在此字符串中從指定位置后第一次出現(xiàn)處的索引。* int indexOf(String str,int fromIndex):返回指定字符串在此字符串中從指定位置后第一次出現(xiàn)處的索引。* String substring(int start):從指定位置開始截取字符串,默認(rèn)到末尾。* String substring(int start,int end):從指定位置開始到指定位置結(jié)束截取字符串。*/public class StringDemo {public static void main(String[] args) {// 定義一個字符串對象String s = "helloworld";// int length():獲取字符串的長度。System.out.println("s.length:" + s.length());System.out.println("----------------------");// char charAt(int index):獲取指定索引位置的字符System.out.println("charAt:" + s.charAt(7));System.out.println("----------------------");// int indexOf(int ch):返回指定字符在此字符串中第一次出現(xiàn)處的索引。System.out.println("indexOf:" + s.indexOf('l'));System.out.println("----------------------");// int indexOf(String str):返回指定字符串在此字符串中第一次出現(xiàn)處的索引。System.out.println("indexOf:" + s.indexOf("owo"));System.out.println("----------------------");// int indexOf(int ch,int fromIndex):返回指定字符在此字符串中從指定位置后第一次出現(xiàn)處的索引。System.out.println("indexOf:" + s.indexOf('l', 4));System.out.println("indexOf:" + s.indexOf('k', 4)); // -1System.out.println("indexOf:" + s.indexOf('l', 40)); // -1System.out.println("----------------------");// 自己練習(xí):int indexOf(String str,int// fromIndex):返回指定字符串在此字符串中從指定位置后第一次出現(xiàn)處的索引。// String substring(int start):從指定位置開始截取字符串,默認(rèn)到末尾。包含start這個索引System.out.println("substring:" + s.substring(5));System.out.println("substring:" + s.substring(0));System.out.println("----------------------");// String substring(int start,int// end):從指定位置開始到指定位置結(jié)束截取字符串。包括start索引但是不包end索引System.out.println("substring:" + s.substring(3, 8));System.out.println("substring:" + s.substring(0, s.length()));}}

?

/** 需求:遍歷獲取字符串中的每一個字符** 分析:* A:如何能夠拿到每一個字符呢?* char charAt(int index)* B:我怎么知道字符到底有多少個呢?* int length()*/public class StringTest {public static void main(String[] args) {// 定義字符串String s = "helloworld";// 如果長度特別長,我不可能去數(shù),所以我們要用長度功能for (int x = 0; x < s.length(); x++) {// char ch = s.charAt(x);// System.out.println(ch);// 僅僅是輸出,我就直接輸出了System.out.println(s.charAt(x));}}}

?

/** 需求:統(tǒng)計一個字符串中大寫字母字符,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)。(不考慮其他字符)* 舉例:* "Hello123World"* 結(jié)果:* 大寫字符:2個* 小寫字符:8個* 數(shù)字字符:3個** 分析:* 前提:字符串要存在* A:定義三個統(tǒng)計變量* bigCount=0* smallCount=0* numberCount=0* B:遍歷字符串,得到每一個字符。* length()和charAt()結(jié)合* C:判斷該字符到底是屬于那種類型的* 大:bigCount++* 小:smallCount++* 數(shù)字:numberCount++** 這道題目的難點就是如何判斷某個字符是大的,還是小的,還是數(shù)字的。* ASCII碼表:* 0 48* A 65* a 97* 雖然,我們按照數(shù)字的這種比較是可以的,但是想多了,有比這還簡單的* char ch = s.charAt(x);** if(ch>='0' && ch<='9') numberCount++* if(ch>='a' && ch<='z') smallCount++* if(ch>='A' && ch<='Z') bigCount++* D:輸出結(jié)果。** 練習(xí):把給定字符串的方式,改進(jìn)為鍵盤錄入字符串的方式。*/public class StringTest2 {public static void main(String[] args) {//定義一個字符串String s = "Hello123World";//定義三個統(tǒng)計變量int bigCount = 0;int smallCount = 0;int numberCount = 0;//遍歷字符串,得到每一個字符。for(int x=0; x<s.length(); x++){char ch = s.charAt(x);//判斷該字符到底是屬于那種類型的if(ch>='a' && ch<='z'){smallCount++;}else if(ch>='A' && ch<='Z'){bigCount++;}else if(ch>='0' && ch<='9'){numberCount++;}}//輸出結(jié)果。System.out.println("大寫字母"+bigCount+"個");System.out.println("小寫字母"+smallCount+"個");System.out.println("數(shù)字"+numberCount+"個");}}

?

/** String的轉(zhuǎn)換功能:* byte[] getBytes():把字符串轉(zhuǎn)換為字節(jié)數(shù)組。* char[] toCharArray():把字符串轉(zhuǎn)換為字符數(shù)組。* static String valueOf(char[] chs):把字符數(shù)組轉(zhuǎn)成字符串。* static String valueOf(int i):把int類型的數(shù)據(jù)轉(zhuǎn)成字符串。* 注意:String類的valueOf方法可以把任意類型的數(shù)據(jù)轉(zhuǎn)成字符串。* String toLowerCase():把字符串轉(zhuǎn)成小寫。* String toUpperCase():把字符串轉(zhuǎn)成大寫。* String concat(String str):把字符串拼接。*/public class StringDemo {public static void main(String[] args) {// 定義一個字符串對象String s = "JavaSE";// byte[] getBytes():把字符串轉(zhuǎn)換為字節(jié)數(shù)組。byte[] bys = s.getBytes();for (int x = 0; x < bys.length; x++) {System.out.println(bys[x]);}System.out.println("----------------");// char[] toCharArray():把字符串轉(zhuǎn)換為字符數(shù)組。char[] chs = s.toCharArray();for (int x = 0; x < chs.length; x++) {System.out.println(chs[x]);}System.out.println("----------------");// static String valueOf(char[] chs):把字符數(shù)組轉(zhuǎn)成字符串。String ss = String.valueOf(chs);System.out.println(ss);System.out.println("----------------");// static String valueOf(int i):把int類型的數(shù)據(jù)轉(zhuǎn)成字符串。int i = 100;String sss = String.valueOf(i);System.out.println(sss);System.out.println("----------------");// String toLowerCase():把字符串轉(zhuǎn)成小寫。System.out.println("toLowerCase:" + s.toLowerCase());System.out.println("s:" + s);// System.out.println("----------------");// String toUpperCase():把字符串轉(zhuǎn)成大寫。System.out.println("toUpperCase:" + s.toUpperCase());System.out.println("----------------");// String concat(String str):把字符串拼接。String s1 = "hello";String s2 = "world";String s3 = s1 + s2;String s4 = s1.concat(s2);System.out.println("s3:"+s3);System.out.println("s4:"+s4);}}

?

/** 需求:把一個字符串的首字母轉(zhuǎn)成大寫,其余為小寫。(只考慮英文大小寫字母字符)* 舉例:* helloWORLD* 結(jié)果:* Helloworld** 分析:* A:先獲取第一個字符* B:獲取除了第一個字符以外的字符* C:把A轉(zhuǎn)成大寫* D:把B轉(zhuǎn)成小寫* E:C拼接D*/public class StringTest {public static void main(String[] args) {// 定義一個字符串String s = "helloWORLD";// 先獲取第一個字符String s1 = s.substring(0, 1);// 獲取除了第一個字符以外的字符String s2 = s.substring(1);// 把A轉(zhuǎn)成大寫String s3 = s1.toUpperCase();// 把B轉(zhuǎn)成小寫String s4 = s2.toLowerCase();// C拼接DString s5 = s3.concat(s4);System.out.println(s5);// 優(yōu)化后的代碼// 鏈?zhǔn)骄幊蘏tring result = s.substring(0, 1).toUpperCase().concat(s.substring(1).toLowerCase());System.out.println(result);}}

?

/** String類的其他功能:** 替換功能:* String replace(char old,char new)* String replace(String old,String new)** 去除字符串兩空格 * String trim()** 按字典順序比較兩個字符串 * int compareTo(String str)* int compareToIgnoreCase(String str)*/public class StringDemo {public static void main(String[] args) {// 替換功能String s1 = "helloworld";String s2 = s1.replace('l', 'k');String s3 = s1.replace("owo", "ak47");System.out.println("s1:" + s1);System.out.println("s2:" + s2);System.out.println("s3:" + s3);System.out.println("---------------");// 去除字符串兩空格String s4 = " hello world ";String s5 = s4.trim();System.out.println("s4:" + s4 + "---");System.out.println("s5:" + s5 + "---");// 按字典順序比較兩個字符串String s6 = "hello";String s7 = "hello";String s8 = "abc";String s9 = "xyz";System.out.println(s6.compareTo(s7));// 0System.out.println(s6.compareTo(s8));// 7System.out.println(s6.compareTo(s9));// -16}}

?

?

/** 需求:把數(shù)組中的數(shù)據(jù)按照指定個格式拼接成一個字符串* 舉例:* int[] arr = {1,2,3}; * 輸出結(jié)果:* "[1, 2, 3]"* 分析:* A:定義一個字符串對象,只不過內(nèi)容為空* B:先把字符串拼接一個"["* C:遍歷int數(shù)組,得到每一個元素* D:先判斷該元素是否為最后一個* 是:就直接拼接元素和"]"* 不是:就拼接元素和逗號以及空格* E:輸出拼接后的字符串** 把代碼用功能實現(xiàn)。*/public class StringTest2 {public static void main(String[] args) {// 前提是數(shù)組已經(jīng)存在int[] arr = { 1, 2, 3 };// 寫一個功能,實現(xiàn)結(jié)果String result = arrayToString(arr);System.out.println("最終結(jié)果是:" + result);}/** 兩個明確: 返回值類型:String 參數(shù)列表:int[] arr*/public static String arrayToString(int[] arr) {// 定義一個字符串String s = "";// 先把字符串拼接一個"["s += "[";// 遍歷int數(shù)組,得到每一個元素for (int x = 0; x < arr.length; x++) {// 先判斷該元素是否為最后一個if (x == arr.length - 1) {// 就直接拼接元素和"]"s += arr[x];s += "]";} else {// 就拼接元素和逗號以及空格s += arr[x];s += ", ";}}return s;}}

?

?

/** 字符串反轉(zhuǎn)* 舉例:鍵盤錄入”abc” * 輸出結(jié)果:”cba”** 分析:* A:鍵盤錄入一個字符串* B:定義一個新字符串* C:倒著遍歷字符串,得到每一個字符* a:length()和charAt()結(jié)合* b:把字符串轉(zhuǎn)成字符數(shù)組* D:用新字符串把每一個字符拼接起來* E:輸出新串*/public class StringTest3 {public static void main(String[] args) {// 鍵盤錄入一個字符串Scanner sc = new Scanner(System.in);System.out.println("請輸入一個字符串:");String line = sc.nextLine();/*// 定義一個新字符串String result = "";// 把字符串轉(zhuǎn)成字符數(shù)組char[] chs = line.toCharArray();// 倒著遍歷字符串,得到每一個字符for (int x = chs.length - 1; x >= 0; x--) {// 用新字符串把每一個字符拼接起來result += chs[x];}// 輸出新串System.out.println("反轉(zhuǎn)后的結(jié)果是:" + result);*/// 改進(jìn)為功能實現(xiàn)String s = myReverse(line);System.out.println("實現(xiàn)功能后的結(jié)果是:" + s);}/** 兩個明確: 返回值類型:String 參數(shù)列表:String*/public static String myReverse(String s) {// 定義一個新字符串String result = "";// 把字符串轉(zhuǎn)成字符數(shù)組char[] chs = s.toCharArray();// 倒著遍歷字符串,得到每一個字符for (int x = chs.length - 1; x >= 0; x--) {// 用新字符串把每一個字符拼接起來result += chs[x];}return result;}}

?

/** 統(tǒng)計大串中小串出現(xiàn)的次數(shù)* 舉例:* 在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"* 結(jié)果:* java出現(xiàn)了5次** 分析:* 前提:是已經(jīng)知道了大串和小串。** A:定義一個統(tǒng)計變量,初始化值是0* B:先在大串中查找一次小串第一次出現(xiàn)的位置* a:索引是-1,說明不存在了,就返回統(tǒng)計變量* b:索引不是-1,說明存在,統(tǒng)計變量++* C:把剛才的索引+小串的長度作為開始位置截取上一次的大串,返回一個新的字符串,并把該字符串的值重新賦值給大串* D:回到B*/public class StringTest4 {public static void main(String[] args) {// 定義大串String maxString = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";// 定義小串String minString = "java";// 寫功能實現(xiàn)int count = getCount(maxString, minString);System.out.println("Java在大串中出現(xiàn)了:" + count + "次");}/** 兩個明確: 返回值類型:int 參數(shù)列表:兩個字符串*/public static int getCount(String maxString, String minString) {// 定義一個統(tǒng)計變量,初始化值是0int count = 0;// 先在大串中查找一次小串第一次出現(xiàn)的位置int index = maxString.indexOf(minString);// 索引不是-1,說明存在,統(tǒng)計變量++while (index != -1) {count++;// 把剛才的索引+小串的長度作為開始位置截取上一次的大串,返回一個新的字符串,并把該字符串的值重新賦值給大串int startIndex = index + minString.length();maxString = maxString.substring(startIndex);// 繼續(xù)查index = maxString.indexOf(minString);}return count;}}

?

4. Character

Character(了解)

?? (1)Character構(gòu)造方法??

????? Character ch = new Character('a');

?? (2)要掌握的方法:(自己補齊)

????? A:判斷給定的字符是否是大寫

????? B:判斷給定的字符是否是小寫

????? C:判斷給定的字符是否是數(shù)字字符

????? D:把給定的字符轉(zhuǎn)成大寫

????? E:把給定的字符轉(zhuǎn)成小寫

?? (3)案例:

??????????????? 統(tǒng)計字符串中大寫,小寫及數(shù)字字符出現(xiàn)的次數(shù)
?

/** Character 類在對象中包裝一個基本類型 char 的值* 此外,該類提供了幾種方法,以確定字符的類別(小寫字母,數(shù)字,等等),并將字符從大寫轉(zhuǎn)換成小寫,反之亦然** 構(gòu)造方法:* Character(char value)*/public class CharacterDemo {public static void main(String[] args) {// 創(chuàng)建對象// Character ch = new Character((char) 97);Character ch = new Character('a');System.out.println("ch:" + ch);}}

?

/** public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符* public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符* public static boolean isDigit(char ch):判斷給定的字符是否是數(shù)字字符* public static char toUpperCase(char ch):把給定的字符轉(zhuǎn)換為大寫字符* public static char toLowerCase(char ch):把給定的字符轉(zhuǎn)換為小寫字符*/public class CharacterDemo {public static void main(String[] args) {// public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符System.out.println("isUpperCase:" + Character.isUpperCase('A'));System.out.println("isUpperCase:" + Character.isUpperCase('a'));System.out.println("isUpperCase:" + Character.isUpperCase('0'));System.out.println("-----------------------------------------");// public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符System.out.println("isLowerCase:" + Character.isLowerCase('A'));System.out.println("isLowerCase:" + Character.isLowerCase('a'));System.out.println("isLowerCase:" + Character.isLowerCase('0'));System.out.println("-----------------------------------------");// public static boolean isDigit(char ch):判斷給定的字符是否是數(shù)字字符System.out.println("isDigit:" + Character.isDigit('A'));System.out.println("isDigit:" + Character.isDigit('a'));System.out.println("isDigit:" + Character.isDigit('0'));System.out.println("-----------------------------------------");// public static char toUpperCase(char ch):把給定的字符轉(zhuǎn)換為大寫字符System.out.println("toUpperCase:" + Character.toUpperCase('A'));System.out.println("toUpperCase:" + Character.toUpperCase('a'));System.out.println("-----------------------------------------");// public static char toLowerCase(char ch):把給定的字符轉(zhuǎn)換為小寫字符System.out.println("toLowerCase:" + Character.toLowerCase('A'));System.out.println("toLowerCase:" + Character.toLowerCase('a'));}}

?

/** 統(tǒng)計一個字符串中大寫字母字符,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)。(不考慮其他字符)** 分析:* A:定義三個統(tǒng)計變量。* int bigCont=0;* int smalCount=0;* int numberCount=0;* B:鍵盤錄入一個字符串。* C:把字符串轉(zhuǎn)換為字符數(shù)組。* D:遍歷字符數(shù)組獲取到每一個字符* E:判斷該字符是* 大寫 bigCount++;* 小寫 smalCount++;* 數(shù)字 numberCount++;* F:輸出結(jié)果即可*/public class CharacterTest {public static void main(String[] args) {// 定義三個統(tǒng)計變量。int bigCount = 0;int smallCount = 0;int numberCount = 0;// 鍵盤錄入一個字符串。Scanner sc = new Scanner(System.in);System.out.println("請輸入一個字符串:");String line = sc.nextLine();// 把字符串轉(zhuǎn)換為字符數(shù)組。char[] chs = line.toCharArray();// 歷字符數(shù)組獲取到每一個字符for (int x = 0; x < chs.length; x++) {char ch = chs[x];// 判斷該字符if (Character.isUpperCase(ch)) {bigCount++;} else if (Character.isLowerCase(ch)) {smallCount++;} else if (Character.isDigit(ch)) {numberCount++;}}// 輸出結(jié)果即可System.out.println("大寫字母:" + bigCount + "個");System.out.println("小寫字母:" + smallCount + "個");System.out.println("數(shù)字字符:" + numberCount + "個");}}

?

5. Integer

Integer(掌握)

(1)為了讓基本類型的數(shù)據(jù)進(jìn)行更多的操作,Java就為每種基本類型提供了對應(yīng)的包裝類類型

????? byte ??? Byte

????? short?? Short

????? int??????? Integer

????? long??? ????? Long

????? float?? Float

????? double???? Double

????? char??? ????? Character

????? boolean??? Boolean

(2)Integer的構(gòu)造方法

????? A:Integer i = new Integer(100);

????? B:Integer i = new Integer("100");

????? 注意:這里的字符串必須是由數(shù)字字符組成

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

????? A:String -- int??? Integer.parseInt("100");

????? B:int -- String??? String.valueOf(100);

(4)其他的功能(了解)

????? 進(jìn)制轉(zhuǎn)換

(5)JDK5的新特性

????? 自動裝箱 基本類型--引用類型

????? 自動拆箱 引用類型--基本類型????

????? 把下面的這個代碼理解即可:

??????? Integer i = 100;

??????? i += 200;

(6)面試題

????? -128到127之間的數(shù)據(jù)緩沖池問題

/** 需求1:我要求大家把100這個數(shù)據(jù)的二進(jìn)制,八進(jìn)制,十六進(jìn)制計算出來* 需求2:我要求大家判斷一個數(shù)據(jù)是否是int范圍內(nèi)的。* 首先你的知道int的范圍是多大?** 為了對基本數(shù)據(jù)類型進(jìn)行更多的操作,更方便的操作,Java就針對每一種基本數(shù)據(jù)類型提供了對應(yīng)的類類型。包裝類類型。* byte Byte* short Short* int Integer* long Long* float Float* double Double* char Character* boolean Boolean** 用于基本數(shù)據(jù)類型與字符串之間的轉(zhuǎn)換。*/public class IntegerDemo {public static void main(String[] args) {// 不麻煩的就來了// public static String toBinaryString(int i)System.out.println(Integer.toBinaryString(100));// public static String toOctalString(int i)System.out.println(Integer.toOctalString(100));// public static String toHexString(int i)System.out.println(Integer.toHexString(100));// public static final int MAX_VALUESystem.out.println(Integer.MAX_VALUE);// public static final int MIN_VALUESystem.out.println(Integer.MIN_VALUE);}} /** Integer的構(gòu)造方法:* public Integer(int value)* public Integer(String s)* 注意:這個字符串必須是由數(shù)字字符組成*/public class IntegerDemo {public static void main(String[] args) {// 方式1int i = 100;Integer ii = new Integer(i);System.out.println("ii:" + ii);// 方式2String s = "100";// NumberFormatException// String s = "abc";Integer iii = new Integer(s);System.out.println("iii:" + iii);}}


?

/** int類型和String類型的相互轉(zhuǎn)換** int -- String* String.valueOf(number)** String -- int* Integer.parseInt(s)*/public class IntegerDemo {public static void main(String[] args) {// int -- Stringint number = 100;// 方式1String s1 = "" + number;System.out.println("s1:" + s1);// 方式2String s2 = String.valueOf(number);System.out.println("s2:" + s2);// 方式3// int -- Integer -- StringInteger i = new Integer(number);String s3 = i.toString();System.out.println("s3:" + s3);// 方式4// public static String toString(int i)String s4 = Integer.toString(number);System.out.println("s4:" + s4);System.out.println("-----------------");// String -- intString s = "100";// 方式1// String -- Integer -- intInteger ii = new Integer(s);// public int intValue()int x = ii.intValue();System.out.println("x:" + x);//方式2//public static int parseInt(String s)int y = Integer.parseInt(s);System.out.println("y:"+y);}}

?

?

/** 常用的基本進(jìn)制轉(zhuǎn)換* public static String toBinaryString(int i)* public static String toOctalString(int i)* public static String toHexString(int i)** 十進(jìn)制到其他進(jìn)制* public static String toString(int i,int radix)* 由這個我們也看到了進(jìn)制的范圍:2-36* 為什么呢?0,...9,a...z** 其他進(jìn)制到十進(jìn)制* public static int parseInt(String s,int radix)*/public class IntegerDemo {public static void main(String[] args) {// 十進(jìn)制到二進(jìn)制,八進(jìn)制,十六進(jìn)制System.out.println(Integer.toBinaryString(100));System.out.println(Integer.toOctalString(100));System.out.println(Integer.toHexString(100));System.out.println("-------------------------");// 十進(jìn)制到其他進(jìn)制System.out.println(Integer.toString(100, 10));System.out.println(Integer.toString(100, 2));System.out.println(Integer.toString(100, 8));System.out.println(Integer.toString(100, 16));System.out.println(Integer.toString(100, 5));System.out.println(Integer.toString(100, 7));System.out.println(Integer.toString(100, -7));System.out.println(Integer.toString(100, 70));System.out.println(Integer.toString(100, 1));System.out.println(Integer.toString(100, 17));System.out.println(Integer.toString(100, 32));System.out.println(Integer.toString(100, 37));System.out.println(Integer.toString(100, 36));System.out.println("-------------------------");//其他進(jìn)制到十進(jìn)制System.out.println(Integer.parseInt("100", 10));System.out.println(Integer.parseInt("100", 2));System.out.println(Integer.parseInt("100", 8));System.out.println(Integer.parseInt("100", 16));System.out.println(Integer.parseInt("100", 23));//NumberFormatException//System.out.println(Integer.parseInt("123", 2));}}

?

/** JDK5的新特性* 自動裝箱:把基本類型轉(zhuǎn)換為包裝類類型* 自動拆箱:把包裝類類型轉(zhuǎn)換為基本類型** 注意一個小問題:* 在使用時,Integer x = null;代碼就會出現(xiàn)NullPointerException。* 建議先判斷是否為null,然后再使用。*/public class IntegerDemo {public static void main(String[] args) {// 定義了一個int類型的包裝類類型變量i// Integer i = new Integer(100);Integer ii = 100;ii += 200;System.out.println("ii:" + ii);// 通過反編譯后的代碼// Integer ii = Integer.valueOf(100); //自動裝箱// ii = Integer.valueOf(ii.intValue() + 200); //自動拆箱,再自動裝箱// System.out.println((new StringBuilder("ii:")).append(ii).toString());Integer iii = null;// NullPointerExceptionif (iii != null) {iii += 1000;System.out.println(iii);}}}

?

/** 看程序?qū)懡Y(jié)果** 注意:Integer的數(shù)據(jù)直接賦值,如果在-128到127之間,會直接從緩沖池里獲取數(shù)據(jù)*/public class IntegerDemo {public static void main(String[] args) {Integer i1 = new Integer(127);Integer i2 = new Integer(127);System.out.println(i1 == i2);System.out.println(i1.equals(i2));System.out.println("-----------");Integer i3 = new Integer(128);Integer i4 = new Integer(128);System.out.println(i3 == i4);System.out.println(i3.equals(i4));System.out.println("-----------");Integer i5 = 128;Integer i6 = 128;System.out.println(i5 == i6);System.out.println(i5.equals(i6));System.out.println("-----------");Integer i7 = 127;Integer i8 = 127;System.out.println(i7 == i8);System.out.println(i7.equals(i8));// 通過查看源碼,我們就知道了,針對-128到127之間的數(shù)據(jù),做了一個數(shù)據(jù)緩沖池,如果數(shù)據(jù)是該范圍內(nèi)的,每次并不創(chuàng)建新的空間// Integer ii = Integer.valueOf(127);}}------------------------------------falsetrue-----------falsetrue-----------falsetrue-----------truetrue

?

6. StringBuffer

StringBuffer(掌握)

?? (1)用字符串做拼接,比較耗時并且也耗內(nèi)存,而這種拼接操作又是比較常見的,為了解決這個問題,Java就提供了

?? ?? 一個字符串緩沖區(qū)類。StringBuffer供我們使用。

?? (2)StringBuffer的構(gòu)造方法

????? A:StringBuffer()

????? B:StringBuffer(int size)

????? C:StringBuffer(String str)

?? (3)StringBuffer的常見功能(自己補齊方法的聲明和方法的解釋)

????? A:添加功能

????? B:刪除功能

????? C:替換功能

????? D:反轉(zhuǎn)功能

????? E:截取功能(注意這個返回值)

?? (4)StringBuffer的練習(xí)(做一遍)

????? A:String和StringBuffer相互轉(zhuǎn)換

??????? String -- StringBuffer

?????????? 構(gòu)造方法

??????? StringBuffer -- String

?????????? toString()方法

????? B:字符串的拼接

????? C:把字符串反轉(zhuǎn)

????? D:判斷一個字符串是否對稱

?? (5)面試題

????? 小細(xì)節(jié):

??????? StringBuffer:同步的,數(shù)據(jù)安全,效率低。

??????? StringBuilder:不同步的,數(shù)據(jù)不安全,效率高。

????? A:String,StringBuffer,StringBuilder的區(qū)別

????? B:StringBuffer和數(shù)組的區(qū)別?

?? (6)注意的問題:

????? String作為形式參數(shù),StringBuffer作為形式參數(shù)。

?

?

/** 線程安全(多線程講解)* 安全 -- 同步 -- 數(shù)據(jù)是安全的* 不安全 -- 不同步 -- 效率高一些* 安全和效率問題是永遠(yuǎn)困擾我們的問題。* 安全:醫(yī)院的網(wǎng)站,銀行網(wǎng)站* 效率:新聞網(wǎng)站,論壇之類的** StringBuffer:* 線程安全的可變字符串。** StringBuffer和String的區(qū)別?* 前者長度和內(nèi)容可變,后者不可變。* 如果使用前者做字符串的拼接,不會浪費太多的資源。** StringBuffer的構(gòu)造方法:* public StringBuffer():無參構(gòu)造方法* public StringBuffer(int capacity):指定容量的字符串緩沖區(qū)對象* public StringBuffer(String str):指定字符串內(nèi)容的字符串緩沖區(qū)對象** StringBuffer的方法:* public int capacity():返回當(dāng)前容量。 理論值* public int length():返回長度(字符數(shù))。 實際值*/public class StringBufferDemo {public static void main(String[] args) {// public StringBuffer():無參構(gòu)造方法StringBuffer sb = new StringBuffer();System.out.println("sb:" + sb);System.out.println("sb.capacity():" + sb.capacity());System.out.println("sb.length():" + sb.length());System.out.println("--------------------------");// public StringBuffer(int capacity):指定容量的字符串緩沖區(qū)對象StringBuffer sb2 = new StringBuffer(50);System.out.println("sb2:" + sb2);System.out.println("sb2.capacity():" + sb2.capacity());System.out.println("sb2.length():" + sb2.length());System.out.println("--------------------------");// public StringBuffer(String str):指定字符串內(nèi)容的字符串緩沖區(qū)對象StringBuffer sb3 = new StringBuffer("hello");System.out.println("sb3:" + sb3);System.out.println("sb3.capacity():" + sb3.capacity());System.out.println("sb3.length():" + sb3.length());}}

?

/** StringBuffer的添加功能:* public StringBuffer append(String str):可以把任意類型數(shù)據(jù)添加到字符串緩沖區(qū)里面,并返回字符串緩沖區(qū)本身** public StringBuffer insert(int offset,String str):在指定位置把任意類型的數(shù)據(jù)插入到字符串緩沖區(qū)里面,并返回字符串緩沖區(qū)本身*/public class StringBufferDemo {public static void main(String[] args) {// 創(chuàng)建字符串緩沖區(qū)對象StringBuffer sb = new StringBuffer();// public StringBuffer append(String str)// StringBuffer sb2 = sb.append("hello");// System.out.println("sb:" + sb);// System.out.println("sb2:" + sb2);// System.out.println(sb == sb2); // true// 一步一步的添加數(shù)據(jù)// sb.append("hello");// sb.append(true);// sb.append(12);// sb.append(34.56);// 鏈?zhǔn)骄幊蘳b.append("hello").append(true).append(12).append(34.56);System.out.println("sb:" + sb);// public StringBuffer insert(int offset,String// str):在指定位置把任意類型的數(shù)據(jù)插入到字符串緩沖區(qū)里面,并返回字符串緩沖區(qū)本身sb.insert(5, "world");System.out.println("sb:" + sb);}}

?

/** StringBuffer的刪除功能* public StringBuffer deleteCharAt(int index):刪除指定位置的字符,并返回本身* public StringBuffer delete(int start,int end):刪除從指定位置開始指定位置結(jié)束的內(nèi)容,并返回本身*/public class StringBufferDemo {public static void main(String[] args) {// 創(chuàng)建對象StringBuffer sb = new StringBuffer();// 添加功能sb.append("hello").append("world").append("java");System.out.println("sb:" + sb);// public StringBuffer deleteCharAt(int index):刪除指定位置的字符,并返回本身// 需求:我要刪除e這個字符,腫么辦?// sb.deleteCharAt(1);// 需求:我要刪除第一個l這個字符,腫么辦?// sb.deleteCharAt(1);// public StringBuffer delete(int start,int// end):刪除從指定位置開始指定位置結(jié)束的內(nèi)容,并返回本身// 需求:我要刪除world這個字符串,腫么辦?// sb.delete(5, 10);// 需求:我要刪除所有的數(shù)據(jù)sb.delete(0, sb.length());System.out.println("sb:" + sb);}}

?

/** StringBuffer的替換功能:* public StringBuffer replace(int start,int end,String str):從start開始到end用str替換*/public class StringBufferDemo {public static void main(String[] args) {// 創(chuàng)建字符串緩沖區(qū)對象StringBuffer sb = new StringBuffer();// 添加數(shù)據(jù)sb.append("hello");sb.append("world");sb.append("java");System.out.println("sb:" + sb);// public StringBuffer replace(int start,int end,String// str):從start開始到end用str替換// 需求:我要把world這個數(shù)據(jù)替換為"節(jié)日快樂"sb.replace(5, 10, "節(jié)日快樂");System.out.println("sb:" + sb);}}

?

/** StringBuffer的反轉(zhuǎn)功能:* public StringBuffer reverse()*/public class StringBufferDemo {public static void main(String[] args) {// 創(chuàng)建字符串緩沖區(qū)對象StringBuffer sb = new StringBuffer();// 添加數(shù)據(jù)sb.append("霞青林愛我");System.out.println("sb:" + sb);// public StringBuffer reverse()sb.reverse();System.out.println("sb:" + sb);}}

?

/** StringBuffer的截取功能:注意返回值類型不再是StringBuffer本身了* public String substring(int start)* public String substring(int start,int end)*/public class StringBufferDemo {public static void main(String[] args) {// 創(chuàng)建字符串緩沖區(qū)對象StringBuffer sb = new StringBuffer();// 添加元素sb.append("hello").append("world").append("java");System.out.println("sb:" + sb);// 截取功能// public String substring(int start)String s = sb.substring(5);System.out.println("s:" + s);System.out.println("sb:" + sb);// public String substring(int start,int end)String ss = sb.substring(5, 10);System.out.println("ss:" + ss);System.out.println("sb:" + sb);}}

?


?

/** 為什么我們要講解類之間的轉(zhuǎn)換:* A -- B的轉(zhuǎn)換* 我們把A轉(zhuǎn)換為B,其實是為了使用B的功能。* B -- A的轉(zhuǎn)換* 我們可能要的結(jié)果是A類型,所以還得轉(zhuǎn)回來。** String和StringBuffer的相互轉(zhuǎn)換?*/public class StringBufferTest {public static void main(String[] args) {// String -- StringBufferString s = "hello";// 注意:不能把字符串的值直接賦值給StringBuffer// StringBuffer sb = "hello";// StringBuffer sb = s;// 方式1:通過構(gòu)造方法StringBuffer sb = new StringBuffer(s);// 方式2:通過append()方法StringBuffer sb2 = new StringBuffer();sb2.append(s);System.out.println("sb:" + sb);System.out.println("sb2:" + sb2);System.out.println("---------------");// StringBuffer -- StringStringBuffer buffer = new StringBuffer("java");// String(StringBuffer buffer)// 方式1:通過構(gòu)造方法String str = new String(buffer);// 方式2:通過toString()方法String str2 = buffer.toString();System.out.println("str:" + str);System.out.println("str2:" + str2);}}

?

/** 把數(shù)組拼接成一個字符串*/public class StringBufferTest2 {public static void main(String[] args) {// 定義一個數(shù)組int[] arr = { 44, 33, 55, 11, 22 };// 定義功能// 方式1:用String做拼接的方式String s1 = arrayToString(arr);System.out.println("s1:" + s1);// 方式2:用StringBuffer做拼接的方式String s2 = arrayToString2(arr);System.out.println("s2:" + s2);}// 用StringBuffer做拼接的方式public static String arrayToString2(int[] arr) {StringBuffer sb = new StringBuffer();sb.append("[");for (int x = 0; x < arr.length; x++) {if (x == arr.length - 1) {sb.append(arr[x]);} else {sb.append(arr[x]).append(", ");}}sb.append("]");return sb.toString();}// 用String做拼接的方式public static String arrayToString(int[] arr) {String s = "";s += "[";for (int x = 0; x < arr.length; x++) {if (x == arr.length - 1) {s += arr[x];} else {s += arr[x];s += ", ";}}s += "]";return s;}}

?

/** 把字符串反轉(zhuǎn)*/public class StringBufferTest3 {public static void main(String[] args) {// 鍵盤錄入數(shù)據(jù)Scanner sc = new Scanner(System.in);System.out.println("請輸入數(shù)據(jù):");String s = sc.nextLine();// 方式1:用String做拼接String s1 = myReverse(s);System.out.println("s1:" + s1);// 方式2:用StringBuffer的reverse()功能String s2 = myReverse2(s);System.out.println("s2:" + s2);}// 用StringBuffer的reverse()功能public static String myReverse2(String s) {// StringBuffer sb = new StringBuffer();// sb.append(s);// StringBuffer sb = new StringBuffer(s);// sb.reverse();// return sb.toString();// 簡易版return new StringBuffer(s).reverse().toString();}// 用String做拼接public static String myReverse(String s) {String result = "";char[] chs = s.toCharArray();for (int x = chs.length - 1; x >= 0; x--) {// char ch = chs[x];// result += ch;result += chs[x];}return result;}}

?

/** 判斷一個字符串是否是對稱字符串* 例如"abc"不是對稱字符串,"aba"、"abba"、"aaa"、"mnanm"是對稱字符串** 分析:* 判斷一個字符串是否是對稱的字符串,我只需要把* 第一個和最后一個比較* 第二個和倒數(shù)第二個比較* ...* 比較的次數(shù)是長度除以2。*/public class StringBufferTest4 {public static void main(String[] args) {// 創(chuàng)建鍵盤錄入對象Scanner sc = new Scanner(System.in);System.out.println("請輸入一個字符串:");String s = sc.nextLine();// 一個一個的比較boolean b = isSame(s);System.out.println("b:" + b);//用字符串緩沖區(qū)的反轉(zhuǎn)功能boolean b2 = isSame2(s);System.out.println("b2:"+b2);}public static boolean isSame2(String s) {return new StringBuffer(s).reverse().toString().equals(s);}// public static boolean isSame(String s) {// // 把字符串轉(zhuǎn)成字符數(shù)組// char[] chs = s.toCharArray();//// for (int start = 0, end = chs.length - 1; start <= end; start++, end--) {// if (chs[start] != chs[end]) {// return false;// }// }//// return true;// }public static boolean isSame(String s) {boolean flag = true;// 把字符串轉(zhuǎn)成字符數(shù)組char[] chs = s.toCharArray();for (int start = 0, end = chs.length - 1; start <= end; start++, end--) {if (chs[start] != chs[end]) {flag = false;break;}}return flag;}}

?

/*** 1:String,StringBuffer,StringBuilder的區(qū)別?* A:String是內(nèi)容不可變的,而StringBuffer,StringBuilder都是內(nèi)容可變的。* B:StringBuffer是同步的,數(shù)據(jù)安全,效率低;StringBuilder是不同步的,數(shù)據(jù)不安全,效率高** 2:StringBuffer和數(shù)組的區(qū)別?* 二者都可以看出是一個容器,裝其他的數(shù)據(jù)。* 但是呢,StringBuffer的數(shù)據(jù)最終是一個字符串?dāng)?shù)據(jù)。* 而數(shù)組可以放置多種數(shù)據(jù),但必須是同一種數(shù)據(jù)類型的。** 3:形式參數(shù)問題* String作為參數(shù)傳遞* StringBuffer作為參數(shù)傳遞** 形式參數(shù):* 基本類型:形式參數(shù)的改變不影響實際參數(shù)* 引用類型:形式參數(shù)的改變直接影響實際參數(shù)** 注意:* String作為參數(shù)傳遞,效果和基本類型作為參數(shù)傳遞是一樣的。*/public class StringBufferDemo {public static void main(String[] args) {String s1 = "hello";String s2 = "world";System.out.println(s1 + "---" + s2);// hello---worldchange(s1, s2);System.out.println(s1 + "---" + s2);// hello---worldStringBuffer sb1 = new StringBuffer("hello");StringBuffer sb2 = new StringBuffer("world");System.out.println(sb1 + "---" + sb2);// hello---worldchange(sb1, sb2);System.out.println(sb1 + "---" + sb2);// hello---worldworld}public static void change(StringBuffer sb1, StringBuffer sb2) {sb1 = sb2;sb2.append(sb1);}public static void change(String s1, String s2) {s1 = s2;s2 = s1 + s2;}}

?

7. BigDecimal

BigDecimal(理解)

?? (1)浮點數(shù)據(jù)做運算,會丟失精度。所以,針對浮點數(shù)據(jù)的操作建議采用BigDecimal。(金融相關(guān)的項目)

?? (2)構(gòu)造方法

????? A:BigDecimal(String s)

?? (3)成員方法:

????? A:加

????? B:減

????? C:乘

????? D:除

????? E:自己保留小數(shù)幾位

/** 看程序?qū)懡Y(jié)果:結(jié)果和我們想的有一點點不一樣,這是因為float類型的數(shù)據(jù)存儲和整數(shù)不一樣導(dǎo)致的。它們大部分的時候,都是帶有有效數(shù)字位。** 由于在運算的時候,float類型和double很容易丟失精度,演示案例。所以,為了能精確的表示、計算浮點數(shù),Java提供了BigDecimal** BigDecimal類:不可變的、任意精度的有符號十進(jìn)制數(shù),可以解決數(shù)據(jù)丟失問題。*/public class BigDecimalDemo {public static void main(String[] args) {System.out.println(0.09 + 0.01);System.out.println(1.0 - 0.32);System.out.println(1.015 * 100);System.out.println(1.301 / 100);System.out.println(1.0 - 0.12);}} import java.math.BigDecimal;/** 構(gòu)造方法:* public BigDecimal(String val)** public BigDecimal add(BigDecimal augend)* public BigDecimal subtract(BigDecimal subtrahend)* public BigDecimal multiply(BigDecimal multiplicand)* public BigDecimal divide(BigDecimal divisor)* public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,幾位小數(shù),如何舍取*/public class BigDecimalDemo {public static void main(String[] args) {// System.out.println(0.09 + 0.01);// System.out.println(1.0 - 0.32);// System.out.println(1.015 * 100);// System.out.println(1.301 / 100);BigDecimal bd1 = new BigDecimal("0.09");BigDecimal bd2 = new BigDecimal("0.01");System.out.println("add:" + bd1.add(bd2));System.out.println("-------------------");BigDecimal bd3 = new BigDecimal("1.0");BigDecimal bd4 = new BigDecimal("0.32");System.out.println("subtract:" + bd3.subtract(bd4));System.out.println("-------------------");BigDecimal bd5 = new BigDecimal("1.015");BigDecimal bd6 = new BigDecimal("100");System.out.println("multiply:" + bd5.multiply(bd6));System.out.println("-------------------");BigDecimal bd7 = new BigDecimal("1.301");BigDecimal bd8 = new BigDecimal("100");System.out.println("divide:" + bd7.divide(bd8));System.out.println("divide:"+ bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));System.out.println("divide:"+ bd7.divide(bd8, 8, BigDecimal.ROUND_HALF_UP));}}

?

8. BigInteger

BigInteger(理解)

?? (1)針對大整數(shù)的運算

?? (2)構(gòu)造方法

????? A:BigInteger(String s)

?? (3)成員方法(自己補齊)

????? A:加

????? B:減

????? C:乘

????? D:除

????? E:商和余數(shù)

import java.math.BigInteger;/** BigInteger:可以讓超過Integer范圍內(nèi)的數(shù)據(jù)進(jìn)行運算** 構(gòu)造方法:* BigInteger(String val)*/public class BigIntegerDemo {public static void main(String[] args) {// 這幾個測試,是為了簡單超過int范圍內(nèi),Integer就不能再表示,所以就更談不上計算了。// Integer i = new Integer(100);// System.out.println(i);// // System.out.println(Integer.MAX_VALUE);// Integer ii = new Integer("2147483647");// System.out.println(ii);// // NumberFormatException// Integer iii = new Integer("2147483648");// System.out.println(iii);// 通過大整數(shù)來創(chuàng)建對象BigInteger bi = new BigInteger("2147483648");System.out.println("bi:" + bi);}}


?

import java.math.BigInteger;/** public BigInteger add(BigInteger val):加* public BigInteger subtract(BigInteger val):減* public BigInteger multiply(BigInteger val):乘* public BigInteger divide(BigInteger val):除* public BigInteger[] divideAndRemainder(BigInteger val):返回商和余數(shù)的數(shù)組*/public class BigIntegerDemo {public static void main(String[] args) {BigInteger bi1 = new BigInteger("100");BigInteger bi2 = new BigInteger("50");// public BigInteger add(BigInteger val):加System.out.println("add:" + bi1.add(bi2));// public BigInteger subtract(BigInteger val):加System.out.println("subtract:" + bi1.subtract(bi2));// public BigInteger multiply(BigInteger val):加System.out.println("multiply:" + bi1.multiply(bi2));// public BigInteger divide(BigInteger val):加System.out.println("divide:" + bi1.divide(bi2));// public BigInteger[] divideAndRemainder(BigInteger val):返回商和余數(shù)的數(shù)組BigInteger[] bis = bi1.divideAndRemainder(bi2);System.out.println("商:" + bis[0]);System.out.println("余數(shù):" + bis[1]);}}

?

9. Calendar

/** Calendar:它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。** public int get(int field):返回給定日歷字段的值。日歷類中的每個日歷字段都是靜態(tài)的成員變量,并且是int類型。*/public class CalendarDemo {public static void main(String[] args) {// 其日歷字段已由當(dāng)前日期和時間初始化:Calendar rightNow = Calendar.getInstance(); // 子類對象// 獲取年int year = rightNow.get(Calendar.YEAR);// 獲取月int month = rightNow.get(Calendar.MONTH);// 獲取日int date = rightNow.get(Calendar.DATE);System.out.println(year + "年" + (month + 1) + "月" + date + "日");}} /** abstract class Person { public static Person getPerson() { return new* Student(); } }** class Student extends Person {** }*/ /** public void add(int field,int amount):根據(jù)給定的日歷字段和對應(yīng)的時間,來對當(dāng)前的日歷進(jìn)行操作。* public final void set(int year,int month,int date):設(shè)置當(dāng)前日歷的年月日*/public class CalendarDemo {public static void main(String[] args) {// 獲取當(dāng)前的日歷時間Calendar c = Calendar.getInstance();// 獲取年int year = c.get(Calendar.YEAR);// 獲取月int month = c.get(Calendar.MONTH);// 獲取日int date = c.get(Calendar.DATE);System.out.println(year + "年" + (month + 1) + "月" + date + "日");// // 三年前的今天// c.add(Calendar.YEAR, -3);// // 獲取年// year = c.get(Calendar.YEAR);// // 獲取月// month = c.get(Calendar.MONTH);// // 獲取日// date = c.get(Calendar.DATE);// System.out.println(year + "年" + (month + 1) + "月" + date + "日");// 5年后的10天前c.add(Calendar.YEAR, 5);c.add(Calendar.DATE, -10);// 獲取年year = c.get(Calendar.YEAR);// 獲取月month = c.get(Calendar.MONTH);// 獲取日date = c.get(Calendar.DATE);System.out.println(year + "年" + (month + 1) + "月" + date + "日");System.out.println("--------------");c.set(2011, 11, 11);// 獲取年year = c.get(Calendar.YEAR);// 獲取月month = c.get(Calendar.MONTH);// 獲取日date = c.get(Calendar.DATE);System.out.println(year + "年" + (month + 1) + "月" + date + "日");}} /** 獲取任意一年的二月有多少天** 分析:* A:鍵盤錄入任意的年份* B:設(shè)置日歷對象的年月日* 年就是A輸入的數(shù)據(jù)* 月是2* 日是1* C:把時間往前推一天,就是2月的最后一天* D:獲取這一天輸出即可*/public class CalendarTest {public static void main(String[] args) {// 鍵盤錄入任意的年份Scanner sc = new Scanner(System.in);System.out.println("請輸入年份:");int year = sc.nextInt();// 設(shè)置日歷對象的年月日Calendar c = Calendar.getInstance();c.set(year, 2, 1); // 其實是這一年的3月1日// 把時間往前推一天,就是2月的最后一天c.add(Calendar.DATE, -1);// 獲取這一天輸出即可System.out.println(c.get(Calendar.DATE));}}

?

10. Date_DateFormat

Date/DateFormat(掌握)

?? (1)Date是日期類,可以精確到毫秒。

????? A:構(gòu)造方法

??????? Date()

??????? Date(long time)

????? B:成員方法

??????? getTime()

??????? setTime(long time)

????? C:日期和毫秒值的相互轉(zhuǎn)換

????? 案例:你來到這個世界多少天了?

?? (2)DateFormat針對日期進(jìn)行格式化和針對字符串進(jìn)行解析的類,但是是抽象類,所以使用其子類SimpleDateFormat

????? A:SimpleDateFormat(String pattern) 給定模式

??????? yyyy-MM-dd HH:mm:ss

????? B:日期和字符串的轉(zhuǎn)換

??????? a:Date -- String

??????? ?? format()

??????? b:String -- Date

?????????? parse()

????? C:案例:

??????????????????????? 制作了一個針對日期操作的工具類。

/** Date:表示特定的瞬間,精確到毫秒。** 構(gòu)造方法:* Date():根據(jù)當(dāng)前的默認(rèn)毫秒值創(chuàng)建日期對象* Date(long date):根據(jù)給定的毫秒值創(chuàng)建日期對象*/public class DateDemo {public static void main(String[] args) {// 創(chuàng)建對象Date d = new Date();System.out.println("d:" + d);// 創(chuàng)建對象// long time = System.currentTimeMillis();long time = 1000 * 60 * 60; // 1小時Date d2 = new Date(time);System.out.println("d2:" + d2);}} /** public long getTime():獲取時間,以毫秒為單位* public void setTime(long time):設(shè)置時間** 從Date得到一個毫秒值* getTime()* 把一個毫秒值轉(zhuǎn)換為Date* 構(gòu)造方法* setTime(long time)*/public class DateDemo {public static void main(String[] args) {// 創(chuàng)建對象Date d = new Date();// 獲取時間long time = d.getTime();System.out.println(time);// System.out.println(System.currentTimeMillis());System.out.println("d:" + d);// 設(shè)置時間d.setTime(1000);System.out.println("d:" + d);}} /** Date -- String(格式化)* public final String format(Date date)** String -- Date(解析)* public Date parse(String source)** DateForamt:可以進(jìn)行日期和字符串的格式化和解析,但是由于是抽象類,所以使用具體子類SimpleDateFormat。** SimpleDateFormat的構(gòu)造方法:* SimpleDateFormat():默認(rèn)模式* SimpleDateFormat(String pattern):給定的模式* 這個模式字符串該如何寫呢?* 通過查看API,我們就找到了對應(yīng)的模式* 年 y* 月 M * 日 d* 時 H* 分 m* 秒 s** 2014年12月12日 12:12:12*/public class DateFormatDemo {public static void main(String[] args) throws ParseException {// Date -- String// 創(chuàng)建日期對象Date d = new Date();// 創(chuàng)建格式化對象// SimpleDateFormat sdf = new SimpleDateFormat();// 給定模式SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");// public final String format(Date date)String s = sdf.format(d);System.out.println(s);//String -- DateString str = "2008-08-08 12:12:12";//在把一個字符串解析為日期的時候,請注意格式必須和給定的字符串格式匹配SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date dd = sdf2.parse(str);System.out.println(dd);}} /*** 這是日期和字符串相互轉(zhuǎn)換的工具類*/public class DateUtil {private DateUtil() {}/*** 這個方法的作用就是把日期轉(zhuǎn)成一個字符串** @param d* 被轉(zhuǎn)換的日期對象* @param format* 傳遞過來的要被轉(zhuǎn)換的格式* @return 格式化后的字符串*/public static String dateToString(Date d, String format) {// SimpleDateFormat sdf = new SimpleDateFormat(format);// return sdf.format(d);return new SimpleDateFormat(format).format(d);}/*** 這個方法的作用就是把一個字符串解析成一個日期對象** @param s* 被解析的字符串* @param format* 傳遞過來的要被轉(zhuǎn)換的格式* @return 解析后的日期對象* @throws ParseException*/public static Date stringToDate(String s, String format)throws ParseException {return new SimpleDateFormat(format).parse(s);}}

?

?

/** 工具類的測試*/public class DateUtilDemo {public static void main(String[] args) throws ParseException {Date d = new Date();// yyyy-MM-dd HH:mm:ssString s = DateUtil.dateToString(d, "yyyy年MM月dd日 HH:mm:ss");System.out.println(s);String s2 = DateUtil.dateToString(d, "yyyy年MM月dd日");System.out.println(s2);String s3 = DateUtil.dateToString(d, "HH:mm:ss");System.out.println(s3);String str = "2014-10-14";Date dd = DateUtil.stringToDate(str, "yyyy-MM-dd");System.out.println(dd);}} /** 算一下你來到這個世界多少天?** 分析:* A:鍵盤錄入你的出生的年月日* B:把該字符串轉(zhuǎn)換為一個日期* C:通過該日期得到一個毫秒值* D:獲取當(dāng)前時間的毫秒值* E:用D-C得到一個毫秒值* F:把E的毫秒值轉(zhuǎn)換為年* /1000/60/60/24*/public class MyYearOldDemo {public static void main(String[] args) throws ParseException {// 鍵盤錄入你的出生的年月日Scanner sc = new Scanner(System.in);System.out.println("請輸入你的出生年月日:");String line = sc.nextLine();// 把該字符串轉(zhuǎn)換為一個日期SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date d = sdf.parse(line);// 通過該日期得到一個毫秒值long myTime = d.getTime();// 獲取 當(dāng)前時間的毫秒值long nowTime = System.currentTimeMillis();// 用D-C得到一個毫秒值long time = nowTime - myTime;// 把E的毫秒值轉(zhuǎn)換為年long day = time / 1000 / 60 / 60 / 24;System.out.println("你來到這個世界:" + day + "天");}}

?

11. Math

Math(掌握)

?? (1)針對數(shù)學(xué)運算進(jìn)行操作的類

?? (2)常見方法(自己補齊)

????? A:絕對值

????? B:向上取整

????? C:向下取整

????? D:兩個數(shù)據(jù)中的大值

????? E:a的b次冪

????? F:隨機(jī)數(shù)

????? G:四舍五入

????? H:正平方根

?? (3)案例:

????? A:猜數(shù)字小游戲

????? B:獲取任意范圍的隨機(jī)數(shù)

/** Math:用于數(shù)學(xué)運算的類。* 成員變量:* public static final double PI* public static final double E* 成員方法:* public static int abs(int a):絕對值* public static double ceil(double a):向上取整* public static double floor(double a):向下取整* public static int max(int a,int b):最大值 (min自學(xué))* public static double pow(double a,double b):a的b次冪* public static double random():隨機(jī)數(shù) [0.0,1.0)* public static int round(float a) 四舍五入(參數(shù)為double的自學(xué))* public static double sqrt(double a):正平方根*/public class MathDemo {public static void main(String[] args) {// public static final double PISystem.out.println("PI:" + Math.PI);// public static final double ESystem.out.println("E:" + Math.E);System.out.println("--------------");// public static int abs(int a):絕對值System.out.println("abs:" + Math.abs(10));System.out.println("abs:" + Math.abs(-10));System.out.println("--------------");// public static double ceil(double a):向上取整System.out.println("ceil:" + Math.ceil(12.34));System.out.println("ceil:" + Math.ceil(12.56));System.out.println("--------------");// public static double floor(double a):向下取整System.out.println("floor:" + Math.floor(12.34));System.out.println("floor:" + Math.floor(12.56));System.out.println("--------------");// public static int max(int a,int b):最大值System.out.println("max:" + Math.max(12, 23));// 需求:我要獲取三個數(shù)據(jù)中的最大值// 方法的嵌套調(diào)用System.out.println("max:" + Math.max(Math.max(12, 23), 18));// 需求:我要獲取四個數(shù)據(jù)中的最大值System.out.println("max:"+ Math.max(Math.max(12, 78), Math.max(34, 56)));System.out.println("--------------");// public static double pow(double a,double b):a的b次冪System.out.println("pow:" + Math.pow(2, 3));System.out.println("--------------");// public static double random():隨機(jī)數(shù) [0.0,1.0)System.out.println("random:" + Math.random());// 獲取一個1-100之間的隨機(jī)數(shù)System.out.println("random:" + ((int) (Math.random() * 100) + 1));System.out.println("--------------");// public static int round(float a) 四舍五入(參數(shù)為double的自學(xué))System.out.println("round:" + Math.round(12.34f));System.out.println("round:" + Math.round(12.56f));System.out.println("--------------");//public static double sqrt(double a):正平方根System.out.println("sqrt:"+Math.sqrt(4));}} /** 需求:請設(shè)計一個方法,可以實現(xiàn)獲取任意范圍內(nèi)的隨機(jī)數(shù)。** 分析:* A:鍵盤錄入兩個數(shù)據(jù)。* int strat;* int end;* B:想辦法獲取在start到end之間的隨機(jī)數(shù)* 我寫一個功能實現(xiàn)這個效果,得到一個隨機(jī)數(shù)。(int)* C:輸出這個隨機(jī)數(shù)*/public class MathDemo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請輸入開始數(shù):");int start = sc.nextInt();System.out.println("請輸入結(jié)束數(shù):");int end = sc.nextInt();for (int x = 0; x < 100; x++) {// 調(diào)用功能int num = getRandom(start, end);// 輸出結(jié)果System.out.println(num);}}/** 寫一個功能 兩個明確: 返回值類型:int 參數(shù)列表:int start,int end*/public static int getRandom(int start, int end) {// 回想我們講過的1-100之間的隨機(jī)數(shù)// int number = (int) (Math.random() * 100) + 1;// int number = (int) (Math.random() * end) + start;// 發(fā)現(xiàn)有問題了,怎么辦呢?int number = (int) (Math.random() * (end - start + 1)) + start;return number;}}

?

12. Random

Random(理解)

?? (1)用于產(chǎn)生隨機(jī)數(shù)的類

?? (2)構(gòu)造方法:

????? A:Random() 默認(rèn)種子,每次產(chǎn)生的隨機(jī)數(shù)不同

????? B:Random(long seed) 指定種子,每次種子相同,隨機(jī)數(shù)就相同

?? (3)成員方法:

????? A:int nextInt() 返回int范圍內(nèi)的隨機(jī)數(shù)

??????????????? B:int nextInt(int n) 返回[0,n)范圍內(nèi)的隨機(jī)數(shù)

/** Random:產(chǎn)生隨機(jī)數(shù)的類** 構(gòu)造方法:* public Random():沒有給種子,用的是默認(rèn)種子,是當(dāng)前時間的毫秒值* public Random(long seed):給出指定的種子** 給定種子后,每次得到的隨機(jī)數(shù)是相同的。** 成員方法:* public int nextInt():返回的是int范圍內(nèi)的隨機(jī)數(shù)* public int nextInt(int n):返回的是[0,n)范圍的內(nèi)隨機(jī)數(shù)*/public class RandomDemo {public static void main(String[] args) {// 創(chuàng)建對象// Random r = new Random();Random r = new Random(1111);for (int x = 0; x < 10; x++) {// int num = r.nextInt();int num = r.nextInt(100) + 1;System.out.println(num);}}}

?

13. System

System(掌握)

?? (1)系統(tǒng)類,提供了一些有用的字段和方法

?? (2)成員方法(自己補齊)

????? A:運行垃圾回收器

????? B:退出jvm

????? C:獲取當(dāng)前時間的毫秒值

????? D:數(shù)組復(fù)制

/** System類包含一些有用的類字段和方法。它不能被實例化。** 方法:* public static void gc():運行垃圾回收器。* public static void exit(int status)* public static long currentTimeMillis()* public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)*/public class SystemDemo {public static void main(String[] args) {Person p = new Person("趙雅芝", 60);System.out.println(p);p = null; // 讓p不再指定堆內(nèi)存System.gc();}} /** System類包含一些有用的類字段和方法。它不能被實例化。** 方法:* public static void gc():運行垃圾回收器。* public static void exit(int status):終止當(dāng)前正在運行的 Java 虛擬機(jī)。參數(shù)用作狀態(tài)碼;根據(jù)慣例,非 0 的狀態(tài)碼表示異常終止。* public static long currentTimeMillis():返回以毫秒為單位的當(dāng)前時間* public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)*/public class SystemDemo {public static void main(String[] args) {// System.out.println("我們喜歡林青霞(東方不敗)");// System.exit(0);// System.out.println("我們也喜歡趙雅芝(白娘子)");// System.out.println(System.currentTimeMillis());// 單獨得到這樣的實際目前對我們來說意義不大// 那么,它到底有什么作用呢?// 要求:請大家給我統(tǒng)計這段程序的運行時間long start = System.currentTimeMillis();for (int x = 0; x < 100000; x++) {System.out.println("hello" + x);}long end = System.currentTimeMillis();System.out.println("共耗時:" + (end - start) + "毫秒");}} /** System類包含一些有用的類字段和方法。它不能被實例化。** 方法:* public static void gc():運行垃圾回收器。* public static void exit(int status):終止當(dāng)前正在運行的 Java 虛擬機(jī)。參數(shù)用作狀態(tài)碼;根據(jù)慣例,非 0 的狀態(tài)碼表示異常終止。* public static long currentTimeMillis():返回以毫秒為單位的當(dāng)前時間* public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)* 從指定源數(shù)組中復(fù)制一個數(shù)組,復(fù)制從指定的位置開始,到目標(biāo)數(shù)組的指定位置結(jié)束。*/public class SystemDemo {public static void main(String[] args) {// 定義數(shù)組int[] arr = { 11, 22, 33, 44, 55 };int[] arr2 = { 6, 7, 8, 9, 10 };// 請大家看這個代碼的意思System.arraycopy(arr, 1, arr2, 2, 2);System.out.println(Arrays.toString(arr));System.out.println(Arrays.toString(arr2));}}

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的6、常用类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

日韩视频一区二区在线观看 | 国产成人精品一区二区 | 五月天网站在线 | 一区二区三区在线观看免费视频 | 99精品视频在线播放免费 | 久久电影色 | 91手机电影 | 国产黄大片| 日韩xxx视频| 五月开心激情 | 激情综合婷婷 | 6080yy午夜一二三区久久 | 又黄又刺激又爽的视频 | 嫩草av影院 | 久久久久久久久综合 | 成人在线视频一区 | 久草视频观看 | 中国精品一区二区 | 日韩精品一区二区在线观看视频 | 免费毛片一区二区三区久久久 | 欧美电影黄色 | 国产在线一区二区三区播放 | 9色在线视频 | 一二区电影 | 国产亚洲久一区二区 | 不卡国产视频 | 亚洲激情在线观看 | 国产一级特黄毛片在线毛片 | 日韩av在线网站 | 精品二区久久 | 日本三级全黄少妇三2023 | 国产精品精品国产色婷婷 | 亚洲婷婷在线视频 | 区一区二区三区中文字幕 | 香蕉在线播放 | 成人av.com | 中文字幕av免费在线观看 | 91免费试看| 亚洲欧美视频在线观看 | 99精品久久只有精品 | 日本在线观看中文字幕无线观看 | 天天拍天天操 | 91精品久久久久久久久久久久久 | 福利电影久久 | 亚洲在线激情 | 国产xxxx做受性欧美88 | 男女精品久久 | 又色又爽又黄 | 国产成人精品a | 国产精品大全 | 久久久久久久久久免费 | 91av欧美| 超碰com | 亚洲精品黄 | 亚洲欧美日韩国产精品一区午夜 | 亚洲精品国产精品国自产观看 | 亚洲高清久久久 | 最近字幕在线观看第一季 | 久草视频在线免费看 | 99久久精品免费视频 | 韩日视频在线 | 人人看人人爱 | 在线免费黄色av | 久久艹国产视频 | 免费在线成人av | 免费看搞黄视频网站 | 亚洲一区二区三区毛片 | 亚洲一级电影视频 | 成人在线视频观看 | 国产99在线播放 | 国产精品高清在线 | 欧美日韩一区二区三区不卡 | 黄色成人91 | 久久亚洲影视 | 日韩在线观看精品 | 国产精品成人在线观看 | 视频在线观看91 | 天天操天天舔天天干 | 一区二区 久久 | 天天操天天干天天干 | 久av电影| 欧美va电影| 在线天堂8√| 精品国产免费久久 | 久久久久国产精品视频 | 久久国产亚洲精品 | 最新国产精品亚洲 | 久久伊99综合婷婷久久伊 | 日韩精品一区在线观看 | 亚洲 欧美 综合 在线 精品 | 欧美精品一级视频 | 探花视频免费观看 | www国产亚洲精品 | 欧美另类巨大 | 丁香视频五月 | 欧美精品视 | 欧亚日韩精品一区二区在线 | 久久免费视频在线 | 在线观看91久久久久久 | 国产精品6999成人免费视频 | 成人免费在线视频观看 | 久久精品国产免费看久久精品 | 欧美久久久久久久久久久久久 | 欧美a级一区二区 | 国产精品亚洲精品 | 中文字幕一区二区三区四区视频 | 亚洲日韩中文字幕在线播放 | 亚洲香蕉视频 | 黄色网在线播放 | 91精品国自产在线观看 | 麻豆影视网 | 日韩手机在线观看 | 精品在线亚洲视频 | 国产一线二线三线在线观看 | 国产日本在线播放 | 久久久久久久久福利 | 男女啪啪免费网站 | 日本女人在线观看 | 天天干中文字幕 | 日韩av中文 | 五月综合在线观看 | 91影视成人| 国产一区电影在线观看 | 国产一级视频 | 97超碰伊人 | 欧美日韩成人一区 | 综合激情久久 | 精品国产一区二区三区日日嗨 | 婷婷视频| 国产日韩在线播放 | 国产不卡精品视频 | 亚洲精品午夜久久久久久久 | 国产 在线 高清 精品 | 久草在线网址 | 精品亚洲午夜久久久久91 | 国产群p| 欧美精品一区二区三区一线天视频 | 中文字幕刺激在线 | 国产精彩视频 | 婷婷av网 | 国产高清成人 | 欧美性黑人 | 亚洲网站在线看 | 婷婷激情综合网 | 中文字幕在线国产 | 亚洲黄色软件 | 日韩中文三级 | 视频国产区 | 欧美一区二区日韩一区二区 | 激情丁香婷婷 | 五月婷婷六月丁香激情 | 美女免费视频网站 | 国产日韩欧美在线观看视频 | 日韩电影在线观看一区二区三区 | 999成人网| 干av在线 | 久久99精品久久久久蜜臀 | 亚洲欧洲精品视频 | 国产精品2020 | 一区二区视频在线看 | 欧洲视频一区 | 亚洲免费一级 | 中文字幕在线观看完整版电影 | 超碰在线最新地址 | 91看片麻豆| 毛片3| 国产美女被啪进深处喷白浆视频 | www.xxxx欧美 | 在线国产精品视频 | 成人在线一区二区三区 | 久久狠狠一本精品综合网 | 91在线视频在线观看 | 最近中文字幕完整视频高清1 | 奇米影视999 | 欧美日韩中文在线 | 人人看人人爱 | 国产成人精品a | 在线观看视频一区二区三区 | a极黄色片 | 五月天久久久久久 | 欧美在线观看视频 | 免费观看一区二区 | 久久久久国产一区二区三区四区 | 黄在线免费观看 | 欧美国产不卡 | 免费网站在线观看成人 | 最近av在线 | 国产精品久久久久久麻豆一区 | 欧美日韩免费一区二区 | 九九热在线观看 | 欧美一级电影 | 国产又粗又猛又黄又爽视频 | 97网在线观看 | 一区二区三区动漫 | 久久免费视频这里只有精品 | 69精品久久 | 久久久久久蜜av免费网站 | 国产高清视频色在线www | 中文字幕永久在线 | av电影在线观看完整版一区二区 | 国产伦理久久精品久久久久_ | 国产精品 中文字幕 亚洲 欧美 | 日韩欧美综合精品 | 精品一区三区 | 九九色综合 | 精品一区电影 | 国产精品成人av电影 | 国产一区二区免费 | 国产在线看 | 在线观看av大片 | 五月婷婷丁香网 | 成人免费亚洲 | 久久成人麻豆午夜电影 | 精品高清视频 | 激情av资源 | 免费观看mv大片高清 | 免费观看www视频 | 久久国产成人午夜av影院宅 | 一区二区三区四区精品 | 午夜在线观看一区 | 色综合久久88色综合天天免费 | 91一区二区三区在线观看 | 日韩动漫免费观看高清完整版在线观看 | 香蕉视频亚洲 | 色片网站在线观看 | 国产在线观看免费av | 超碰在线97观看 | 欧美成人在线免费观看 | 奇米网444| aⅴ视频在线 | 久久与婷婷 | 亚洲 欧美 变态 国产 另类 | 午夜精品福利一区二区 | 人人干狠狠干 | 国产精品白浆视频 | 观看免费av | 91片黄在线观看 | 麻豆一精品传二传媒短视频 | 亚洲电影久久久 | 国产欧美日韩精品一区二区免费 | 国产一级二级在线观看 | 中日韩免费视频 | 亚洲区视频在线 | 国产精品福利视频 | 亚洲精品免费在线观看视频 | 日本爽妇网 | 91毛片视频| 国产高清黄色 | 久久一及片 | 天天干夜夜夜操天 | 精品999 | 国产午夜影院 | 黄色a在线 | 91色国产 | 国产视频在线观看一区二区 | 五月天电影免费在线观看一区 | 国产美女精品视频 | 免费高清男女打扑克视频 | www.狠狠操.com| 日韩成人黄色 | 操操操日日日干干干 | 丰满少妇在线观看 | 欧美日韩在线视频一区二区 | 日本精品久久久久中文字幕 | 亚洲精品国产品国语在线 | 久久天天躁狠狠躁夜夜不卡公司 | 日韩av一区二区三区在线观看 | 91av精品 | 国产一级性生活视频 | 国产亚洲精品久久网站 | www.五月婷| 国产亚洲精品久久久久久大师 | 精品国产一区二区三区在线观看 | 午夜影院一级 | 懂色av一区二区三区蜜臀 | 97视频网站 | 成人av资源网站 | 视频一区亚洲 | 天天色天天射天天综合网 | 国产精品一区二区av影院萌芽 | 国产又粗又猛又黄又爽的视频 | 国产精品一区二区精品视频免费看 | 天天操天天操一操 | 欧美日韩99 | 一区二区精品在线观看 | 日韩性xxxx | 日韩欧美一区二区三区黑寡妇 | 欧美日韩观看 | 国产日韩欧美在线观看 | 中文字幕在线视频网站 | 国内精品久久久久久久久久久 | 亚洲黄色成人网 | 欧美日韩xxx | 亚洲欧美日韩国产一区二区 | 国产精品久久片 | 国产一级片免费视频 | 成人h电影 | 经典三级一区 | 免费美女av | 色多多视频在线观看 | 91亚洲在线| 日本系列中文字幕 | 精品国模一区二区 | 国产精品免费在线 | 国偷自产中文字幕亚洲手机在线 | 天天天天天天天操 | 九九热免费在线观看 | 精品一区电影 | 亚洲欧美视频在线 | 香蕉视频免费在线播放 | 91正在播放| 深夜免费小视频 | 玖玖玖在线 | 久久久久中文 | 手机在线看永久av片免费 | 一本之道乱码区 | av 一区二区三区 | 人人干天天射 | 久久99国产精品二区护士 | 香蕉97视频观看在线观看 | 婷婷综合网 | 超碰97中文| 成年人免费在线观看网站 | 91爱看片 | 国产亚州av | 国产成人久久精品77777 | 在线а√天堂中文官网 | 99视频在线看 | 婷婷电影在线观看 | 欧美日本一区 | 91x色 | www视频在线免费观看 | 天天干夜夜操视频 | 成人看片 | 精品一区在线 | 成人99免费视频 | 免费人做人爱www的视 | 手机在线欧美 | 国产中文欧美日韩在线 | 久综合网 | 日韩在线视频看看 | 国产精品免费人成网站 | 亚洲小视频在线 | 2023亚洲精品国偷拍自产在线 | 欧美激情操 | 欧美色操| 91九色蝌蚪在线 | 韩国视频一区二区三区 | 最新色站| 黄色一级片视频 | 狠狠干综合 | 国产乱对白刺激视频在线观看女王 | 中文字幕二区三区 | 欧美久久久久久久久久 | 国产精品免费视频观看 | 亚洲六月丁香色婷婷综合久久 | 夜夜天天干 | 9999亚洲| 婷婷中文在线 | 国产999精品久久久久久麻豆 | 久久福利小视频 | 91中文在线视频 | 中文字幕人成不卡一区 | 西西www4444大胆在线 | 天天干天天操天天 | 欧美日韩不卡一区 | 国产亚洲精品美女久久 | 国产精品色婷婷视频 | 国产精品免费人成网站 | 在线观看成人 | 色婷婷激情电影 | 国产精品麻豆果冻传媒在线播放 | 欧美福利网址 | 亚洲.www| 黄污污网站 | 久章草在线观看 | 视频在线亚洲 | 中文字幕国产在线 | 国产91aaa | 久草观看 | 精品a视频| 欧美另类老妇 | 色黄www小说 | 久久夜色精品国产欧美乱 | 蜜臀av.com | 在线观看视频中文字幕 | 国产精品久久久久婷婷二区次 | 97色综合| 久久国产精品免费 | 狠狠狠综合 | 91人人插| 国产中文字幕在线免费观看 | 色噜噜狠狠狠狠色综合久不 | 国产精品中文字幕在线播放 | 97日日碰人人模人人澡分享吧 | 国产很黄很色的视频 | 国产精品久久久久久久久久久久久 | 免费看国产黄色 | 欧美激情在线网站 | 91九色国产在线 | 欧美另类tv| 免费一级日韩欧美性大片 | 91亚瑟视频| 久久精彩视频 | 在线精品一区二区 | 美女网站久久 | 四虎永久免费在线观看 | 黄色av成人在线观看 | 亚洲国产精品久久久久 | 91毛片在线 | 国产精久久 | 懂色av懂色av粉嫩av分享吧 | 亚洲激情综合 | 六月丁香伊人 | 免费日韩av电影 | 国内精品久久久久久久久久 | 亚洲成人av一区 | 日本中文字幕在线看 | 亚洲国产欧美一区二区三区丁香婷 | 国产精品自产拍在线观看网站 | 国产日产高清dvd碟片 | 国产精品69久久久久 | 国产黄大片在线观看 | 国产精品乱码高清在线看 | 欧美国产日韩一区二区三区 | 免费毛片aaaaaa | 久操视频在线免费看 | 亚洲精品一区中文字幕乱码 | a黄色影院 | 奇米777777| 夜夜爽www| 91香蕉视频黄色 | 又黄又刺激又爽的视频 | 国产a网站 | 99热在线精品观看 | 精品99久久 | 91高清在线看 | 91片黄在线观 | 日本精品一区二区在线观看 | 亚洲精品456在线播放 | www.亚洲黄| 国产精品欧美一区二区三区不卡 | 欧美日韩国产一二三区 | 亚洲女欲精品久久久久久久18 | 在线亚洲激情 | 久久综合久久综合九色 | 中文字幕电影在线 | 欧美日韩三级在线观看 | 免费观看久久 | 丁香花中文在线免费观看 | 伊人影院在线观看 | 91久久偷偷做嫩草影院 | 国产91精品在线观看 | 中文字幕在线观看免费高清电影 | 日韩在线网址 | 正在播放国产一区 | www.香蕉| se视频网址 | 麻豆91在线看 | 日韩精品一区二区在线视频 | 99热最新地址 | 手机在线看永久av片免费 | 手机看片国产 | 日韩在线高清免费视频 | 超碰在线99| 国产在线观看地址 | 深爱激情五月网 | 久久久久亚洲精品男人的天堂 | 国产精品专区在线观看 | 午夜久久福利 | a在线一区 | 97在线免费视频 | 91成人网在线观看 | 久久综合久久久久88 | 欧美日韩免费一区二区三区 | 中文字幕日韩一区二区三区不卡 | 91资源在线 | 国产精品久久久久影院日本 | 人人插人人做 | 四虎成人av | 永久中文字幕 | 久久久久久久久久久免费av | 久久99久久99精品免观看软件 | 在线看岛国av | 国产福利一区在线观看 | 二区精品视频 | 国产成人亚洲在线电影 | 婷婷六月网| 99一区二区三区 | 丰满少妇在线观看 | 亚洲 欧洲 国产 精品 | 狠狠做深爱婷婷综合一区 | 日韩欧美电影在线 | 999精品网| 欧美精品免费视频 | 在线观看国产福利片 | 中文在线8资源库 | 欧美性另类 | 免费看黄色毛片 | 免费观看成人 | 97超碰站| 久久在现视频 | 免费av网站在线看 | 91精品视频在线播放 | 怡春院av | 日韩二级毛片 | 日本中文一级片 | 久久久三级视频 | 国产亚洲人成网站在线观看 | 麻豆视频免费观看 | 久久er99热精品一区二区 | 五月天久久久久久 | av网站大全免费 | 中文字幕免费看 | 亚洲视频h | 亚洲最新合集 | 国产亚洲va综合人人澡精品 | 国产99久久久精品视频 | 国产精品一区二区在线 | 日韩欧美极品 | 久久综合狠狠综合 | 国产亚洲精品久久久久久无几年桃 | 一区二区三区在线观看中文字幕 | 中文字幕中文 | 最新av观看| 欧美激情精品久久久久 | 国产精品成人久久久久 | av综合网址 | 99热精品在线观看 | 亚洲精品1区2区3区 超碰成人网 | 美女在线免费视频 | 日韩欧美视频 | 91手机电影| aaa亚洲精品一二三区 | 欧美日韩一区二区三区不卡 | 99精品视频在线观看 | 天堂av在线网址 | av片中文 | 蜜臀av夜夜澡人人爽人人 | 欧亚久久| 国产精品亚洲片夜色在线 | 网站免费黄色 | 亚洲最新精品 | 在线视频免费观看 | 黄色软件在线观看免费 | 国产原创在线观看 | 91免费日韩 | 丁香六月在线 | 91九色视频观看 | 免费看v片网站 | 国产糖心vlog在线观看 | 91一区二区三区在线观看 | 欧美日韩国产一区 | av解说在线观看 | 成人在线视频网 | 黄色电影小说 | 青草视频免费观看 | 婷婷中文字幕综合 | 黄色影院在线观看 | 在线91色 | 国产精品一区在线播放 | 狠狠色丁香婷婷综合视频 | 日日操天天射 | 中文字幕在线观看的网站 | 天天天天天天天天操 | 国产精品免费视频一区二区 | 欧美成人精品欧美一级乱黄 | 国产精品门事件 | 91av色 | 日韩视频在线观看视频 | 精品国偷自产在线 | 激情综合五月 | 国产成人精品在线观看 | 国产尤物一区二区三区 | 热久久视久久精品18亚洲精品 | avcom在线 | 日韩女同av| 亚洲传媒在线 | 精品视频一区在线观看 | 日韩在线观看视频一区二区三区 | 国产精品18久久久久久不卡孕妇 | 一区二区三区在线电影 | 中文字幕在线视频一区二区三区 | av免费在线观 | 日韩欧美精品一区二区三区经典 | 国产专区在线视频 | 色a网| 狠狠干电影 | 免费久久99精品国产婷婷六月 | 天天射一射 | 日韩有码网站 | 蜜臀久久99精品久久久无需会员 | 日韩中文字幕免费视频 | 国产看片免费 | 91福利试看 | 久久久久福利视频 | 三级黄色免费片 | 麻豆影视在线免费观看 | 国产一二三在线视频 | 国产999精品久久久影片官网 | 狠狠色丁香婷婷综合基地 | 在线最新av | 4438全国亚洲精品观看视频 | 福利二区视频 | 中文字幕一区二区三区四区视频 | 久久精品日本啪啪涩涩 | 亚洲成aⅴ人在线观看 | 国产分类视频 | 国产又粗又猛又黄又爽的视频 | 黄色视屏在线免费观看 | 国产精品免费观看视频 | 98久久| 欧美va天堂va视频va在线 | 福利区在线观看 | 国产日韩欧美网站 | 国产精品网址在线观看 | 久久香蕉一区 | 91麻豆精品国产午夜天堂 | 国产精品成人免费精品自在线观看 | 黄色网大全 | 91av在线视频播放 | 天天狠狠 | 国产日韩精品在线观看 | 人人爱夜夜操 | 亚洲国产小视频在线观看 | 91精品福利在线 | 久草在线网址 | 免费日韩一级片 | 久久高清 | 欧美性色19p | 国产一区欧美二区 | 日韩免费高清 | 久久国产精品色婷婷 | a在线免费观看视频 | 精品美女视频 | 亚洲不卡在线 | 久久综合久久鬼 | 六月激情久久 | 亚洲精品三级 | 99色在线 | 久久精品免费播放 | 免费成人在线观看 | 免费a网站 | 日韩欧美一区二区在线观看 | 午夜国产福利在线观看 | 日韩特级黄色片 | 91人人揉日日捏人人看 | 亚洲欧美日韩国产一区二区三区 | 国产色区 | 国产精品理论片在线观看 | 成人午夜av电影 | 在线免费观看一区二区三区 | 国产日韩精品一区二区在线观看播放 | 久久爱影视i | 天天爽天天射 | 国产成人免费av电影 | 色综合五月 | 精品视频免费久久久看 | 狠狠狠色 | 久久高清毛片 | 免费在线播放av电影 | 国产精品久久久免费 | 在线视频久久 | 国产免费激情久久 | 久久久久亚洲国产精品 | 人人草网站 | 久久深爱网 | 精品在线你懂的 | 69视频在线| 久久精品一区二 | 在线视频日韩欧美 | 天天激情综合网 | 日韩视频在线观看免费 | 最近中文字幕大全中文字幕免费 | av专区在线 | 在线看日韩av| 97精品国产 | 精品日韩在线一区 | www国产在线| 91豆花在线观看 | 韩日av一区二区 | 亚洲精品乱码久久久久久 | 狠狠干五月天 | 99视频在线精品免费观看2 | 在线视频在线观看 | 99久久这里只有精品 | 麻豆视频免费观看 | 97精品一区二区三区 | 九九久久在线看 | 狠狠操狠狠干天天操 | 激情av在线资源 | 精品伊人久久久 | 狠狠色丁香婷婷综合欧美 | 99久久精品国产欧美主题曲 | 国产精品一区在线 | 亚洲精品视频一二三 | 99久久久成人国产精品 | 天天人人综合 | 一级黄色在线视频 | 最近中文字幕免费av | 国产精品永久免费视频 | av免费在线看网站 | 91人人揉日日捏人人看 | 欧美一区二区免费在线观看 | 国产丝袜美腿在线 | 久久久久久网 | 亚州日韩中文字幕 | 欧美激情va永久在线播放 | 日韩一二三 | 免费看黄色毛片 | 免费一级片观看 | 国产成人精品一区二区 | 色婷婷亚洲婷婷 | 国产视频高清 | 伊香蕉大综综综合久久啪 | 欧美小视频在线观看 | 国产乱码精品一区二区蜜臀 | 久久婷婷精品视频 | 久热av| 五月综合色 | 蜜桃视频在线观看一区 | 深夜国产在线 | 最近字幕在线观看第一季 | zzijzzij亚洲日本少妇熟睡 | 亚洲一区美女视频在线观看免费 | 91精品人成在线观看 | 色综合在 | 国产精品久久久久久久免费大片 | 国产中文字幕在线观看 | 国产精品久久久久久久免费 | 精品久久久久一区二区国产 | 色爱成人网 | 伊人伊成久久人综合网小说 | 天天拍天天干 | 五月婷婷综合在线观看 | 网站在线观看你们懂的 | 国产不卡在线观看视频 | 久久久久久久久久伊人 | 亚洲人久久久 | 久久九九免费视频 | 一区二区视频播放 | 尤物97国产精品久久精品国产 | 国产h在线播放 | 2000xxx影视| 亚洲日本精品视频 | 国产在线观看地址 | 国产黄色成人av | 久久女教师 | av中文天堂 | 欧美aa一级 | 涩涩色亚洲一区 | 1区2区3区在线观看 三级动图 | 玖玖玖国产精品 | 天天干天天操天天入 | 福利视频午夜 | 国产韩国精品一区二区三区 | 日日精品 | 国产视频在线观看一区 | 色资源在线观看 | 精品不卡av| 国产一级淫片免费看 | 五月情婷婷 | 国产视频在线播放 | 91精品久久久久 | 色九九视频 | 欧美另类激情 | 欧美精品免费一区二区 | 在线视频亚洲 | 97综合视频| 国产成人精品久久二区二区 | 手机看片99 | 97精品国产97久久久久久久久久久久 | 99色网站 | 国产在线一区观看 | 午夜精品麻豆 | 福利视频午夜 | 狠狠干成人 | 麻豆一区二区三区视频 | 中文字幕最新精品 | 黄色91在线观看 | 亚洲国产成人精品在线观看 | 精品在线观看一区二区三区 | 成人免费看视频 | 精品久久久精品 | 国产91九色蝌蚪 | 丁香婷婷久久 | 日韩xxxx视频| 国产福利91精品一区二区三区 | 免费日韩 精品中文字幕视频在线 | 在线黄色观看 | 欧美乱熟臀69xxxxxx | 亚洲免费不卡 | 69视频网站 | 日韩啪啪小视频 | 97超碰人人澡人人爱 | 中文字幕在线观看免费观看 | 成人免费色 | 欧美做受高潮电影o | 成人一区二区三区在线观看 | 精品极品在线 | 欧美日韩天堂 | 亚洲精品成人av在线 | 天天插天天色 | 一级国产视频 | 国产美女免费观看 | 日韩av三区 | 青春草视频在线播放 | 久久99免费 | 国产精品久久婷婷六月丁香 | 久久a v视频 | 欧美一级免费在线 | 天天躁日日躁狠狠躁av麻豆 | 精品国产黄色片 | 精品久久精品久久 | 免费久久久久久 | 福利一区视频 | www.狠狠操.com | 91久久国产露脸精品国产闺蜜 | 五月婷婷丁香六月 | 日韩精品中文字幕在线观看 | 欧美一级黄色视屏 | 18女毛片 | 亚洲精品资源在线观看 | 国产成人精品一区二三区 | 81精品国产乱码久久久久久 | 中文字幕中文字幕在线中文字幕三区 | 干干日日 | 久久久精品网站 | 国产欧美在线一区 | 碰超在线97人人 | 精品欧美小视频在线观看 | 国产黄大片 | 最近免费中文字幕大全高清10 | 日韩av专区| 一级片免费观看视频 | 欧美极品少妇xxxx | 一区二区三区日韩在线观看 | 亚洲精品成人在线 | 久久久久区| 亚洲人在线 | 亚洲精品免费在线视频 | 日韩精品不卡在线 | 久久艹国产 | 99久久精品网| 视频一区二区精品 | 久热免费在线观看 | 国产r级在线观看 | 麻豆一精品传二传媒短视频 | 91麻豆国产| 丝袜av一区 | 亚洲一区二区三区毛片 | 亚洲天堂网在线视频观看 | 在线观看av国产 | 欧美无极色 | 成人在线观看免费 | 亚洲涩涩涩 | 成人免费在线电影 | 亚洲综合色视频在线观看 | 中国一区二区视频 | 亚洲人毛片 | 日韩三级免费观看 | 欧美日韩三级 | 综合久久久久 | 国产免费观看视频 | 国产手机视频 | 日韩精品在线免费播放 | 国产福利中文字幕 | 久久久私人影院 | 91视频在线网址 | 极品中文字幕 | 精品影院 | 日韩专区中文字幕 | 国产精品视频地址 | 首页中文字幕 | 国产精品二区在线 | 精品国产伦一区二区三区观看方式 | 国产夫妻性生活自拍 | 91丨九色丨91啦蝌蚪老版 | 日韩av片免费在线观看 | 亚洲成人二区 | 一区中文字幕 | 91大神在线观看视频 | 国产黄色成人av | 免费在线观看成人 | 久久久久亚洲精品中文字幕 | 国产情侣一区 | 西西4444www大胆艺术 | 伊人黄色网 | 日本深夜福利视频 | 成年人免费看片 | 日韩免费在线 | 亚洲精品小视频 | 一级性视频 | 成人夜晚看av | 成人av观看| 在线国产精品一区 | 国产一区国产二区在线观看 | 免费看av片网站 | 国产玖玖精品视频 | 色网av | 欧美激情视频一区二区三区免费 | 911亚洲精品第一 | 国产精品理论在线观看 | 视频国产精品 | 欧美国产日韩久久 | 91免费观看视频在线 | 国产亚洲永久域名 | 欧美大片mv免费 | 国产视频在线免费 | 99re视频在线观看 | 久久高清av| 91视频在线免费下载 | 欧美性做爰猛烈叫床潮 | 亚洲 中文 欧美 日韩vr 在线 | 一区三区在线欧 | 91在线区 | 久操操| 在线国产一区 | 日韩,中文字幕 | 久久久国产精品成人免费 | 欧美孕交vivoestv另类 | 亚洲国产精品久久久久婷婷884 | 在线免费国产 | 国产精品久久久毛片 | 99精品一区二区 | 日韩一二三区不卡 | 国产视频18 | 中文字幕高清在线播放 | 国产在线欧美日韩 | 日韩视频在线不卡 | 国产精品久久久久999 | 亚洲精品国偷拍自产在线观看蜜桃 | 奇米影视在线99精品 | 国产精品成人久久久久 | 久久字幕网 | 欧美一级特黄aaaaaa大片在线观看 | 五月天网页 | 国产黄色片免费在线观看 | 欧美精品免费在线 | 久久精品国产免费看久久精品 | 一区二区中文字幕在线播放 | 国产成人免费在线观看 | 日韩免费在线看 | 国产精品成人久久久久 | 在线av资源 | 久久综合九色综合97_ 久久久 | 国产欧美精品xxxx另类 | 天天操夜夜看 | 午夜精品久久一牛影视 | 在线电影日韩 | 亚洲精品在线一区二区三区 | 丁香五月亚洲综合在线 | 国产精品一区在线观看你懂的 | 91精品国产91热久久久做人人 | 欧美久久久一区二区三区 | 91丨九色丨国产在线观看 | 91传媒免费在线观看 | 人人艹视频 | 91在线永久 | 免费看一级 | 天天爱天天插 | 久久精品综合 | 色网av| 久久综合婷婷国产二区高清 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 欧美国产大片 | 久久久一本精品99久久精品 | www日韩| 97超碰资源 | 国产一级免费电影 | 免费黄色网址大全 | 色a网 | 免费视频国产 | 亚洲国产三级在线观看 | 亚洲成 人精品 | 在线观看黄网站 | 福利一区二区在线 | av亚洲产国偷v产偷v自拍小说 | 伊人久久婷婷 | 国产另类xxxxhd高清 | 国产视频在线一区二区 | 一区二区三区精品在线视频 | 国产视频不卡一区 | 欧美三级高清 | 久久午夜国产 | 国产精品99久久久 | 狠狠干狠狠插 | 99国产在线视频 | 天天综合色 | 日本精品视频在线 | 欧美性久久久久久 | 国产精品18久久久久久久网站 | 久草免费在线 | 亚洲激情视频 | 欧美日韩裸体免费视频 | 九九在线国产视频 | 最新国产在线观看 | 美女免费视频观看网站 |