Java基礎(五)

來源:互聯網
上載者:User

標籤:Java   基礎   數組   

(一)Object類
(1)Object:是類階層的根類.每個類都使用 Object 作為超類(父類)

public int hashCode()返回該對象的雜湊碼值 . 把它理解地址值(不是實際意義的地址值)
public final Class getClass()返回此 Object 的運行時類

    Class類中有一個方法:            public String getName()以 String 的形式返回此                             Class 對象所表示的實體(類、介面、數組類、基本類型或 void)名稱。    傳回值是Class(反射)(2) Object中的一個方法:    public String toString(); 回該對象的字串表示    Integer:是int類型的封裝類類型    它裡面提供了一個方法        public static String toHexString(int i):以十六進位表示對字串形式

直接輸出對象名稱:實際執行了Object中的toString(),輸出的全類名@十六進位資料

我現在輸出對象名稱,不想讓toString()直接輸出的是一個地址值(對象的地址值)

就需要重寫Object中的toSring(),一般情況:自動產生即可
(3)public boolean equals(Object obj)指示其他某個對象是否與此對象“相等”。

==:比較的值相等(地址值)
equals:本身屬於Object類中的方法,預設比較的是地址值是否相同

按照正常情況:equals方法底層實際執行的兩個對象在==,比較是地址值;假如:學生的年齡和姓名一致,看成同一個人

在自訂的類中,重寫Object中的equals()方法,比較是兩個對象的成員變數的值是否相同.
自動產生即可!
(4) protected Object clone()建立並返回此對象的一個副本

Object 類的 clone 方法執行特定的複製操作。首先,如果此對象的類不能實現介面 Cloneable,則會拋出 CloneNotSupportedException。

    **  注意,所有的數組都被視為實現介面 Cloneable        (二)Scanner類**

(1) Scanner類: 簡單文本掃描器。

回想:鍵盤錄入的步驟
1)需要建立鍵盤錄入對象
Scanner sc =new Scanner(System.in);
2)匯入包:import java.util.Scanenr; ctrl+shift+o
3)接收資料
XXX 變數名= sc.nextXXX();

構造方法:
public Scanner(InputStream source): 以輸入資料流的形式錄入資料的
InputStream:位元組輸入資料流:

        InputStream  in = System.in ; //底層執行返回的是一個位元組輸入資料流(標準輸入資料流)        (2)Scanner類的一些常見的方法:            XXX 變數名 = 鍵盤錄入對象.nextXXX();

在Scanner類中它提供一個判斷功能:
public boolean hasNextXXX():當前掃描器判斷是否有下一個可以錄入的XXX類型資料
nextXXX();

    java.util.InputMismatchException:錄入的資料和接收的資料類型不匹配異常    (3)問題:    鍵盤錄入兩個int類型的資料,分別輸出,沒有問題    鍵盤錄入兩個String類型的資料,分別輸出:沒有問題    先錄入一個String類型的資料,在錄入int類型的資料,沒有問題    先錄入一個int類型的資料,在錄入String類型的資料,有問題,第二個資料是字串類型,又由於錄入下一個資料要"空格"本身是一個字串

b是空格,b的值沒有錄入!
如何解決:重寫建立鍵盤錄入對象
(三)String類

(1)String:表示字串:    字串是常量;它們的值在建立之後不能更改。

String是一種特殊的參考型別:
預設值:null

(2)構造方法:
String():無參構造
String(byte[] bytes) :將位元組數轉換成字串
public String(byte[] bytes, int index,int length):將位元組數組的一部分轉換成字串
public String(char[] value):將字元數組轉化成字串 toCharArray():將字串轉換成字元
public String(char[] value, int index, int count):將字元數組的一部分轉換成字串
public String(String original):將一個字串常量構造成一個字串對象

        常用的方法:                                public int length()返回此字串的長度        (3)String字串的最大的特點:                                        字串一旦被賦值,其值不能被改變        (4)String類的常用的判斷功能    boolean equals(Object obj):將此字串與指定的對象比較    boolean equalsIgnoreCase(String str)將此 String 與另一個 String 比較,不考慮大小寫    boolean contains(String str):判斷當前大川中是否包含子字串  (重點)    boolean startsWith(String str):以當前str字串開頭(重點)    boolean endsWith(String str):以當前str字串結尾(重點)    boolean isEmpty():判斷字串是否為空白    public String concat(String str):字串的特有功能:拼接功能和+拼接符是一個意思(5) tring類的常用擷取功能:

public int length():擷取字串的長度
public char charAt(int index)返回指定索引處的 字元
public int indexOf(int ch)返回指定字元在此字串中第一次出現處的索引
問題:既然傳入的字元:這裡為什麼用int類型
‘a‘和97 都表示a
public int indexOf(int ch,int fromIndex)返回在此字串中第一次出現指定字元處的索引,從指定的索引開始搜尋。
public int indexOf(String str)返回指定子字串在此字串中第一次出現處的索引
public int indexOf(String str,int fromIndex)回在此字串中第一次出現指定字串處的索引,從指定的索引開始搜尋。

截取功能
public String substring(int beginIndex):從指定位置開始截取,預設截取到末尾,返回新的字串
public String substring(int beginIndex, int endIndex):從指定位置開始到指定位置末尾結束,包前不包含
(6)String的常用轉換功能:

public byte[] getBytes() :將字串轉換為位元組數組
public char[] toCharArray() :將字串轉換成字元數組(重點)
public static String valueOf(int i):將int類型的資料轉換成字串(重點)
這個方法可以將任何類型的資料轉化成String類型
public String toLowerCase():轉成小寫
public String toUpperCase():字串中所有的字元變成大寫
(7)String類型的其他功能:
public String replace(char oldChar,char newChar):將大字串中的某個字元替換掉成新的字元
public String replace(String oldStr,String newStr):將大串中的某個子字串替換掉
public String trim():去除字串兩端空格
(四)StringBuffer
(1) StringBuffer:線程程安全的可變字元序列

線程(多線程中)

線程的安全問題,是痛點(多線程屬於痛點) 多線程------>解決了多安全執行緒問題------>是死結 :生產消費模式(Java中等待喚醒機制)

安全執行緒 --->同步的---->執行效率低
舉例:
銀行的網站,醫學平台...

線程不安全---->不同步---->執行效率高
舉例:
新聞網站,XXX論壇...
(2)tringBuffer的構造方法:
StringBuffer() :無參構造的形式,初始容量16
StringBuffer(int capacity) :指定容量構造一個字串緩衝區
StringBuffer(String str) 構造一個字串緩衝區,並將其內容初始化為指定的字串內容

(3)StringBuffer的擷取功能:
public int length()返回長度
public int capacity()返回當前容量 (如果超過容量,系統自動分配(儲存字串的時候,英文的))
(4)StringBuffer的添加功能
(實際開發中用的多):public StringBuffer append(String/boolean....) :在字串緩衝區中追加資料(在末尾追加),並且返回字串緩衝區本身

    public StringBuffer insert(int offset,String str):將當前str字串添加到指定位置處,它返回字串緩衝區本身

(5)StringBuffer的刪除功能:
public StringBuffer deleteCharAt(int index):移除指定位置處的字元..
public StringBuffer delete(int start,int end):移除從指定位置處到end-1處的子字串...
(6)StringBuffer的反轉功能:
public StringBuffer reverse() :將緩衝區中的字元序列反轉取代,返回它(字串沖)本身
(7) StringBuffer的截取功能:
public String substring(int start):從指定位置開始截取,預設截取到末尾,傳回值不在是緩衝區本身,而是一個新的字串
public String substring(int start,int end) :從指定位置開始到指定位置結束截取,包前不包後,傳回值不在是緩衝區本身,而是一個新的字串
(8)StringBuffer的替換功能:
public StringBuffer replace(int start,int end,String str)
從指定位置到指定位置結束,用新的str字串去替換,傳回值是字串緩衝區本身
注意:jdk5以後的特性:自動拆裝箱
int---Interger(是int類型的封裝類類型) 需要將int--->String
Interger--int:自動拆箱

char---Character: 需要char--String

為什麼要類和類之間轉換

要將A類類型轉換成B類型,為了使用B類的功能

有時候,有需要將B類轉換成A類,可能需求需要的是A類型

String和StringBuffer之間的相互轉換
(五)Integer類
(1) Intege是int類型的封裝類類型
Integer提供了靜態功能:
public static String toBinaryString(int i)
public static String toOctalString(int i)
public static String toHexString(int i)

基本類型對應都有一個保證類型,目的就為了將基礎資料型別 (Elementary Data Type)可以String類型之間進行互相轉換

  • byte Byte
  • short Short
  • int Integer (講)
  • long Long
  • float Float
  • double Double
  • char character (講)
  • boolean Boolean
    (2)Integer的構造方法:
    public Integer(int value)
    public Integer(String s)
    (3)如何將int轉換為String類型
    valueOf(int i) ;
    將String轉換為int類型
    static int parseInt(String s);
    (4)JDK5 以後提供了自動拆裝箱
    可以將Integer-->拆箱 int類型
    可以將int類型--->裝箱 Integer類型

    JDK5 還提供了哪些特性:
    泛型,可變參數,增強for迴圈(在集合中)等等..

    JDK8特性:
    Stream流 --> 運算式
    (六)Character類
    (1)Character 類在對象中封裝一個基本類型 char 的值。Character 類型的對象包含類型為 char 的單個欄位。
    以確定字元的類別(小寫字母,數字,等等),
    構造方法:
    public Character(char value)
    (2)Character類的判斷功能:
    public static boolean isDigit(char ch)確定指定字元是否為數字。
    public static boolean isLowerCase(int ch): 確定是否是小寫字母字元
    public static boolean isUpperCase(int ch):確定是否大寫字母字元

    (3) 兩個轉換功能:
    public static int toLowerCase(int codePoint)
    public static int toUpperCase(int codePoint)
    (六)數組進階部分
    (1)冒泡排序: 兩兩比較,大的往後放,第一次比較完畢最大值出現在最大索引處....
    (2)選擇排序: 用0索引對應的元素依次後面索引對應的元素進行比較, 1索引..... 小的資料往前方法,就可以得到一個排好序的數組...
    (3)數組中的元素尋找法(基本尋找法)

    折半尋找(二分尋找) :數組一定是有序
    分析:
    A:定義最小索引和最大索引
    B:計算中間索引
    C:中間索引對應的元素和需要尋找的元素比較
    相等,直接返回中間索引
    不相等:
    大了,左邊找
    max = mid -1 ;
    小了,右邊找
    min = mid + 1 ;
    E:重新計算中間索引 ,回到B繼續尋找

Java基礎(五)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.