java 基礎(chǔ)部分

# Java 的開發(fā)歷史 #

????java 最初的時候是由sun(Sun Microsyst NetWok 中文名稱是斯坦福大學(xué)校園網(wǎng))公司開展oak 項(xiàng)目衍生出來的技術(shù)绍坝。


????1995年,sun公司推出Java 技術(shù),于1996 年推出java1.0版本朽缴,1997年在中國登陸

????在sun公司的低潮期,最想收購java的是IBM 公司艾杏,但是卻最終被Orcale公司進(jìn)行收購客情。

????在當(dāng)時通過Java 賺到錢的只有 ibm 迅细,直到現(xiàn)在為止Oracle 只是通過Java 的版權(quán)爭執(zhí)獲取到一部分的利益溺森。


# Java 的版本 #

????Java 分為三個版本:

????????java se : 原先的時候是 J2SE ,后來被更名為java se 慕爬,原先是想要做系統(tǒng)應(yīng)用的,是最底層的內(nèi)容

????????Java me : 原先的時候是 J2ME.后來被更名為 Java me 屏积。

????????原先是想要做手機(jī)系統(tǒng)的医窿,因?yàn)?Nokia 的衰落而衰落

????????Java ee : 原先的時候是 J2EE ,后來被更名為 Java ee炊林,

????????原先的時候是想要做企業(yè)平臺的搭建姥卢,現(xiàn)在主要開發(fā)互聯(lián)網(wǎng)平臺

# java 主要特點(diǎn) #

-?半開源 : java 程序更加透明,更加容易讓人接受

-?面向?qū)ο?:讓大家更加容易理解和開發(fā)

-?可移植性 : 讓大家可以進(jìn)行多平臺的開發(fā)

-?多線程 :讓大家可以同時處理多個任務(wù),但是也帶來了高并發(fā)等等問題

-?高效的網(wǎng)絡(luò)處理能力

-?高效的垃圾回收機(jī)制 : java 程序去除指針反而使用引用的方式進(jìn)行替代独榴,讓大家可以不用去實(shí)時的進(jìn)行對象的回收(帶來的弊端是需要進(jìn)行優(yōu)化)

# Java 語言的分類 #

????java 語言既不屬于編譯型語言僧叉,也不屬于解釋型語言。因?yàn)閖ava 文件會在剛開始的時候通過編譯器編譯成為一個.class文件(編譯過程)括眠,然后再通過jvm 直接運(yùn)行.class文件(解釋過程彪标,就像c語言打包后成為.exe可執(zhí)行文件進(jìn)行使用)

其他意見

????先看下定義:編譯型語言:把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序,然后掷豺,可直接運(yùn)行這個程序。解釋型語言:把做好的源程序翻譯一句薄声,然后執(zhí)行一句当船,直至結(jié)束!Java它首先由編譯器編譯成.class(字節(jié)碼)文件默辨,然后在通過JVM從.class文件中讀一行解釋執(zhí)行一行德频,所以它是解釋型的語言,也正是由于java對于多種不同的操作系統(tǒng)有不同的JVM缩幸,所以實(shí)現(xiàn)了真正意義上的跨平臺壹置。

????有些答案對JAVA的理解還停留在上古時代或者教科書里。其實(shí)表谊,現(xiàn)在用編譯型钞护、解釋型來分類編程語言已經(jīng)有點(diǎn)力不從心了。JAVA的第一道工序是javac編譯爆办,當(dāng)然目標(biāo)文件是BYTECODE难咕。后續(xù)可能有三種處理方式:1. 運(yùn)行時,BYTECODE由JVM逐條解釋執(zhí)行距辆,2. 運(yùn)行時余佃,部分代碼可能由JIT翻譯為目標(biāo)機(jī)器指令(以method為翻譯單位,還會保存起來跨算,第二次執(zhí)行就不用翻譯了)直接執(zhí)行爆土;3. RTSJ。繼JAVAC之后執(zhí)行AOT二次編譯诸蚕,生成靜態(tài)的目標(biāo)平臺代碼(典型的就是IBM WEBSHPERE REAL TIME)步势。有的時候,可能是以上三種方式同時在使用挫望。至少立润,1和2是同時使用的,3需要程序員手工指定媳板。所以討論語言得更細(xì)化一點(diǎn)了桑腮,強(qiáng)類型的、弱類型的蛉幸,靜態(tài)的破讨、動態(tài)的丛晦,GC-based的、手工管理內(nèi)存的提陶,有沒有VM...

# java 開發(fā)基礎(chǔ) #

????在java 開發(fā)中的最小單位是類烫沙,而類中的最小執(zhí)行單元是方法

????在一個java 文件有兩種類(內(nèi)部類和匿名內(nèi)部類暫且不說)

-?????public class (公共類): 一個java 文件中只可以有一個

-????????????class (普通類): 一個Java文件中可以有多個

????java 中都是通過在main(主方法)開始運(yùn)行,而主方法所在的類被稱為主類

# java 開發(fā)之 CLASSPATH 的配置 #

????CLASSPATH 是jvm進(jìn)行編譯的時候調(diào)用的環(huán)境隙笆,默認(rèn)是在當(dāng)前生成.class 文件锌蓄,但是在某些 java 工具會修改CLASSPATH,所以大家可以在windows 的環(huán)境設(shè)置進(jìn)行設(shè)置修改撑柔,格式是 CLASSPATH 就是.(點(diǎn))瘸爽,如果在cmd 窗口中進(jìn)行修改那么可以設(shè)置為

????SET CLASSPATH = "位置"

????如果設(shè)置為默認(rèn)環(huán)境可以使用?

????SET CLASSPATH = .進(jìn)行設(shè)置

# java 開發(fā)之注釋 #

????java 之中有三種注釋的方法:

????????單行注釋 : //

????????多行注釋 : /*??*/

????????文檔注釋 : /**??*/


????在開發(fā)中一般使用單行注釋,如果有多行代碼出錯铅忿,或者其他情況使用多行注釋剪决,如果是重要的類或者是方法可以使用文檔注釋進(jìn)行注釋

????ps :如果使用文檔注釋可以使用 javadoc.exe 生成一個 doc 開發(fā)文檔?

# java 標(biāo)識符和關(guān)鍵字 #


????java 中對于方法,類等進(jìn)行命名的格式被稱為使用標(biāo)識符檀训,對于標(biāo)識符需要以下幾點(diǎn)要求

????????-?????標(biāo)識符可以使用數(shù)字柑潦,字母,_與$ 進(jìn)行使用

????????-?????標(biāo)識符中不可以使用數(shù)字進(jìn)行開頭

????????-?????因?yàn)樵贘ava中使用內(nèi)部類編譯生成后會出現(xiàn)$符號峻凫,所以如果在代碼中使用應(yīng)該進(jìn)行避免(開發(fā)中一般不會使用)

????????-?????標(biāo)識符不可以和關(guān)鍵字(包括保留字)渗鬼,true,false蔚晨,null(Java中預(yù)定義的字面常量)相同

# java 語言的數(shù)據(jù)類型 #


????java 語言分為兩個大類


????????- 基礎(chǔ)數(shù)據(jù)類型

????????????- 分為4類 8 種

????????????????- 整數(shù)型

????????????????????- byte

????????????????????- shrt

????????????????????- int

????????????????????- long

????????????????- 浮點(diǎn)型

????????????????????- float

????????????????????- double

????????????????- 布爾型

????????????????????- boolean

????????????????- 字符型

????????????????????- char

????????- 引用數(shù)據(jù)類型

????????????- 分為三種

????????????????- 枚舉

????????????????- 數(shù)組

????????????????- 對象

基本數(shù)據(jù)的默認(rèn)使用


????整數(shù)型默認(rèn)使用 int

????浮點(diǎn)型默認(rèn)使用 double?

????????ps : double 比 float 的取值范圍更加多

基本數(shù)據(jù)類型的默認(rèn)數(shù)據(jù)

????整數(shù)型

????????- 默認(rèn)為0

????浮點(diǎn)型

????????- 默認(rèn)為0.0

????布爾型

????????- 默認(rèn)為 false

????字符型

????????- 默認(rèn)為 /u0000

基本數(shù)據(jù)類型的取值范圍

????byte

?????????-128~127乍钻,占用1個字節(jié)(-2的7次方到2的7次方-1)

????short?

????????-32768~32767,占用2個字節(jié)(-2的15次方到2的15次方-1)?

????int?

????????-2147483648~2147483647)铭腕,占用4個字節(jié)(-2的31次方到2的31次方-1)?

????long

????????(-9223372036854774808~9223372036854774807)银择,占用8個字節(jié)(-2的63次方到2的63次方-1)

????float

????????3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同樣累舷,e-45表示乘以10的負(fù)45次方)占用4個字節(jié)?

????double

????????雙進(jìn)度浮點(diǎn)數(shù)使用42存儲浩考,有效位數(shù)16位,最大值是 10^16 ~ 10^17

????boolean

?????????這個類型只有兩個值被盈,true和false(真和非真)析孽,有人說可以占1/8個字節(jié)

????char

# 數(shù)據(jù)溢出 #

????在java 中,當(dāng)一個值超過當(dāng)前數(shù)據(jù)的大小的時候就會發(fā)生數(shù)據(jù)溢出(也就是數(shù)據(jù)回轉(zhuǎn)只怎,比如int 的Intager.MAX_VALUE + 1 后就會出現(xiàn)int 的最小值)


????解決的方法:

????????對于數(shù)據(jù)進(jìn)行更大類型的轉(zhuǎn)換

# 數(shù)據(jù)類型轉(zhuǎn)型的分類 #


????自動轉(zhuǎn)換

????強(qiáng)制轉(zhuǎn)換

# 字符型數(shù)據(jù) #


????在java 中 字符型數(shù)據(jù)使用char 來表示,在char 中可以定義單個字符,字符包括以下幾種

????????- 數(shù)字(0-9)

????????- 小寫字母(a-z)

????????- 大寫字母 (A-Z)

????????-?

????在char 數(shù)據(jù)類型中都可以轉(zhuǎn)換為int 數(shù)據(jù)的類型,其中取值范圍是


????????- '0'??(48)??-??'9'??(57)

????????- 'a'??(97)??-??'z'??(122)

????????- 'A'??(65)??-???'Z'??(90)


# 布爾數(shù)據(jù)類型 #

????在java 中布爾類型使用Boolean 來進(jìn)行表示,用來做邏輯的運(yùn)行,只有 true false 值


# 字符串 #


????字符串不是一種基本數(shù)據(jù)類型,但是子實(shí)際開發(fā)中各種語言都會提供字符串的相應(yīng)描述,而在java中使用 String 來進(jìn)行表示

????可以使用 + 號進(jìn)行字符串的連接(最常用)

????在String 類型中有各種方法進(jìn)行方法,可以去開發(fā)文檔中進(jìn)行查看

????ps : 在各種數(shù)據(jù)類型進(jìn)行加法計(jì)算的時候,碰巧有String 數(shù)據(jù)對其進(jìn)行連接操作,如果沒有指定操作順序(也就是在計(jì)算操作的時候加上一個()括號),那么就會優(yōu)先進(jìn)行字符串的連接操作


????在各種數(shù)據(jù)類型進(jìn)行其他計(jì)算(加法除外)的時候,碰巧有String 數(shù)據(jù)對其進(jìn)行連接操作,如果沒有指定操作順序(也就是在計(jì)算操作的時候加上一個()括號),那么就會報錯

# 轉(zhuǎn)義字符 #

????如果某些操作需要使用符號或者換行 ,空格 , tab制表符等操作,那么需要進(jìn)行轉(zhuǎn)義字符對其進(jìn)行轉(zhuǎn)義,否則的話得到的結(jié)果會和自己想要的結(jié)果不同

# 運(yùn)算符 #

????算術(shù)運(yùn)算符( + - * / %??++??-- )

????????++ 或 -- 的使用規(guī)則 :

????????????如果 ++ (或者 --) 在前,先進(jìn)行自加然后再進(jìn)行計(jì)算獲得值,如果在后,先進(jìn)行計(jì)算再進(jìn)行 ++ (--)自增或自減

????賦值運(yùn)算符(??+=???-=????/=????*=???%=????=?????<<=???????>>=??&=???^=??|= )


????關(guān)系運(yùn)算符( > < >= <= == !=??)


????條件運(yùn)算符 (三目(賦值)運(yùn)算法)?

????????關(guān)系運(yùn)算 ? 滿足: 不滿足

????????ps : 三目運(yùn)算可以嵌套使用 (不建議使用,可讀性會變差)

????邏輯運(yùn)算符 (??&& | | ! )?

????位運(yùn)算符 (??& | ! ^ ? <<???>> >>>???)

????instanceof 運(yùn)算符 : 是否包含?

# java 的邏輯控制 #

????if 結(jié)構(gòu)?

????????針對關(guān)系表達(dá)式進(jìn)行判斷


????????類型

????????????if (布爾表達(dá)式){

????????????????滿足時候執(zhí)行

????????????}???

????????????if (布爾表達(dá)式){

????????????????滿足時候執(zhí)行

????????????}else{

????????????????不滿足時候執(zhí)行

????????????}?

????????????if (布爾表達(dá)式 A){

????????????????A 滿足時候執(zhí)行

????????????}else if(布爾表達(dá)式 B){

????????????????B 滿足時候執(zhí)行

????????????} else{

????????????????A B??不滿足時候執(zhí)行

????????????}

????switch 開關(guān)語句

????????在siwch 語句只可以使用 int char 枚舉(jdk 1.5之后) String(字符串 jdk 1.7之后)

????switch(數(shù)據(jù)){

????????case 數(shù)據(jù)1 :

????????????滿足數(shù)據(jù)1

?????????break;

????????case 數(shù)據(jù)2 :

????????????滿足數(shù)據(jù)2

?????????break;

????????defult :

????????????不滿足數(shù)據(jù)1 和數(shù)據(jù)2

????}

????面試題目:

????????break retrun continue 的區(qū)別:

????循環(huán)結(jié)構(gòu)

????????for 循環(huán)

????????面試題:

????????????for 循環(huán)中初始化值和for循環(huán)之外定義

????????增強(qiáng)for 循環(huán)

????????while 循環(huán)

????????????do while 結(jié)構(gòu)

????????????while 結(jié)構(gòu)

????循環(huán)控制語句 : break retrun continue?

# 訪問權(quán)限 #

????public private protected 默認(rèn)

# 方法的定義與執(zhí)行 #


????訪問權(quán)限 返回值??方法名稱(參數(shù)類型 參數(shù)){

????????//如果有返回值,要有return

????}

# 方法的重載 #

????重載的方法和返回值類型沒有關(guān)系只是和方法的參數(shù)有關(guān)系

# 方法的遞歸調(diào)用 #

????方法自己調(diào)用自己(刪除文件夾需要刪除文件,這個就是遞歸調(diào)用)

????如果使用遞歸調(diào)用容易造成內(nèi)存溢出(棧溢出)

# 方法的可變參數(shù) #

# 方法的重寫 #

# java 的堆棧 #

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末袜瞬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子身堡,更是在濱河造成了極大的恐慌邓尤,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異汞扎,居然都是意外死亡季稳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門澈魄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來景鼠,“玉大人,你說我怎么就攤上這事痹扇☆趵欤” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵鲫构,是天一觀的道長票渠。 經(jīng)常有香客問我,道長芬迄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任昂秃,我火速辦了婚禮禀梳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肠骆。我一直安慰自己算途,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布蚀腿。 她就那樣靜靜地躺著嘴瓤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪莉钙。 梳的紋絲不亂的頭發(fā)上廓脆,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機(jī)與錄音磁玉,去河邊找鬼停忿。 笑死,一個胖子當(dāng)著我的面吹牛蚊伞,可吹牛的內(nèi)容都是我干的席赂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼时迫,長吁一口氣:“原來是場噩夢啊……” “哼颅停!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起掠拳,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤癞揉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烧董,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡毁靶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逊移。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片预吆。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖胳泉,靈堂內(nèi)的尸體忽然破棺而出拐叉,到底是詐尸還是另有隱情,我是刑警寧澤扇商,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布凤瘦,位于F島的核電站,受9級特大地震影響案铺,放射性物質(zhì)發(fā)生泄漏蔬芥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一控汉、第九天 我趴在偏房一處隱蔽的房頂上張望笔诵。 院中可真熱鬧,春花似錦姑子、人聲如沸乎婿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谢翎。三九已至,卻和暖如春沐旨,著一層夾襖步出監(jiān)牢的瞬間森逮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工希俩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吊宋,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓颜武,卻偏偏與公主長得像璃搜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鳞上,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

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