.net 程序員應該知道的java 知識(1) : 基礎篇. 持續(xù)更新中....

做了多年的.net 之后, 最近開始轉(zhuǎn)向java 編程.
這個系列記錄了其間遇到的一些與.net 不同或者沒有接觸過的概念. 所以,其中一些可能比較淺顯.

開篇介紹一些基礎知識和概念, 會持續(xù)更新中....

語法點

  • Arrays.asList() 返回的是一個固定大小的list.
    • 如果想要修改其返回結(jié)果, 需要將其包裝為LinkedList:
      • List<String> list = new LinkedList<String>(Arrays.asList(split));
  • java 中代表后續(xù)字符串為原始值(不需要轉(zhuǎn)移)的符號為: \\\\
    • 這個類似于c# 中的@.
    • 例如: String.split(“\\\\|”).
  • 將byte[] 轉(zhuǎn)換為string.
    • new String(bytes);
    • 同時可以指定encoding.
  • lamda 表達式中訪問的外部局部變量必須是final 或者隱式final 的.
    • 但是lamda 能夠獲得對成員變量或靜態(tài)變量的讀寫權.
  • Static
    • java 沒有static 類.
      • 可以使用final class + private constructor + static members(method+fields)來模擬.
      • Math 類應該是static 的, 雖然并沒有該關鍵字.
      • static 類可以不含有static 方法,它不能被實例化. 而static 方法必須在static 類中.
    • 有static nested 類.
      • 它與普通nested 類的區(qū)別是,可以獨立于外部類的實例,被直接構(gòu)造.
    • java有const 關鍵字,但是沒有任何功能.
      • const 在C++ 中用來創(chuàng)建const-pointer.
      • 在java 中使用final 實現(xiàn).
      • 在C# 中有readonly 關鍵字.
  • ClassLoader
    • JVM 判定兩個class 是否相等時,不僅要判斷兩個類名是否相同,而且要判斷是否由同一類加載器加載的.
    • 雙親委托模型
      • 每個ClassLoader 實例都有一個父類加載器的引用(包含而非繼承關系).
      • 安全因素: 防止隨時使用自定義的類來替換java 核心api 中定義的類型.
      • 避免重復加載同一類.

java API

  • 管道(PipedInput/OutputStream.).
    • 一個in 和一個out 相關聯(lián). 或者使用connect() 來關聯(lián)兩個管道.
    • 必須在不同的線程上, 分配兩個相關聯(lián)的管道, 否則在一個線程中同時進行讀和寫,可能會導致死鎖.
    • 為運行在同一JVM 中(同一進程下的)的兩個線程提供了通信能力(傳遞字節(jié)數(shù)據(jù)).
    • 線程多數(shù)情況下需要傳遞的是完整的對象信息而非原始的字節(jié)數(shù)據(jù).
    • 管道也可以作為數(shù)據(jù)源及目標媒介.
    • Unix 中, 運行在不同的地址空間的兩個進程可以通過管道通信.
  • 網(wǎng)絡
    • 使用網(wǎng)絡API 在不同的進程間建立網(wǎng)絡連接, 之后使用IO 在建立了連接之后的進程間交換數(shù)據(jù).
    • 能夠?qū)ξ募M行寫入數(shù)據(jù)(FileOutputStream)的代碼, 同樣也能寫入到網(wǎng)絡連接(OutputStream)中去.
  • Stream(二進制: 字節(jié): 0到255), Reader/Writter(文本: 字符: 0到65535).
    • Reader會根據(jù)文本的編碼,一次讀取若干個字節(jié)(并發(fā)固定的2個).

java 8 新特性

  • ?拼接字符串數(shù)組到一個結(jié)果字符串中.
    • StringJoiner.
StringJoiner sj = new StringJoiner(":", "[", "]");
sj.add("George").add("Sally").add("Fred");
String desiredString = sj.toString();
  • elements.stream().collect(Collectors.joining()).
List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", "));
  • 繼承了兩個擁有相同簽名的default方法的接口的類, 必須override 該方法, 可以使用InterfaceA.super.method()來調(diào)用某個接口的方法.
    • default 方法的產(chǎn)生, 是為了向后兼容( 對接口新增方法時,不必對所有實現(xiàn)類進行連帶修改).
    • JDK 8 的Collections 接口就擴展了foreach(). 實現(xiàn)類可以override.
    • static default 會強制所有的實現(xiàn)類override該方法.
  • Lambda 表達式與匿名類的區(qū)別
    • 匿名類的this 代表該匿名類, 而lambda 表達式中的this 代表外部類.
    • 編譯lambda 表達式時,將其轉(zhuǎn)化為類里面的私有含有, 并使用invokedynamic 來動態(tài)綁定該方法.
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末睁枕,一起剝皮案震驚了整個濱河市镶摘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌世吨,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逢倍,死亡現(xiàn)場離奇詭異柴信,居然都是意外死亡手报,警方通過查閱死者的電腦和手機眼耀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門英支,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哮伟,你說我怎么就攤上這事干花。” “怎么了楞黄?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵池凄,是天一觀的道長。 經(jīng)常有香客問我鬼廓,道長肿仑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任碎税,我火速辦了婚禮尤慰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚣录。我一直安慰自己割择,他們只是感情好,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布萎河。 她就那樣靜靜地躺著,像睡著了一般蕉饼。 火紅的嫁衣襯著肌膚如雪虐杯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天昧港,我揣著相機與錄音擎椰,去河邊找鬼。 笑死创肥,一個胖子當著我的面吹牛达舒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播叹侄,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼巩搏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了趾代?” 一聲冷哼從身側(cè)響起贯底,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撒强,沒想到半個月后禽捆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體笙什,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年胚想,在試婚紗的時候發(fā)現(xiàn)自己被綠了琐凭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡浊服,死狀恐怖淘正,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情臼闻,我是刑警寧澤鸿吆,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站述呐,受9級特大地震影響惩淳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜乓搬,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一思犁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧进肯,春花似錦激蹲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至环形,卻和暖如春策泣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抬吟。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工萨咕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人火本。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓危队,卻偏偏與公主長得像,于是被迫代替她去往敵國和親钙畔。 傳聞我的和親對象是個殘疾皇子茫陆,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)刃鳄,斷路器盅弛,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法挪鹏,繼承相關的語法见秽,異常的語法,線程的語...
    子非魚_t_閱讀 31,631評論 18 399
  • Java 8自Java 5(發(fā)行于2004)以來最具革命性的版本讨盒。Java 8 為Java語言解取、編譯器、類庫返顺、開發(fā)...
    誰在烽煙彼岸閱讀 888評論 0 4
  • 這段時間才開始進入了安卓的學習禀苦,是一個實實在在的菜鳥,今天遂鹊,運用才學到的知識振乏,做了一個簡單的登錄界面,算是對這段時...
    魚我所欲閱讀 2,508評論 0 3
  • 一直都希望有一個能夠真正能夠懂自己的人,在我傷心難過的時候舟陆,不需要過多的安慰误澳,只需要靜靜地陪伴著我。 一直都希望能...
    那些年我最深的回憶閱讀 253評論 3 0