一砰苍、初識Java
1.Java既屬于編譯型語言铣除,又屬于解釋型語言
編譯型語言:在程序執(zhí)行之前,先進(jìn)行編譯烘嘱,下次運(yùn)行的時(shí)候不需要重新編譯
解釋型語言:運(yùn)行時(shí)才進(jìn)行編譯昆禽,每次運(yùn)行時(shí)都要進(jìn)行編譯蝗蛙,所以速度要比編譯型慢
而Java的編譯原理是先把Java源碼編譯成字節(jié)碼,通過虛擬機(jī)把字節(jié)碼解釋成機(jī)器碼醉鳖, 然后再執(zhí)行機(jī)器碼捡硅。通過Java的編譯原理和編譯型語言的定義及解釋型語言的定義可 以看的出來,Java語言既是編譯型語言也是解釋型語言盗棵。
2.Java是如何實(shí)現(xiàn)跨平臺的
每個(gè)平臺都有相應(yīng)的JVM(java虛擬機(jī))壮韭,通過JVM將字節(jié)碼進(jìn)行解釋(JVM本身并不具有跨平臺性)
3.JDK,JRE纹因,JVM
JDK:Java?Development?Kit?(Java開發(fā)工具包)
JRE:Java?Runtime?Environment?(Java運(yùn)行環(huán)境)
JVM:Java?Virtual?Machine(Java虛擬機(jī))
JDK包含JRE喷屋,JRE包含JVM
4.Java運(yùn)行環(huán)境配置
JAVA_HOME:JDK安裝目錄
PATH:%JAVA_HOME%\bin;
CLASSPATH:.;%JAVA_HOME%\lib; //若配置了classpath,可在任意目錄下運(yùn)行; 若沒有配置classpath瞭恰,則需cd到項(xiàng)目空間下的bin目錄運(yùn)行;運(yùn)行時(shí)屯曹,優(yōu)先classpath, 然后是當(dāng)前目錄
編譯命令:javac?java源文件
運(yùn)行命令:java?class文件(帶包名惊畏,不帶后綴)
二恶耽、Java的基礎(chǔ)語法
1.關(guān)鍵字
1、用于類和接口的聲明:class,?extends,?implements,?interface
2颜启、包引入和包聲明:import,?package
3偷俭、數(shù)據(jù)類型:byte,?boolean,?char,?double,?int,?long,?float,?short
4、某些數(shù)據(jù)類型的可選值:flase,?ture,?null
5缰盏、流程控制:break,?case,?continue,?default,?do,?else,?for,?if,?return,?switch,?while
6涌萤、異常處理:catch,?finally,?throw,?throws,?try
7、修飾符:abstract,?final,?native,?private,?protected,?public,?static,?synchronilzed,?transient,?volatitle
8乳规、操作符:instanceof
9形葬、創(chuàng)建對象:?new
10、引用:this,?supper
11暮的、方法返回類型:void
12笙以、保留字:const,?goto
2.標(biāo)識符
Java中的包、類冻辩、方法猖腕、參數(shù)、變量的名字恨闪,可以由任意順序的大小寫字母倘感、數(shù)字、下劃線(_)咙咽、美元符號($)組成老玛,但不能以數(shù)字開頭,不能是Java中的保留關(guān)鍵字。
3.變量
4.常量
5.注釋
1蜡豹、單行注釋
在注釋內(nèi)容前面加“//”麸粮,格式為:
代碼;??//注釋內(nèi)容
2、多行注釋
以斜杠加星號開頭镜廉,以星號加斜杠結(jié)尾弄诲。
/*
*注釋內(nèi)容
*/
3、文檔注釋
以斜杠加兩個(gè)星號開頭娇唯,以一個(gè)星號加斜杠結(jié)束齐遵。
/**
*
*?@author?admin
*
*/
三、數(shù)據(jù)類型
1.原始類型
a)布爾值?boolean
b)數(shù)值
i.整型(默認(rèn)類型為int)
1.byte(8位)
2.short(16位)
3.int(32位)
4.long(64位)
5.char(16位)
ii.浮點(diǎn)型(默認(rèn)類型為double)
1.Float(32位)
2.Double(64位)
2.引用類型
a)class(類)
b)interface(接口)
c)enum(枚舉)
d)array(數(shù)組)
3.Null類型
Java基礎(chǔ)數(shù)據(jù)類型不具有面向?qū)ο蟮奶攸c(diǎn)塔插,但是Java提供了八個(gè)包裝類梗摇,能夠把基本數(shù)據(jù) 類型轉(zhuǎn)化為引用數(shù)據(jù)類型。JDK5之后佑淀,包裝器類和基本數(shù)據(jù)類型之間可以直接轉(zhuǎn)換留美,稱為 自動的裝箱拆箱
四、流程控制
1.if...else(可以嵌套)
if(條件){
語句伸刃;
}else?if(條件){
語句;
}else{
語句逢倍;
}
2.Switch(執(zhí)行到break才會跳出switch捧颅,否則會一直執(zhí)行下去)
switch(條件){
case?條件1:
語句;
case?條件2:
語句较雕;
case?條件3:
語句碉哑;
default:
語句;
break亮蒋;
}
3.While(先判斷扣典,再執(zhí)行)
while(條件){
語句;
}
4.do...while(先執(zhí)行慎玖,再判斷)
do{
語句贮尖;
}while(條件)
5.for
for(初始條件;循環(huán)體;迭代體){
語句;
}
foreach
for(元素類型t?元素變量x?:?遍歷對象obj){
引用了x的java語句;
}
五趁怔、數(shù)組
a)聲明
i.int[]?arr;
ii.int?arr[];
b)初始化
i.靜態(tài)初始化湿硝,直接賦值?int[]?arr?=?{1,2,3}
ii.動態(tài)初始化?int[]?arr?=?new?int[length];
c)length屬性,下標(biāo)
d)常用方法
i.sort();//排序?默認(rèn)使用快速排序
ii.toString();//轉(zhuǎn)化為字符串
iii.copyOf(arr,length);?copyOfRange(arr,brgin,end);//拷貝數(shù)組
iv.equals(arr1,arr2)//判斷兩個(gè)數(shù)組是否相等
v.fill(arr,value)?//填充
e)
六润努、字符串
a)String
i.聲明
1.String?str?=“hello”;
2.String?str?=?new?String();
ii.主要工具類
1.length();//獲取字符串長度关斜,返回值為int
2.charAt(2);//獲取下標(biāo)為2處字符的值
3.equals(str2)//判斷兩個(gè)字符串的內(nèi)容是否相同,返回布爾值铺浇,其中equalsIgnoreCase(str2)可以忽略大小寫的影響
4.compareTo(str2);//比較兩個(gè)字符串的大小痢畜,返回差值的一個(gè)整數(shù)
5.startsWith(str)
6.endsWith(str)//判斷是否以指定字符串開始結(jié)束
7.substring(begin,end)//截取子字符串begin(包含)至end(不包含)
8.indexOf(str1)//第一次出現(xiàn)str1的下標(biāo),返回值為int,不存在返回-1丁稀,lastIndexOf?用來表示最后一次出現(xiàn)的下標(biāo)
9.concat(str2)//連接兩個(gè)字符串
10.replace(oddstr,newstr)//替換字符串
11.split(string)//按指定的字符串進(jìn)行拆分
12.toLowerCase()toUpperCase()//大小寫轉(zhuǎn)化
13.trim()//去除前后空格吼拥,trimLeft(),trimRight()去除左邊或右邊的空格
iii.特點(diǎn)
String是一個(gè)對象不是基本類型,屬于字符串常量二驰,是不可變對象扔罪,一旦創(chuàng)建就不能修改它的值,對于已存在的String對象操作都是創(chuàng)建一個(gè)新的String桶雀,并賦值新的值
b)StringBuffer
i.聲明
StringBuffer?sBuffer=new?StringBuffer();
ii.主要工具類
1.append(str)//連接字符串
2.intsert(int,string)//在第n位置插入字符串
3.delete(begin,end)//刪除子字符串
4.reverse()//字符串反轉(zhuǎn)
iii.特點(diǎn)
字符串變量 加鎖 線程安全
c)StringBuilder
i.聲明
StringBuilder?sBuilder=new?StringBuilder();
ii.主要工具類
1.append(str)//連接字符串
2.intsert(int,string)//在第n位置插入字符串
3.delete(begin,end)//刪除子字符串
4.reverse()//字符串反轉(zhuǎn)
iii.特點(diǎn)
字符串變量不加鎖 線程非安全