瘋狂Java

出版時間:2010-5  出版社:人民郵電出版社  作者:李剛  頁數(shù):454  字數(shù):670000  
Tag標簽:無  

前言

  Java語言的開發(fā)人群越來越大了,大量程序員已經(jīng)進入或正打算進入Java編程領域。這當然和Java語言本身的優(yōu)秀不無關系,卻也和Java語言入門簡單有關。一個毫無編程基礎的初學者,只要有點數(shù)據(jù)庫和SOL的基礎,大概花不到一個月時間就可以學會編寫.ISP頁面,說不定這樣就可以找到一份Java編程的工作了。如果他肯再多下點功夫,學習一下編寫Struts Action類、配置Action,編寫Spring:Bean類和配置Bean,他甚至可以自我感覺很不錯了?! 栴}是:這種“快餐式”、“突擊式”的程序員真的能滿足要求嗎?如果僅僅滿足于這些簡單的、重復式的開發(fā),他們也許沒有太多的問題,但他們可能很少有突破的機會。究其根本原因,很大程度上是因為他們的基本功不夠扎實。對他們而言,與其說Java是一種面向對象的語言,不如說更像一種腳本;他們從源代碼層次來看程序運行(甚至只會從Ecli:pse等集成開發(fā)環(huán)境中看程序運行),完全無法從底層內存分配的角度來看程序運行;他們天天在用.Java類庫、用Struts、用Spring,但對這些東西的實現(xiàn)卻知之甚少——這又如何突破自己、獲得更好的提高呢?  鑒于此種現(xiàn)狀,筆者在“瘋狂Java實訓營”的訓練中,除了采用大量實際項目來驅動教學之外,往往會花很多時間、精力來培養(yǎng)學員的基本功。比如講授Spring框架時,如果只關注如何編寫B(tài)ean類、配置Bean,那么一天的時間就足夠了。而筆者往往會深入Spring框架的底層實現(xiàn),帶領學生從工廠模式、策略模式、門面模式、代理模式、命令模式的角度來深度分析Spring框架實現(xiàn),然后進行對比,總結Spring框架的優(yōu)勢到底在哪里?不使用Spring框架是否有替換解決方案?從而感受設計模式對實際開發(fā)的幫助?! ∩厦孢@些內容,看似“高深”,但其實質依然離不開Java編程的基本功。也可以這樣說:一旦讀者真正把基本功打扎實了,將可以看得更高、更透徹?! ≡谶@樣的背景下,偶然之間我獲得了這樣一個想法:把這些容易被Java程序員所忽視的內容整理成一本書,也許可以幫助這些需要突破基本功的準程序員、初級程序員。本書的寫法對筆者來說,是一種新的嘗試:筆者以前所寫之書,通常都會圍繞某方面知識“畫一個圓”——把這個方面的相關知識,全面、詳細地向讀者介紹出來。本書并沒有采用這種寫法,本書的每課圍繞一個相對獨立的專題進行講解,形式上有點類似于“針對性地補課”。當讀者感覺自己在某些方面的基本功不夠扎實時,可以直接選擇相應的內容進行學習,完全無須從頭到尾地按順序閱讀。

內容概要

  本書是著名Java領域研究專家、Java語言培訓大師、“瘋狂Java”創(chuàng)始人李剛老師的又一傾心力作?! ≡诒緯?,李剛老師一改枯燥的教學方式,專門面向Java初學者可能會遇到的各種學習問題,由點及面,詳細討論了Java內存管理、Java編程過程中常遇陷阱、常用數(shù)據(jù)結構的Java實現(xiàn)和Java程序開發(fā)的方法與經(jīng)驗等內容?! ∵@些問題,看似“司空見慣”,實際上卻是很多Java初學者在初學階段都會遇到的問題和疑難。李剛老師在本書中,正是試圖為讀者們展現(xiàn)出這些疑點、難點的實質,讓讀者能在瞬息之間,徹底掌握住這門語言的“內功心法”?! ∵@不是一本包容了所有技術細節(jié)的手冊,而是一本Java前輩對于晚輩們的提點和教導。書中很多內容,是李剛老師和他的眾多學子曾親身體驗過的桎梏,非常具有參考意義。本書承載了無數(shù)前輩的諄諄教導之言,向你展示著一個痛并快樂著的Java世界。

書籍目錄

第1課 數(shù)組與內存控制  1.1 數(shù)組初始化   1.1.1 Java數(shù)組是靜態(tài)的   1.1.2 數(shù)組一定要初始化嗎   1.1.3 基本類型數(shù)組的初始化   1.1.4 引用類型數(shù)組的初始化  1.2 使用數(shù)組   1.2.1 數(shù)組元素就是變量   1.2.2 沒有多維數(shù)組  1.3 小結 第2課 對象與內存控制  2.1 實例變量和類變量   2.1.1 實例變量和類變量的屬性   2.1.2 實例變量的初始化時機   2.1.3 類變量的初始化時機  2.2 父類構造器   2.2.1 隱式調用和顯式調用   2.2.2 訪問子類對象的實例變量   2.2.3 調用被子類重寫的方法  2.3 父子實例的內存控制    2.3.1 繼承成員變量和繼承方法的區(qū)別   2.3.2 內存中子類實例   2.3.3 父、子類的類變量  2.4 final修飾符   2.4.1 final修飾的變量   2.4.2 執(zhí)行“宏替換”的變量   2.4.3 final方法不能被重寫   2.4.4 內部類中的局部變量  2.5 小結 第3課 常見Java集合的實現(xiàn)細節(jié)  3.1 Set和Map   3.1.1 Set和Map的關系   3.1.2 HashMap和HashSet   3.1.3 TreeMap和TreeSet  3.2 Map和List   3.2.1 Map的values()方法   3.2.2 Map和List的關系  3.3 ArrayList和LinkedList   3.3.1 Vector和ArrayList的區(qū)別   3.3.2 ArrayList和LinkedList的實現(xiàn)差異   3.3.3 ArrayList和LinkedList的性能分析和適用場景  3.4 Iterator迭代器  3.5 小結 第4課 Java的內存回收  4.1 Java引用的種類   4.1.1 對象在內存中狀態(tài)   4.1.2 強引用   4.1.3 軟引用   4.1.4 弱引用   4.1.5 虛引用  4.2 Java的內存泄漏  4.3 垃圾回收機制   4.3.1 垃圾回收的基本算法   4.3.2 堆內存的分代回收   4.3.3 與垃圾回收的附加選項   4.3.4 常見垃圾回收器  4.4 內存管理的小技巧   4.4.1 盡量使用直接量   4.4.2 使用StringBuilder和StringBuffer進行字符串連接   4.4.3 盡早釋放無用對象的引用   4.4.4 盡量少用靜態(tài)變量   4.4.5 避免在經(jīng)常調用的方法、循環(huán)中創(chuàng)建Java對象   4.4.6 緩存經(jīng)常使用的對象   4.4.7 盡量不要使用finalize方法   4.4.8 考慮使用SoftReference  4.5 小結 第5課 表達式中的陷阱 第6課 流程控制的陷阱 第7課 面向對象的陷阱 第8課 異常捕捉的陷阱 第9課 線性表 第10課 棧和隊列 第11課 樹和二叉樹 第12課 常用的內部排序 第13課 程序開發(fā) 第14課 程序調試 第15課 使用IDE工具 第16課 軟件測試 

章節(jié)摘錄

  Java數(shù)組并不是什么很難的知識,如果單從用法的角度來看,數(shù)組的用法并不難,只是很多程序員雖然一直使用Java數(shù)組,但他們往往對Java數(shù)組的內存分配把握并不準確。本章正是為了彌補程序員的這部分基本功而做的深入探討。  本課將會深入探討Java數(shù)組的靜態(tài)特征。使用Java數(shù)組之前必須先對數(shù)組對象進行初始化。當數(shù)組的所有元素都被分配了合適的內存空間,并指定了初始值時,數(shù)組初始化完成。程序以后將不能重新改變數(shù)組對象在內存中的位置和大小。從用法角度來看,數(shù)組元素相當于普通變量,程序既可把數(shù)組元素的值賦給普通變量,也可把普通變量的值賦給數(shù)組元素?! ”菊n還將深入分析多維數(shù)組的實質,深入講解多維數(shù)組和一維數(shù)組之間的關聯(lián),并通過程序示范如何將一維數(shù)組擴展成多維數(shù)組?! ?.1數(shù)組初始化  數(shù)組是大多數(shù)編程語言都提供一種的復合結構,如果程序需要多個類型相同的變量時,就可以考慮定義一個數(shù)組。Java語言的數(shù)組變量是引用類型的變量,因此具有Java獨有的特性?! ?.1.1 Java數(shù)組是靜態(tài)的  Java語言是典型的靜態(tài)語言,因此Java的數(shù)組是靜態(tài)的,即當數(shù)組被初始化之后,該數(shù)組的長度是不可變的。Java程序中的數(shù)組必須經(jīng)初始化才可使用。所謂初始化,就是為數(shù)組對象的元素分配內存空間,并為每個數(shù)組元素指定初始值。

媒體關注與評論

  李剛老師的著作原汁原味,語言嚴謹樸實,章節(jié)排列由淺入深,案例代碼可調試,學習成本低,每本著作中融入了作者越來越多的思想總結,逐漸形成一套瘋狂Java的套路,不論是初學者還是開發(fā)者,都可以借鑒作者的思想和精益求精的態(tài)度。  ——網(wǎng)易 李樂  我曾師從李剛老師,他為人正直,以學生為本。他循進漸進、案例詳盡、化抽象為通俗、生動靈活的授課方式深受我們喜歡。  ——21CN 袁火青  赴美留學前曾進入李剛老師的瘋狂JaVa實訓營進行強化學習。給我留下最深刻印象的是他對技術的極度偏執(zhí)和務實、求真的教學風格。三個多月的強化訓練鞏固了我的編程基礎,更讓我懂得了作為一個一線開發(fā)人員應有的思維方式和對技術的執(zhí)著?!  狝ctuate Corporation(NASDAQ:ACTU)臧青  跟李剛老師學習的時候,他對每個知識點都能深入淺出地講解,讓學生能從原理上掌握并應用它們,這一點給我畢業(yè)時的面試很大幫助。同樣地,李剛老師的書也繼承了這些優(yōu)點,書中所有內容的組織非常有條理性,可以讓學習者容易地理艇核心,從中受益?!  ⒗镘浖?李現(xiàn)杭  我認為一本好的計算機工具書本來就不一定要有多么精彩的文筆,或是多么巧妙的構思,或是多么獨到的觀點。我需要的是可以在最短的時間內掌握從沒有接觸過的知識,在我遇到問題時能最快地找出解決方法,這些方面李剛老師的書確實做到了。  ——電信盈科 陳杰超  李剛老師是“瘋狂Java”的代名詞,他就是一部活字典,不僅能讓你全方位體驗Java,他講課的激情更是讓人感受到學習的樂趣與瘋狂,他是我遇到過最杰出的傳道授業(yè)解惑的名師?!  獏R豐軟件 陳健進  李老師善于從學生所提出的問題中發(fā)現(xiàn)相關知識點,然后利用其豐富的知識擴展學生的問題,引導著學生面對問題時舉一反三。李老師的書同樣具有這樣特點,總能帶給人簡單明了的感覺,這是由于他站得更高的緣故?!  獞涥?羅文強  李老師的圖書對知識點的把握全面透徹、言簡意賅、深入淺出,所舉的例子易懂且具有典型性,讓人容易舉一反三。給我印象最深的是他授課時對EJB的講解,既讓初學者茅塞頓開,又讓想深入提高者豁然開朗?!  招?郭彬

編輯推薦

  你是否在求職時被鄙視“基本功不扎實”而萬分慚愧?《瘋狂Java:突破程序員基本功的16課》能檢驗你的基本功,并讓你彌補不足?!动偪馢ava:突破程序員基本功的16課》歸納了Java學習者、工作者在學習、工作過程中最欠缺的技術短板。形成內存管理、常見的陷阱、數(shù)據(jù)結構、程序調試、軟件測試等16堂必須課!你是否深入研究過它們,是否深入掌握它們?謹以此書獻給打算以編程為職業(yè),并愿意為之瘋狂的人。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    瘋狂Java PDF格式下載


用戶評論 (總計19條)

 
 

  •   學習java忽略了很多東西。這本書深入的講了概念的深層問題 值得學習。
    但是不知道是不是面試真的都會考這些細節(jié)問題??
  •   對于JAVA初學者,可以鍛煉不錯的基本功
  •   因為買的2本j2ee,java都是老沉的大部頭,所以一開始對這本書沒報多大希望
    但是沒想到這本書這么好
    講到了java中很多不為人知的細節(jié)
    適合反復閱讀
    感覺很適合剛畢業(yè)或剛入職的朋友
  •   這本書非常值得有一定java基礎但是基本功不扎實的朋友來閱讀~
  •   建議把JAVA用熟練后再看??!初學者不推薦?。?!
  •   非常好的一本書,講的很到位,物有所值啊,對程序員來說,是難得的好書,很多東西講的明白透徹,易懂~推薦購買,李剛的書一直都很贊
  •   還沒有看完,不過李剛的書怎能錯過呢~~~~~~
  •   不錯,反正我是菜鳥級別的??粗U好的,面試過幾次,被鄙視了幾次,要好好看看這書了。扎實基礎
  •   牛書。。。。。
  •   需要反復多看幾遍
  •   我給同學買的,他說當工具書用
  •   內容不錯,對提高代碼能力有很大的幫助
    文筆尚欠, 有些句子讀起來很繞口,不如分成兩句或者更多
    里面寫的一些地方,比如第2章,幫助理解內幕是好的,但是要說清楚這些是編碼時應該避免的地方。有些示例代碼是為了講清楚問題的,編碼時絕對不要那樣寫。書里面如果這樣提示一下就好了。
    一家之言,說的不對請見諒
  •   內容還行,就是里面有印刷錯誤,該粗體的沒用粗體,還有些字啊什么錯誤!
  •   質量不錯,注重實例的講解!
  •   還行,作為參考書看。有些東西也是需要了才看的。
  •   內容還不錯了,就是編排有問題,到現(xiàn)在還沒改過來
  •   要是全部自習弄明白,應屆生找個好工作還是很容易的
  •   實踐后回歸一下理論很有用.
  •   都還行,還有幾頁都沒開頁,這都沒啥,物流搞得太慢了
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7