00. 多變量聲明并初始化
- 同時(shí)聲明同類(lèi)型的多變量
String a = "Hello", c = "hello";
int x = 5, y = 5;
01. 變量類(lèi)型
01.0 浮點(diǎn)類(lèi)型
- 默認(rèn)是double類(lèi)型,如果需要指定float類(lèi)型,可以
float f = 1.0F;
01.1 類(lèi)型裝換
- 如果將大的類(lèi)型轉(zhuǎn)為小的類(lèi)型,可以用強(qiáng)制轉(zhuǎn)換,但是會(huì)丟失精度。
01.2 引用類(lèi)型
- 注意:類(lèi),String,接口,數(shù)組這些都屬于引用類(lèi)型。
02. 運(yùn)算符
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-648526.html
02.0 除法運(yùn)算注意點(diǎn)
-
1/2 = 0
分析:除法按照最大的類(lèi)型顯示。這里兩個(gè)數(shù)都是Int類(lèi)型,所以會(huì)舍棄掉小數(shù) - 除法是沒(méi)有四舍五入的。
-
1.0/2 = 0.5
或者1/2.0 = 0.5
02.1 賦值運(yùn)算符注意點(diǎn)
- 使用賦值運(yùn)算符,數(shù)據(jù)類(lèi)型不會(huì)發(fā)生變化
- eg:
byte b1=10; b1 = b1+10;
這個(gè)就會(huì)犯大類(lèi)型轉(zhuǎn)小類(lèi)型的錯(cuò)誤 - eg:
b1 += 10;
02.2 短路運(yùn)算符注意點(diǎn)
- 會(huì)根據(jù)第一個(gè)條件表達(dá)式的結(jié)果來(lái)判斷,是否執(zhí)行第二個(gè)條件表達(dá)式
- 驗(yàn)證程序:(如果j變?yōu)榱?1,則代表后面判斷被執(zhí)行了)
int i=10,j=20;
boolean result = (i>10) && (++j>30);
System.out.println(result);
System.out.println(j);
03 抽象方法&&抽象類(lèi)
- 抽象方法:只聲明,沒(méi)有實(shí)現(xiàn)的方法
abstract 返回值類(lèi)型 方法名(參數(shù))
- 抽象類(lèi):不完整的類(lèi)
abstract class 類(lèi)名
- 抽象類(lèi)是無(wú)法直接構(gòu)造對(duì)象的,即
Person p = new Person()
這種對(duì)于抽象類(lèi)來(lái)說(shuō)是不行的。需要先繼承,在構(gòu)造:
class Chinese extends Person{……}
Chinese p = new Person();
- 類(lèi)中只要含抽象方法,這個(gè)類(lèi)就是抽象類(lèi)(要加abstract)
abstract class Person{……}
- 類(lèi)是抽象類(lèi),單它的方法不一定是抽象方法。
- final修飾的方法是不能被重寫(xiě)的,所以abstract和final不同時(shí)修飾
03.0 例子
abstract class Person{
public abstract void eat();
}
class Chinese extends Person{
public void eat(){
Sysout.out.println("使用筷子吃飯")
}
}
Chinese p = new Chinese();
p.eat();
04. 接口(interface)
- 語(yǔ)法:
interface 接口名稱(chēng){規(guī)則屬性,規(guī)則的行為}
- 接口是抽象的
- 屬性是靜態(tài)的,行為是抽象的
- 接口和類(lèi)是兩個(gè)層面的東西
- 接口可繼承其他接口
- 類(lèi)的對(duì)象需要遵循接口,在java中,則稱(chēng)之為實(shí)現(xiàn)(implement)。即:類(lèi)需要實(shí)現(xiàn)(多個(gè))接口。
04.0 案例
interface USBInterface{
}
// 下面的規(guī)則符合USBInterface,行為就是powerXXX();
// 接口中的行為powerXXX是抽象的
interface USBSupply extends USBInterface{
public void powerSupply();
}
interface USBReceive extends USBInterface{
public void powerReceive();
}
// 電腦類(lèi)中有兩個(gè)USB接口,接口的功能是提供電源
class Computer implements USBSupply{
public USBReceive usb1;
public USBReceive usb2;
public void powerSupply(){
System.out.println("電腦提供能源");
usb1.powerReceive();
usb2.powerReceive();
}
}
// 燈
class Light implements USBReceive{
public void powerReceive(){
System.out.println("電燈接受能源");
}
}
// main中實(shí)現(xiàn)
Computer c = new Computer();
Light light = new Light();
c.usb1 = light;
c.powerSupply();
05. Bean規(guī)范
- 類(lèi)要求必須含有無(wú)參,公共的構(gòu)造方法
- 屬性必須私有化,有提供getXXX(),setXXX()方法
06. 對(duì)象數(shù)組
- 聲明方式:類(lèi)型[] 變量 即:
String[] names
- 數(shù)組創(chuàng)建:new 類(lèi)型[容量] 即:
new String[3]
String[] names = new String[3];
// 或者聲明時(shí),直接賦值
String[] nums = {"1","3","5"};
07. 字符串類(lèi)
- 源于
java.lang.String
,系統(tǒng)自動(dòng)加載的
String name = "這是字符串";
07.0 比較
- 完全相等(包括大小寫(xiě))
a.equals(b)
- 相等(不考慮大小寫(xiě))
a.equalsIgnoreCase(b)
- 比較大小:
a.compareTo(b)
07.1 截?。╯ubstring)
String s = "01234 6789";
s.substring(0,3); //截取0-2,不包含3
s.substring(6);//只傳一個(gè)參數(shù),表示截取到末尾。6-9
07.2 分割(split)
String s = "01234 6789";
String[] s1 = s.split(" ");//按空格來(lái)分割字符串
System.out.println(s1.length);
for(String s2:s1){
System.out.println(s2);
}
07.3 去掉空格(trim)
- 這是去掉字符串首尾空格
String s = " H e l l o ,mygoodfriend ";
System.out.println(s.trim());
System.out.println("!"+s.trim()+"!");
07.4 替換(replace、replaceAll)
- 替換所有:replace
String s = "Hello World, World Li";
System.out.println(s.replace("World","Java");
- 按照自己的規(guī)則替換:replaceAll
如果我想將World,Li這兩個(gè)都替換成Java,就按下面操作:
String s = "Hello World, World Li";
System.out.println(s.replaceAll("World|Li","Java");
07.5 大小寫(xiě)轉(zhuǎn)換(toLowerCase、toUpperCase)
String s = "Hello mygoodfriend";
System.out.println(s.toLowerCase());
System.out.println(s.toUpperCase());
如果只想將username的第一個(gè)u變成大寫(xiě),怎么操作:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-648526.html
String name = "username";
String s1 = name.substring(0,1);
String s2 = name.substring(1);
System.out.println(s1.toUpperCase() + s2);
07.6 查找(charAt、indexOf)
- charAt:通過(guò)索引找到指定位置的字符
String s = "Hello, my friends";
System.out.println(s.charAt(0));
- indexOf:查找字符串第一次出現(xiàn)的下標(biāo)
String s = "Hello, my friends";
System.out.println(s.indexOf("my"));
- lastIndexOf:獲取字符串最后一次出現(xiàn)的下標(biāo)
String s = "Hello, my friends";
System.out.println(s.lastIndexOf("friends"));
07.7 判斷包含(contains())
- contains:判斷是否包含指定的字符串,返回布爾類(lèi)型
String s = "Hello, my friends";
System.out.println(s.contains("mygood"));
System.out.println(s.contains("friends"));
07.8 判斷空(isEmpty())
String s = "Hello";
System.out.println(s.isEmpty());
String str = "";
System.out.println(str.isEmpty());
08. 字符串StringBuilder
- 這個(gè)StringBuilder是為了優(yōu)化拼接操作時(shí)應(yīng)持續(xù)創(chuàng)建新的空間造成的利用率不高。
- StringBuilder 構(gòu)建字符串,是個(gè)類(lèi),提供了大量的字符串操作。
StringBuilder s = new StringBuilder();
for(int i=0;i<100;++i){
s.append(i);
}
System.out.println(s.toString());
- 上面代碼的效率就是比下面的效率高
String s = "";
for(int i=0;i<100;++i){
s = s+i;
}
System.out.println(s);
08.0 添加(append())
StringBuilder s = new StringBuilder();
s.append("abc");
08.1 轉(zhuǎn)成字符串(toString())
StringBuilder s = new StringBuilder();
s.append("abc");
System.out.println(s.toString());
08.1 長(zhǎng)度(length())
StringBuilder s = new StringBuilder();
s.append("abc");
System.out.println(s.length());
08.2 翻轉(zhuǎn)(reverse())
StringBuilder s = new StringBuilder();
s.append("abc");
System.out.println(s.reverse());
08.3 插入(insert())
StringBuilder s = new StringBuilder();
s.append("012");
System.out.println(s.insert(1,"dr")); // 在下標(biāo)為1的地方插入字符串dr
到了這里,關(guān)于00|Java中常見(jiàn)錯(cuò)誤或不清楚的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!