java 参数代替所有类_Java中的常用类
1? ? ? 常用類NO13
【
Int????Interger
short??Short
byte???Byte
double?Double
float???Float
Boolean?Boolean
Char????Character
】
封裝類都是引用類型,并且也具有對應(yīng)基本數(shù)據(jù)類型的數(shù)學(xué)運(yùn)算特征
裝箱:將基本數(shù)據(jù)類型的值裝進(jìn)封裝類對象中去,也可以說把基本數(shù)
據(jù)類型轉(zhuǎn)為封裝類型
封裝類名.valueOf(基本數(shù)據(jù)類型的值)
這個(gè)方法是靜態(tài)方法,參數(shù)是基本數(shù)據(jù)類型的值,返回對應(yīng)的封裝類型對象
【Integeri2 = Integer.valueOf(2);? //屬于類的靜態(tài)方法】
拆箱:
【Integerinteger = Integer.valueOf(1000);//裝箱
inti = integer.intValue();//拆箱與對象相關(guān)的實(shí)例方法】
把封裝類對象轉(zhuǎn)換為基本數(shù)據(jù)類型變量,這個(gè)過程就像把一個(gè)箱子(封裝類)拆開,拿出里面裝著的基本數(shù)據(jù)類型變量(將封裝類型轉(zhuǎn)換為基本數(shù)據(jù)類型)
xxxValue()不是靜態(tài)方法,用封裝類對象去調(diào)用,返回一個(gè)基本數(shù)據(jù)類型的值,就是封裝了值。
自動(dòng)裝箱:
【Integerinteger = 1000;? //自動(dòng)裝箱】
直接將基本數(shù)據(jù)類型的值賦給對應(yīng)的封裝類的對象
這種方式和valueOf(…)方法完全一樣
自動(dòng)拆箱:
【Integerinteger =Integer.valueOf(10000);
//直接將封裝類型對象賦給對應(yīng)的基本數(shù)據(jù)類型變量
inti = integer;】
直接將封裝的對象賦給對應(yīng)的基本數(shù)據(jù)類型的變量
這種方式和xxxValue()完全一樣
用構(gòu)造方法也能裝箱,但沒有緩存效果,一般不會這么用
靜態(tài)方法parseXXX(String? s)用來將字符串轉(zhuǎn)換為數(shù)字類型
【/*String s ="12345";
//將字符串轉(zhuǎn)換為整型
int i = Integer.parseInt(s);】
toString()重寫了,返回的是封裝的值得字符串形式
靜態(tài)方法toString(XXX?X)將基本數(shù)據(jù)類型轉(zhuǎn)換為字符串
靜態(tài)方法toHexString(XXX? X))?//十六進(jìn)制
靜態(tài)方法toBinaryString(XXX? X)//二進(jìn)制
靜態(tài)方法toOctalString(XXX? X)//八進(jìn)制
靜態(tài)方法.toString(i, 2)//靈活,任何進(jìn)制轉(zhuǎn)換
reverse()
【注意:
//裝箱或自動(dòng)裝箱會將-128到127進(jìn)行緩存,這個(gè)范圍的封裝
//類對象只會有一份
//緩存,靜態(tài)區(qū)域
Integer i3 = 100;
Integer i4 = 100;//i3和i4都在靜態(tài)區(qū)中緩存的封裝類對象
System.out.println(i3== i4);???? //返回true
Integer i5 = newInteger(100);
//i5和i6指向堆區(qū)中new出來不同的對象,不可能相同
Integer i6 = newInteger(100);
System.out.println(i5 == i6);??? //返回false
】
字符串(字符串是常量值)
字符串對象在創(chuàng)建后不能再更改
equals比較兩個(gè)字符串是否相同,大小寫敏感
equalsIgnoreCase字符串比較時(shí)無視大小寫
trim()去掉首尾的空格和回車換行字符,生成一個(gè)新的字符串(原來字符串對象并沒有被改變)
在實(shí)際開發(fā)中永遠(yuǎn)用equals,
可以使用String?contain(String s)參數(shù)是要和當(dāng)前字符串拼接的字符串,返回的是拼接后新的字符串(原來的兩個(gè)字符串都沒有變
也可以進(jìn)行+來拼接)
如果大量的字符串拼接,應(yīng)該使用StringBuilder、StringBuffer<>,可以避免產(chǎn)生大量的中間字符串
Stringsubstring(int?start):從參數(shù)中的下標(biāo)開始,獲取子字符串(原來的字符串不變,返回的字符串是新的字符串)
Length()可以獲取字符串的長度
char[]toCharArray()返回這個(gè)字符串的字符數(shù)組
charcharAt(int index)返回某個(gè)位置的字符
intindexOf(char c)根據(jù)字符獲取下標(biāo)
intindexOf(char c,int fromIndex)根據(jù)字符獲取下標(biāo)
int? indexOf(String? s)
int? indexOf(String? s,int fromIndex)
booleancontain(String s)判斷當(dāng)前字符串是否以參數(shù)中的字符串(包含)
booleanstartsWith(String? s)判斷當(dāng)前字符串是否以參數(shù)中的字符串開頭
booleanendsWith(String? s)判斷當(dāng)前字符串是否以參數(shù)中的字符串結(jié)尾
String[]? split(String?s)將調(diào)用這個(gè)方法的字符串以參數(shù)中的字符串為分隔符(
暫時(shí)這么理解,其實(shí)是正則表達(dá)式),拆分成一個(gè)字符串?dāng)?shù)組返回出來()
正則表達(dá)式:
【不是語言也不是框架,只是一種格式,可以用來判斷一個(gè)字符串是否滿足某種格式】
boolean matches (String? regex):判斷當(dāng)前字符串是否匹配參數(shù)中的正則表達(dá)式字符串
拿Integer來說,int intValue()將調(diào)用這個(gè)方法的封裝類對象拆箱,并拿出其中的基本數(shù)據(jù)類型變量,并返回
自動(dòng)拆箱:通過=將封裝類型對象賦給基本數(shù)據(jù)類型變量,這樣可以自動(dòng)將封裝類型拆箱成基本數(shù)據(jù)類型,相當(dāng)于隱式調(diào)用了intValue()
字符串轉(zhuǎn)數(shù)字:
Integer的靜態(tài)方法int parseInt(String str)可以將表示數(shù)字的字符串str轉(zhuǎn)為int,如果參數(shù)字符串不是有效的數(shù)字形式,那么會拋出NumberFormatException
Math:數(shù)學(xué)工具類,有很多靜態(tài)方法,其中都是靜態(tài)方法和靜態(tài)屬性
random()生成[0,1)之間的隨機(jī)數(shù)
round()四舍五入
floor(double a)返回小于等于a的最大整數(shù)值
ceil(double a)返回大于等于a的最小整數(shù)值
abs()取絕對值
pow(double a,double b)a的b次方
sqrt(double a)a的平方根
max
min
PI圓周率
E自然對數(shù)底數(shù)
Date日期類
new Date()創(chuàng)建表示當(dāng)前時(shí)間的日期對象
toString()返回默認(rèn)格式日期字符串
getTime()返回絕對時(shí)間毫秒數(shù)
SimpleDateFormat簡單日期格式類,可以用來格式化輸出日期對象,也
可以將一個(gè)格式化了的日期轉(zhuǎn)化回一個(gè)日期對象
Date d = new Date();
SimpleDateFormat f =new SimpleDateFormat("yy-MM-dd hh:mm:ss")
String s =f.format(d);格式化日期成字符串
Date date =f.parse(str);解析成日期對象
Calendar
String:字符串
boolean equals(Object o)比較當(dāng)前字符串和參數(shù)中的字符串是否相等
booleanequalsIgnoreCase(String str)忽略大小寫的字符串比較
int compareTo(String)按照字典順序比較當(dāng)前字符串和參數(shù)中的字符串
char charAat(int index)返回下標(biāo)為index位置的字符()從0開始
int length()字符串的長度
StringsubString(int index)返回一個(gè)從index位置開始的子字符串
Stringconcat(String str)把當(dāng)前的字符串和參數(shù)字符串連接起來,生成一個(gè)新的字符串返回
在需要大量拼接字符串時(shí),這種方式(以及+的方式)會生成大量字符串對象,浪費(fèi)內(nèi)存,這時(shí)我們可以使用StringBuilder或StringBuffer來拼接字符串
StringBuffer:內(nèi)置一個(gè)緩沖,可以不添加字符串而不用生成新的字符串對象
append(String str)? 在緩沖后添加字符串
toString()????????? 最終生成一個(gè)拼接好了的字符串
StringBuilder:和StringBuffer基本一樣,只是StringBuffer線程安全、StringBuilder線程不安全,但效率高
String[] split(String str)拆分當(dāng)前字符串,以參數(shù)作為分割符號,返回一個(gè)拆分后的字符串?dāng)?shù)組(如果要用.作為分割符,必須轉(zhuǎn)義,用\\.)
boolean contains(CharSequence s)當(dāng)前字符串是否包含參數(shù)中的字符序列
boolean startsWith當(dāng)前字符串是否以參數(shù)中字符串開始
boolean endsWith當(dāng)前字符串是否以參數(shù)中字符串結(jié)尾
Date:日期類
構(gòu)建???? new Date()?? 構(gòu)建的是當(dāng)前的日期時(shí)間
toString()? 返回一個(gè)表示這個(gè)日期時(shí)間的字符串
long getTime()?? 返回從1970年1月1日0點(diǎn)00分到這個(gè)日期時(shí)間的毫秒數(shù)
Canlendar:日歷類
get()可以具體獲得某個(gè)值(年、月、日...)
set(int field,intvalue)將某個(gè)屬性(年、月、日)改為指定值
add(int field,intvalue)將某個(gè)屬性(年、月、日)加上指定值
SimpleDateFormat日期格式化
1:用“==”判斷字符串是否相等,實(shí)質(zhì)是判斷引用是否指向同一對象
【
//用"XXX"方式創(chuàng)建的字符串對象位于靜態(tài)區(qū)常量池
Strings1 = "Android";//第一次出現(xiàn)會在常量池里創(chuàng)建
Strings2 = "android";//第二次出現(xiàn)會直接使用常量池中
//s1和s2是否指向同一個(gè)對象,這里指向同一個(gè)
System.out.println(s1== s2);
//用new的方式創(chuàng)建的字符串對象位于堆區(qū),new一次創(chuàng)建一次
Strings3 = new String("android");//第一次創(chuàng)建
Strings4 = new String("android");//第二次還要?jiǎng)?chuàng)建一個(gè)
System.out.println(s3== s4);?? //false
】
2:比較封裝類對象可以使用equals
【
Integer i1 =1000;
Integer i2 = 1000;
System.out.println(i1.equals(i2));//返回true
】
3:整型封裝類與進(jìn)制間的轉(zhuǎn)換
【
int i = 11;
Integer.toBinaryString(i)?? //二進(jìn)制
Integer.toHexString(i)???? //十六進(jìn)制
Integer.toOctalString(i)??? //八進(jìn)制
Integer.toString(i,2)????? //靈活,任何進(jìn)制轉(zhuǎn)換
】
4:切割字符串與數(shù)組的聯(lián)合運(yùn)用
【
/*二.將給定字符串str="1,2,3!4,5,6,0!7,8,9"存入二維數(shù)組中。
String str ="1,2,3!4,5,6,0!7,8,9";
String[]outer = str.split("!");
int[][]array = new int[outer.length][];
for(inti=0;i
String[]inner = outer[i].split(",");
array[i]=newint[inner.length];
for(intj=0;j
array[i][j]=Integer.parseInt(inner[j]);
}
String str ="1,2,3!4,5,6,0!7,8,9";
String[]outer = str.split("!");
String[][]array = new String[outer.length][];
for(inti=0;i
String[]inner = outer[i].split(",");
array[i]= inner;
}
】
5:字符串綜合實(shí)例操作
【
/*三.
1、讓用戶不停輸入字符串并拼接起來,用逗號分隔,如果輸入exit則停止輸
入,最后拼成一個(gè)長字符串,使用StringBuilder
2、將這個(gè)拼成的長字符串中所有的數(shù)字替換成*,并打印出來
3、打印這個(gè)字符串的最后3個(gè)字符*/
public staticvoid main(String[] args) {
Scanners = new Scanner(System.in);
StringBuilderb = new StringBuilder();
while(true) {
Stringline = s.nextLine();
if(line.equals("exit"))
break;
b.append(line);
b.append(",");
}
Stringr = b.toString();
System.out.println(r);
System.out.println(r.replaceAll("[0-9]","*"));
System.out.println(r.substring(b.length()- 3));
}
】
6:日歷時(shí)間計(jì)算小練習(xí)
【/*四.讓用戶輸入三個(gè)數(shù)字表示年、月、日,輸出這年月日代表的日期是星期幾*/
public staticvoid main(String[] args) {
Scanners = new Scanner(System.in);
intyear = s.nextInt();
intmonth = s.nextInt();
intday = s.nextInt();
Calendarc = Calendar.getInstance();
c.set(Calendar.YEAR,year);
c.set(Calendar.MONTH,month - 1);
c.set(Calendar.DAY_OF_MONTH,day - 1);
System.out.println(c.get(Calendar.DAY_OF_WEEK));
}
】
總結(jié)
以上是生活随笔為你收集整理的java 参数代替所有类_Java中的常用类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软认知服务应用秘籍 – 与机器人聊知识
- 下一篇: java ftp获取文件名的方法_小猿圈