java中基本數(shù)據(jù)類型與Object的關(guān)系說(shuō)明
基本數(shù)據(jù)類型與Object的關(guān)系
我知道大家是不是都聽(tīng)說(shuō)過(guò)Object是所有類型的基類,但是這句話其實(shí)并不是正確的,因?yàn)閖ava中基本數(shù)據(jù)類型跟Object是沒(méi)有任何關(guān)系的.
這里舉一個(gè)例子

這里在進(jìn)行調(diào)用swap方法時(shí),是不能直接將int類型傳給swap(Object obj)方法的,因?yàn)镺bject其實(shí)跟基本數(shù)據(jù)類型沒(méi)有一點(diǎn)關(guān)系,這個(gè)時(shí)候a就發(fā)現(xiàn)我們類型不匹配, 所以就自動(dòng)包裝成了Integer類型了, 這個(gè)時(shí)候就能跟Object產(chǎn)生聯(lián)系了, 才能成功調(diào)用swap方法了.
Object、基本數(shù)據(jù)類型的包裝類
Object類
Object類的基本方法:
getClass()、hashcode()、equals()、clone()、finalize()、toString()
public final native Class<?> getClass() //返回此 Object 運(yùn)行時(shí)的類
public native int hashCode() //返回對(duì)象的哈希碼
public boolean equals(Object obj) //判斷其他對(duì)象與此對(duì)象是否“相等”
protected native Object clone() throws CloneNotSupportedException //創(chuàng)建并返回此對(duì)象的一個(gè)副本
public String toString() //返回對(duì)象的字符串表示
protected void finalize() throws Throwable {} //垃圾回收時(shí)調(diào)用該方法
public final native void notify() //喚醒在此對(duì)象監(jiān)視器上等待的單個(gè)線程
public final native void notifyAll() //喚醒在此對(duì)象監(jiān)視器上等待的所有線程
public final native void wait(long timeout) throws InterruptedException //使當(dāng)前對(duì)象的線程等待 timeout 時(shí)長(zhǎng)
public final void wait(long timeout, int nanos) throws InterruptedException //使當(dāng)前對(duì)象的線程等待 timeout 時(shí)長(zhǎng),或其他線程中斷當(dāng)前線程
public final void wait() throws InterruptedException //使當(dāng)前對(duì)象的線程等待基本數(shù)據(jù)類型
byte、int、short、long、double、float、boolean、char;
對(duì)應(yīng)的包裝類型也有八種:
Byte、Integer、Short、Long、Double、Float、Character、Boolean;(已final,不可重寫)
將基本數(shù)據(jù)類型 轉(zhuǎn)成 對(duì)象包裝類型------裝箱,反之為拆箱
public static void main(String[] args) {
int num1 = 1;
//將基本數(shù)據(jù)類型裝箱成對(duì)象包裝類型,編譯器內(nèi)置方法
Integer num2 = num1;
Integer num3 = 3;
//將對(duì)象數(shù)據(jù)類拆箱,該方法是java.lang.Number類中的
int num4 = num3;
}繼承關(guān)系:
Number類是 基本數(shù)據(jù)類型包裝類 的父類
Number類:
package java.lang;
public abstract class Number implements java.io.Serializable {
public abstract int intValue(); \\拆箱方法
public abstract long longValue();
public abstract float floatValue();
public abstract double doubleValue();
public byte byteValue() {
return (byte)intValue();
}
public short shortValue() {
return (short)intValue();
}
private static final long serialVersionUID = -8742448824652078965L;
}Integer類常用方法:
parseInt(String s)將字符串轉(zhuǎn)換成InttoString()轉(zhuǎn)換成字符串- 還有一種方法,任何類型+“ ” 即變成String類型
max()、min()。兩個(gè)int的比較- 兩個(gè)靜態(tài)成員變量:MAX_VALUE;MIN_VALUE(在其他數(shù)值類型中也有相同變量)
compare方法,比較兩個(gè)數(shù)。返回-1、0、1
public class BasicNumber {
public static void main(String args[]) {
//最大最小值
int intmax=Integer.MAX_VALUE;
int intmin=Integer.MIN_VALUE;
System.out.println(intmax);System.out.println(intmin);
//String to Int
String string="55";
int testInt=100;
System.out.println(Integer.parseInt(string)+12);//parseInt方法
System.out.println(Integer.toString(testInt));//toString方法
System.out.println(String.valueOf(testInt));//valueOf方法
System.out.println(testInt+"");//+""的隱式轉(zhuǎn)換
//查看int占用的位數(shù)
System.out.println(Integer.SIZE);
//compare方法
int intbig=17;
int intsmall=6;
System.out.println(Integer.compare(intsmall, intbig));
}
}character類
Character類的判斷功能
public static boolean isDigit(char ch)
確定指定字符是否為數(shù)字。
public static boolean isLetter(charch)
確定指定字符是否為字母。
public static boolean isLowerCase(char ch)
確定是否是小寫字母字符
public static boolean isUpperCase(char ch)
確定是否大寫字母字符
兩個(gè)轉(zhuǎn)換功能
public static int toLowerCase(char ch)
使用取自 UnicodeData 文件的大小寫映射信息將字符參數(shù)轉(zhuǎn)換為小寫。
public static int toUpperCase(char ch)
使用取自 UnicodeData 文件的大小寫映射信息將字符參數(shù)轉(zhuǎn)換為大寫。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
tk-mybatis整合springBoot使用兩個(gè)數(shù)據(jù)源的方法
單純的使用mybaits進(jìn)行多數(shù)據(jù)配置網(wǎng)上資料很多,但是關(guān)于tk-mybaits多數(shù)據(jù)源配置沒(méi)有相關(guān)材料,本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下2021-12-12
Java通過(guò)正則表達(dá)式獲取字符串中數(shù)字的方法示例
最近工作中遇到了一個(gè)需求,需要利用java獲取字符串中的數(shù)字,嘗試幾種方法后發(fā)現(xiàn)利用正則表達(dá)式實(shí)現(xiàn)最為方法,下面這篇文章就主要介紹了Java通過(guò)正則表達(dá)式獲取字符串中數(shù)字的方法,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下。2017-03-03
Java實(shí)現(xiàn)大數(shù)運(yùn)算的實(shí)例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)大數(shù)運(yùn)算的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
Java SSM實(shí)現(xiàn)前后端協(xié)議聯(lián)調(diào)詳解上篇
首先我們已經(jīng)知道,在現(xiàn)在流行的“前后端完全分離”架構(gòu)中,前后端聯(lián)調(diào)是一個(gè)不可能避免的問(wèn)題,這篇文章主要介紹了Java SSM實(shí)現(xiàn)前后端協(xié)議聯(lián)調(diào)過(guò)程2022-08-08
Java中FileOutputStream流的write方法
這篇文章主要為大家詳細(xì)介紹了Java中FileOutputStream流的write方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08

