茄子回顧Java绒疗,從零開始G中(Java基礎(chǔ) 一)

Java基礎(chǔ)

1、JDK是什么?JRE是什么?JDK和JRE的區(qū)別?

JRE:Java Runtime Environment ,Java虛擬機吓蘑、庫函數(shù)惕虑、運行Java應(yīng)用程序和Applet所必須文件
JDK:Java Development Kit:JRE的超集,包含編譯器和調(diào)試器等用于程序開發(fā)的文件

Java運行環(huán)境的三項主要功能:

  • 加載代碼 :由class loader 完成
  • 校驗代碼 :由bytecode verifier 完成
  • 執(zhí)行代碼 :由 runtime interpreter完成

2磨镶、HelloWorld

編譯:利用編譯器(javac)將源程序編譯成字節(jié)碼文件溃蔫,文件名:源文件名.class,
javac命令編譯HelloWorld.java文件為HelloWorld.class文件琳猫,
運行:利用虛擬機(解釋器伟叛,java)解釋執(zhí)行class字節(jié)碼文件。java命令

3脐嫂、標識符(不能是關(guān)鍵字)

  • 標識符可以由字母统刮、數(shù)字、下劃線(_)雹锣、美元符($)組成网沾,但不能包含 @癞蚕、%蕊爵、空格等其它特殊字符,不能以數(shù)字開頭桦山。譬如:111stu 就是不合法攒射。
  • 標識符不能是 Java關(guān)鍵字和保留字(Java預(yù)留的關(guān)鍵字,以后的升級版本中有可能作為關(guān)鍵字)恒水,但可以包含關(guān)鍵字和保留字会放。如:不可以使用 void 作為標識符,但是 Stuvoid 可以钉凌。
  • 標識符是嚴格區(qū)分大小寫的咧最。并且沒有長度限制的。 一定要分清楚 Student和 student是兩個不同的標識符御雕!

4矢沿、數(shù)據(jù)類型

數(shù)據(jù)類型.jpg
數(shù)據(jù)類型對應(yīng)位數(shù).jpeg

5、基本數(shù)據(jù)類型轉(zhuǎn)換

自動類型轉(zhuǎn)換:容量小的數(shù)據(jù)類型可以自動轉(zhuǎn)換為容量大的數(shù)據(jù)類型酸纲。
強制轉(zhuǎn)換:顯示轉(zhuǎn)換捣鲸,丟失精度

6、String闽坡、StringBuffer栽惶、StringBuilder

String是引用類型愁溜。可以用String str= new String("abc");的形式來創(chuàng)建外厂,也可以用String str ="abc"冕象;的形式來創(chuàng)建

String str = "abc"創(chuàng)建對象的過程
1 首先在常量池中查找是否存在內(nèi)容為"abc"的字符串對象
2 如果不存在則在常量池中創(chuàng)建一個"abc"的字符串對象,并讓str引用 該對象
3 如果存在則直接讓str引用該對象

String str = new String("abc")創(chuàng)建對象的過程
1首先定義一個str的String類型的引用并存放在棧中
2在字符串常量池中查看是否存在內(nèi)容為"abc"字符串對象
3若存在則跳過這個步驟酣衷,若不存在交惯,則在字符串常量池中創(chuàng)建一個內(nèi)容為"abc"的字符串對象
4執(zhí)行new操作,在堆中創(chuàng)建一個指定的對象"abc"穿仪,這里堆的對象是字符串常量池“abc”對象的一個拷貝對象
5讓str指向堆中“abc”這個對象(也就是存儲這個對象的在堆中的地址)

常用操作:

  • (1) 字符串的連接
    public String concat(String str)
    該方法的參數(shù)為一個String類對象,作用是將參數(shù)中的字符串str連接到原來字符串的后面.
  • (2)求字符串的長度
    public int length()
    返回字串的長度,這里的長度指的是字符串中Unicode字符的數(shù)目.
  • (3)求字符串中某一位置的字符
    public char charAt(char ndex)
    該方法在一個特定的位置索引一個字符串,以得到字符串中指定位置的字符.值得注意的是,在字符串中第一個字符的索引是0,第二個字符的索引是1,依次類推,最后一個字符的索引是length()-1.
  • (4)字符串的比較
    比較字符串可以利用String類提供的下列方法:
    public boolean equals(Object anObject)
    該方法比較兩個字符串,和Character類提供的equals方法相似,因為它們都是重載Object類的方法.該方法比較當前字符串和參數(shù)字符串,在兩個字符串相等的時候返回true,否則返回false.
  • (5)從字符串中提取子串
    public String substring(int beginIndex)
    該方法從beginIndex位置起,從當前字符串中取出剩余的字符作為一個新的字符串返回.
  • (6) 字符串中單個字符的查找
    字符串中單個字符的查找可以利用String類提供的下列方法:
    public int indexOf(int ch)
    該方法用于查找當前字符串中某一個特定字符ch出現(xiàn)的位置.該方法從頭向后查找,如果在字符串中找到字符ch,則返回字符ch在字符串中第一次出現(xiàn)的位置;如果在整個字符串中沒有找到字符ch,則返回-1.
  • (7) 字符串中多余空格的去除
    public String trim()
    該方法只是去掉開頭和結(jié)尾的空格,并返回得到的新字符串.值得注意的是,在原來字符串中間的空格并不去掉.

運行速度:StringBuilder > StringBuffer > String
StringBuilder:非線程安全席爽,StringBuffer:線程安全

因為,String為字符串常量啊片,而StringBuilder和StringBuffer均為字符串變量只锻,即String對象一旦創(chuàng)建之后該對象是不可更改的,但后兩者的對象是變量紫谷,是可以更改的齐饮。
首先創(chuàng)建一個String對象str,并把“abc”賦值給str笤昨,然后在第三行中祖驱,其實JVM又創(chuàng)建了一個新的對象也名為str,然后再把原來的str的值和“de”加起來再賦值給新的str瞒窒,而原來的str就會被JVM的垃圾回收機制(GC)給回收掉了捺僻,所以,str實際上并沒有被更改崇裁,也就是前面說的String對象一旦創(chuàng)建之后就不可更改了匕坯。所以,Java中對String對象進行的操作實際上是一個不斷創(chuàng)建新的對象并且將舊的對象回收的一個過程拔稳,所以執(zhí)行速度很慢葛峻。
而StringBuilder和StringBuffer的對象是變量,對變量進行操作就是直接對該對象進行更改巴比,而不進行創(chuàng)建和回收的操作术奖,所以速度要比String快很多。

7轻绞、變量(對應(yīng)于常量 static final)

局部變量:方法或語句塊內(nèi)部定義的變量采记。生命周期是從聲明位置開始 到”}”為止。在使用前必須先聲明和初始化(賦初值)
成員變量(實例變量):方法外部铲球、類的內(nèi)部定義的變量挺庞。從屬于對象,生命周期伴隨對象始終稼病,隸屬于類选侨。如果不自行初始化掖鱼,他會自動初始化成該類型的默認初始值(數(shù)值型變量初始化成0或0.0,字符型變量的初始化值是16位的0援制,布爾型默認是false)
靜態(tài)變量(類變量):使用static定義戏挡。 從屬于類,生命周期伴隨類始終晨仑,從類加載到卸載褐墅。如果不自行初始化,他會自動初始化成該類型的默認初始值(數(shù)值型變量初始化成0或0.0洪己,字符型變量的初始化值是16位的0妥凳,布爾型默認是false)

成員變量在堆內(nèi)存中,由于對象的存在答捕,才在內(nèi)存中存在逝钥;
局部變量在棧內(nèi)存中;
局部變量必須初始化拱镐,否則不能運行艘款;
成員變量有默認初始化值,因此可以不初始化沃琅;
當成員變量和局部變量名稱一致時哗咆,默認使用局部變量

8、運算符

  • 算數(shù)運算符
  • 自增自減運算符
  • 關(guān)系運算符
  • 位運算符
  • 邏輯運算符
  • 賦值運算符
  • 三目運算符
  • instanceof運算符

9益眉、代碼結(jié)構(gòu)

選擇結(jié)構(gòu):
if else
switch case
switch 語句中的變量類型可以是: byte晌柬、short、int 呜叫、char空繁。
從 Java SE 7 開始殿衰,switch 支持字符串類型了朱庆,同時 case 標簽必須為字符串常量或字面量。

循環(huán)結(jié)構(gòu):
while 循環(huán)
do…while 循環(huán)
for 循環(huán)
增強for 循環(huán)
增強for循環(huán)有些缺點闷祥,
例如不能在增強循環(huán)里動態(tài)的刪除集合內(nèi)容娱颊,不能獲取下標等

  • (1)對于非集合類(沒有實現(xiàn) Iterable接口)的數(shù)組遍歷,增強型for循環(huán)和普通循環(huán)遍歷原理相同,效率相同
  • (2)對于集合類(實現(xiàn)了Iterable接口)凯砍,增強型for循環(huán)的遍歷其本質(zhì)就是迭代器 iterator的遍歷,和普通循環(huán)遍歷相比箱硕,各自有自己適用的場景,比如說普通for循環(huán)比較適合List類(數(shù)組類)遍歷通過下標查找數(shù)據(jù)的悟衩,而增強型for循環(huán)則比較適合鏈表結(jié)構(gòu)的集合的遍歷剧罩。

10、數(shù)組

數(shù)組聲明
int a[];
int[] a;

數(shù)組初始化
靜態(tài)初始化:
int a[]={1,2,3,4};
動態(tài)初始化:
int a[]=new int[5]; 創(chuàng)建一個長度為5的int 數(shù)組座泳。

數(shù)組遍歷
可以使用普通for循環(huán)或者foreach循環(huán)遍歷數(shù)組惠昔。

  • 數(shù)組是對象類型幕与,聲明數(shù)組時注意new的使用;
  • 聲明數(shù)組時一定要考慮數(shù)組的最大容量镇防,數(shù)組一旦被聲明了啦鸣,大小就固定了,不能修改容量来氧。
  • java 支持多為數(shù)組诫给,使用比較少。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啦扬,一起剝皮案震驚了整個濱河市中狂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扑毡,老刑警劉巖吃型,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異僚楞,居然都是意外死亡勤晚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門泉褐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赐写,“玉大人,你說我怎么就攤上這事膜赃⊥ρ” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵跳座,是天一觀的道長端铛。 經(jīng)常有香客問我,道長疲眷,這世上最難降的妖魔是什么禾蚕? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮狂丝,結(jié)果婚禮上换淆,老公的妹妹穿的比我還像新娘。我一直安慰自己几颜,他們只是感情好倍试,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛋哭,像睡著了一般县习。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天躁愿,我揣著相機與錄音哈蝇,去河邊找鬼。 笑死攘已,一個胖子當著我的面吹牛炮赦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播样勃,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吠勘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了峡眶?” 一聲冷哼從身側(cè)響起剧防,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辫樱,沒想到半個月后峭拘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡狮暑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年鸡挠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搬男。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡拣展,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缔逛,到底是詐尸還是另有隱情备埃,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布褐奴,位于F島的核電站按脚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏敦冬。R本人自食惡果不足惜辅搬,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望匪补。 院中可真熱鬧伞辛,春花似錦烂翰、人聲如沸夯缺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽踊兜。三九已至,卻和暖如春佳恬,著一層夾襖步出監(jiān)牢的瞬間捏境,已是汗流浹背于游。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留垫言,地道東北人贰剥。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像筷频,于是被迫代替她去往敵國和親蚌成。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一凛捏、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計...
    子非魚_t_閱讀 4,186評論 1 44
  • 前言 最先接觸編程的知識是在大學(xué)里面坯癣,大學(xué)里面學(xué)了一些基礎(chǔ)的知識瓶盛,c語言,java語言示罗,單片機的匯編語言等惩猫;大學(xué)畢...
    oceanfive閱讀 3,079評論 0 7
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,149評論 0 13
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法蚜点,類相關(guān)的語法帆锋,內(nèi)部類的語法,繼承相關(guān)的語法禽额,異常的語法锯厢,線程的語...
    子非魚_t_閱讀 31,631評論 18 399
  • 如果牽手真的那么難 就不會輕易說分開 如果幸福會來的很慢 至少你會一直都在 如果不把愛想的太滿 就不會有些許挫敗 ...
    范小希的單曲閱讀 235評論 0 0