一李命、二維數(shù)組
1、定義:
箫老。所謂的二維數(shù)組就是在數(shù)組中存放數(shù)組
封字。外層數(shù)組中存儲(chǔ)的是數(shù)組的引用
2、初始化
耍鬓。靜態(tài)初始化
阔籽。先指定數(shù)組中的內(nèi)容,長(zhǎng)度由jvm自定判斷
牲蜀。數(shù)據(jù)類(lèi)型【】【】 數(shù)組名 = new 數(shù)組類(lèi)型【】【】{{元素笆制,
元素},{元素涣达,元素}}
在辆。數(shù)據(jù)類(lèi)型【】【】數(shù)組名 = {{元素,元素}度苔,{元素匆篓,元素}}
。動(dòng)態(tài)初始化
寇窑。先指定數(shù)組的長(zhǎng)度鸦概,jvm會(huì)給數(shù)組附上默認(rèn)值
。數(shù)據(jù)類(lèi)型【】【】數(shù)組名 = new 數(shù)組類(lèi)型【數(shù)組的長(zhǎng)度】【數(shù)
組的長(zhǎng)度】
3疗认、演示
public static void main(String[] args){
int [][] arrs = {{2,3},{3,5},{3,4}};
for(int i = 0; i< arrs.lenrth ; i++){
//獲取一個(gè)子數(shù)組完残,變量數(shù)組中的內(nèi)容
for(int j = 0 ;j<arr[i].lenrth ; j++){
System.out.println(arrs[i][j]+ "");
}
System.out.println();
}
}
二、權(quán)限修飾符
1横漏、什么是權(quán)限修飾符
。權(quán)限修飾符是為了確定類(lèi)或者成員的使用范圍
2熟掂、java中權(quán)限修飾符
缎浇。private :本類(lèi)中
。默認(rèn)(什么都不寫(xiě)):當(dāng)前包下(文件夾)都能使用
赴肚。protected :本類(lèi)中素跺,當(dāng)前包下 ,別的包的子類(lèi)中(子父類(lèi)調(diào)
用)
誉券。public : 當(dāng)前項(xiàng)目下任意使用 別的包下任意使用
三指厌、java中的包
1、定義:
踊跟。其實(shí)就是路徑踩验,和電腦中的文件夾一個(gè)意思,java中的類(lèi)名前要加上
包名才是完整的類(lèi)的路徑。記谆丁:java主程序運(yùn)行的地方就算作根路徑
2牡借、導(dǎo)入包
。導(dǎo)入包的兩個(gè)方式:
袭异。在類(lèi)的前面寫(xiě)上包名
钠龙。使用import關(guān)鍵字在類(lèi)的上方導(dǎo)入
。注意:如果是用*號(hào)導(dǎo)入的話御铃,當(dāng)前類(lèi)和導(dǎo)入的包下有相同的類(lèi)碴里,默認(rèn)
使用本包下的
3、注意:
上真。程序中不能出現(xiàn)兩個(gè)包名類(lèi)名都相同的類(lèi)
并闲。無(wú)法使用import關(guān)鍵字導(dǎo)入兩個(gè)名稱(chēng)相同的類(lèi),因?yàn)榫幾g器無(wú)法分清
你到底要用哪個(gè)
四谷羞、Object類(lèi)
1帝火、定義:
。所有類(lèi)的基類(lèi)/根類(lèi)
湃缎。所有的類(lèi)都是直接或者間接繼承 Object類(lèi)
2犀填、常用方法
。哈希算法在java中:通過(guò)hash算法將java中對(duì)象再內(nèi)存中地址轉(zhuǎn)成
一個(gè)數(shù)值嗓违,便于識(shí)別和比較
九巡。hashCode()
.public int hashCode()
.返回該對(duì)象的哈希碼值。默認(rèn)情況下蹂季,該方法會(huì)根據(jù)對(duì)象的地址來(lái)
計(jì)算
冕广。不同對(duì)象的,hashCode()一般來(lái)說(shuō)不會(huì)相同偿洁。但是撒汉,同一個(gè)對(duì)象
的hashCode()值肯定相同。
涕滋。toString()
睬辐。原生的toString方法中到底返回了什么呢?當(dāng)前對(duì)象的類(lèi)型的全類(lèi)
名+@+地址值轉(zhuǎn)成的hash值的16進(jìn)制表現(xiàn)形式
宾肺。public String toString()
溯饵。返回該對(duì)象的字符串表示
。默認(rèn)的二分法返回的數(shù)據(jù)一般對(duì)我們沒(méi)有意義锨用,建議重寫(xiě)
丰刊。JavaBean中一定要去重寫(xiě),別的類(lèi)中重寫(xiě)的概率很低
3增拥、equals()
啄巧。比較當(dāng)前對(duì)象和指定對(duì)象內(nèi)容是否“相等”
寻歧。默認(rèn)情況下比較的地址值是否相等、
public static void main(String[] args){
Demo demo1 = new Demo();
Demo demo2 = new Demo();
boolean flg = demo1.equals(demo2);
System.out.println(flg);//結(jié)果為false
}
棵帽。在我們的日常邏輯中熄求,比較地址值是否相等沒(méi)有意義,建議重寫(xiě)(重
寫(xiě)之后比較的就是類(lèi)中的成員變量的值是否一樣)
4逗概、==和equals的區(qū)別
弟晚。==是一個(gè)比較運(yùn)算符號(hào),既可以比較基本數(shù)據(jù)類(lèi)型逾苫,也可以比較引用
數(shù)據(jù)類(lèi)型卿城,基本數(shù)據(jù)類(lèi)型比較的是值,引用數(shù)據(jù)類(lèi)型比較的是地址值
铅搓。equals方法是一個(gè)方法瑟押,只能比較引用數(shù)據(jù)類(lèi)型,所有的對(duì)象都會(huì)繼
承Object類(lèi)中的方法星掰,如果沒(méi)有重寫(xiě)object類(lèi)中的equals方法多望,equals
方法和==號(hào)比較引用數(shù)據(jù)類(lèi)型無(wú)區(qū)別,重寫(xiě)后的equals方法比較的是對(duì)
象中的屬性
氢烘。equals()相等的兩個(gè)對(duì)象hashCode()一定相同怀偷,equals不等的
兩個(gè)對(duì)象,hashCode()也有可能相同
播玖。建立在equals和hashCode同步重寫(xiě)的情況下
5椎工、getClass()
。public final Class getClass()
蜀踏。返回此對(duì)象的類(lèi)维蒙,可以借由字節(jié)碼獲取到類(lèi)所有的基礎(chǔ)結(jié)構(gòu)屬性
。演示獲取類(lèi)名
public static void main(String[] args){
Demo demo = new Demo();
String clazzName = demo.getClass().getName();
Sytem.out.println("clazzName");//結(jié)果:com.qianfeng.Demo
}
六果覆、String類(lèi)
1颅痊、定義:
。String類(lèi)代表字符串随静。java程序中的所有字符串字面值(如“abc”)
都作為此類(lèi)的實(shí)例實(shí)現(xiàn)八千。我們可以將字符串看做是String,但是嚴(yán)格
意義上來(lái)說(shuō)燎猛,String還是一個(gè)類(lèi),只是比較特殊罷了
2照皆、特殊性:
重绷。String 類(lèi)型的變量可以引用地址
。String類(lèi)型的變量可以直接指向常量
膜毁。String 對(duì)象的長(zhǎng)度是不可變的昭卓,如果兩個(gè)字符串拼接成一個(gè)字符
串愤钾,其實(shí)是創(chuàng)建了一個(gè)新的字符串對(duì)象
public static void main(String[] args){
String str = new String();//指向地址值
String str2 = “abc”;//指向常量
}
3、常用的構(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(String original)敌土;把字符常量值轉(zhuǎn)成字符串
4镜硕、常用的判斷方法
。boolean equals(Object obj);比較字符串的內(nèi)容是否相同返干,區(qū)分
大小寫(xiě)
兴枯。boolean equalslgnoreCase(String str);比較字符串的內(nèi)容是否
相同,忽略大小寫(xiě)
矩欠。boolean contains (String str);判斷大字符串中是否包含小字符
串
财剖。boolean startsWith(String str);判斷字符串是否已某個(gè)指定的字
符串開(kāi)頭
。boolean endsWith(String str);判斷字符串是否已某個(gè)指定的字
符串結(jié)尾
癌淮。boolean isEmpty();判斷字符串是否為空
躺坟。案例
。需求:模擬登錄该默,給三次機(jī)會(huì)瞳氓,并提示還有幾次
。用戶(hù)名和密碼都是admin
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int i = 1;
while(i<=3){
System.out.println("請(qǐng)輸入用戶(hù)名");
String name = sc.nextLine();
System.out.println("請(qǐng)輸入密碼");
String password = sc.nextLine();
if("admin".equals(name)&&"admin".equals(password)){
System.out.println("恭喜你栓袖,登陸成功");
break;
}
System.out.println("用戶(hù)名或密碼錯(cuò)誤匣摘,請(qǐng)你重新登錄,你還有"+ (3-i)+"次登錄機(jī)會(huì)");
i++;
}
scanner.close();
}
5裹刮、常用的獲取方法
音榜。int length();獲取字符串的長(zhǎng)度
。char charAt(int index);獲取指定索引位置的字符
捧弃。int indexOf(int ch);返回指定字符在此字符串中第一次出現(xiàn)處的索
引赠叼,ch是字符的碼表值
。int indexOf(String str)违霞;返回指定字符串在此字符串中第一次出
現(xiàn)處的索引
嘴办。int indexOf(int ch ,int fromIndex);返回指定字符在此字符串中從
指定位置后第一次出現(xiàn)處的索引
。int indexOf(String str , int fromIndex);返回指定字符串在此字符
串中從指定位置后第一次出現(xiàn)處的索引
买鸽。int lastIndexOf 同上
涧郊。String substring (int start);從指定位置開(kāi)始復(fù)制字符串,默認(rèn)到
末尾
眼五。String substring(int start , int end);從指定位置開(kāi)始到指定位置
結(jié)束復(fù)制字符串
6妆艘、常用的轉(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類(lèi)型的數(shù)據(jù)轉(zhuǎn)成字符串
。注意:String類(lèi)的valueOf方法可以把任意類(lèi)型的數(shù)據(jù)轉(zhuǎn)成字
符串
汽煮。String toLowerCase();把字符串轉(zhuǎn)成小寫(xiě)
搏熄。String toUpperCase();把字符串轉(zhuǎn)成大寫(xiě)
。String concat(String str);把字符串拼接
7逗物、替換方法
搬卒。String replace(char old ,char new );將字符串中的一部分字符
用新的代替
。String replace(String old ,String new );將字符串中的一部分字
符串用新的代替
8翎卓、切割方法
契邀。String[ ] split(String regex);按照規(guī)則來(lái)切割字符串
。String [ ] split(String regex ,int limit);按照規(guī)則來(lái)切割字符串
limit表示總共切成幾段(也就是數(shù)組的長(zhǎng)度)
9失暴、其他的方法:
坯门。trim();去除字符串前后的空格
逗扒。int compareTO(String anotherString );按字典順序比較兩個(gè)字
符串(大小寫(xiě))
古戴。int compareTolgnoreCase(String str);安字典順序比較兩個(gè)字符
串(忽略大小寫(xiě))