Java 程序員面試筆試寶典

何昊, 薛鵬, 葉向陽

買這商品的人也買了...

商品描述

<內容簡介>

何昊、薛鵬、葉向陽編著的《Java程序員面試筆試寶典》引入了一批來自於名牌高校、就職於明星企業的職場達人的真實求職案例,通過他們的求職經驗與教訓,將整個求職過程生動形象地展示在讀者面前,進而對求職者起到一定的指引作用。同時,為了更具說服力,本書特邀多位IT名企的面試官現身說法,以獨特的視角對面試過程中求職者存在的各類問題進行了深度剖析。為了能夠讓讀者對即將投身的工作有一些更加清楚的認識,能夠更加有針對性地進行求職準備,本書對各種類型的IT企業的招聘環節進行了庖丁解牛式的分析。
    技術性知識的考查是程序員求職中最重要的內容,鑒於此,本書除了對傳統的電腦相關知識(Java語言基礎知識、Web基礎知識、數據結構與演算法、數據庫、設計模式等)以及面試筆試真題進行分析與解答外,還根據當前電腦技術的發展潮流,對面試筆試中常見的海量數據處理問題進行了詳細的分析。
    本書是一本適合電腦相關專業畢業生閱讀的求職指導用書,同時也適合期望在電腦軟硬件行業大顯身手的電腦愛好者閱讀。

<目錄>

前言
上篇  面試筆試經驗技巧篇 
  第1章  面試官箴言
    1.1  有道無術,術可求;有術無道,
    止於術
    1.2  求精不求全
    1.3  腳踏實地,培養多種技能
    1.4  保持空杯心態
    1.5  職場是能者的舞臺
    1.6  學會「紙上談兵」
    1.7  小結
  第2章  面試心得交流
    2.1  心態決定一切
    2.2  假話全不說,真話不全說
    2.3  走自己的路,讓別人去說吧
    2.4  夯實基礎謀出路
    2.5  書中自有編程法
    2.6  筆試成績好,不會被鄙視
    2.7  不要一廂情願做公司的
    「備胎」
    2.8  小結
  第3章  企業面試筆試攻略
    3.1  因特網企業
    3.2  網絡設備提供商
    3.3  外企
    3.4  國企
    3.5  研究所
    3.6  創業型企業
    3.7  如何抉擇
下篇  面試筆試技術攻剋篇 
  第4章  Java基礎知識
    4.1  基本概念
      4.1.1  Java語言有哪些優點
      4.1.2  Java與C/C++有什麼異同
      4.1.3  為什麼需要public static void
      main(String?? args)這個方法
      4.1.4  如何實現在main()方法執行前輸出
      「Hello World」
      4.1.5  Java程序初始化的順序是怎樣的
      4.1.6  Java中的作用域有哪些
      4.1.7  一個Java文件中是否可以定義
      多個類
      4.1.8  什麼是構造函數
      4.1.9  為什麼Java中有些接口沒有
      任何方法
      4.1.1  0Java中的clone方法有什麼作用
      4.1.1  1什麼是反射機制
      4.1.1  2package有什麼作用
      4.1.1  3如何實現類似於C語言中函數
      指針的功能

    4.2  面向對象技術
      4.2.1  面向對象與面向過程有什麼區別
      4.2.2  面向對象有哪些特徵
      4.2.3  面向對象的開發方式有什麼優點
      4.2.4  什麼是繼承
      4.2.5  組合和繼承有什麼區別
      4.2.6  多態的實現機制是什麼
      4.2.7  重載和覆蓋有什麼區別
      4.2.8  抽象類(abstract class)與接口
      (interface)有什麼異同
      4.2.9  內部類有哪些
      4.2.1  0如何獲取父類的類名
      4.2.1  1this與super有什麼區別
    4.3  關鍵字
      4.3.1  變量命名有哪些規則
      4.3.2  break、continue以及return有
      什麼區別
      4.3.3  final、 finally和 finalize有什麼
      區別
      4.3.4  assert有什麼作用
      4.3.5  static關鍵字有哪些作用
      4.3.6  使用switch時有哪些註意事項
      4.3.7  volatile有什麼作用
      4.3.8  instanceof有什麼作用
      4.3.9  strictfp有什麼作用
    4.4  基本類型與運算
      4.4.1  Java提供了哪些基本數據類型
      4.4.2  什麼是不可變類
      4.4.3  值傳遞與引用傳遞有哪些區別
      4.4.4  不同數據類型的轉換有哪些規則
      4.4.5  強制類型轉換的註意事項有哪些
      4.4.6  運算符優先級是什麼?
      4.4.7  Math類中round、ceil和floor方法的
      功能各是什麼
      4.4.8  ++i與i++有什麼區別
      4.4.9  如何實現無符號數的右移操作
      4.4.10  char型變量中是否可以存儲一個
      中文漢字
    4.5  字符串與數組
      4.5.1  字符串創建與存儲的機制
      是什麼
      4.5.2  「==」、equals和hashCode有什麼
      區別
      4.5.3  String、StringBuffer、StringBuilder和
      StringTokenizer有什麼區別
      4.5.4  Java中數組是不是對象
      4.5.5  數組的初始化方式有哪幾種
      4.5.6  length屬性與length()方法
      有什麼區別
    4.6  異常處理

      4.6.1  finally塊中的代碼什麼時候
      被執行
      4.6.2  異常處理的原理是什麼
      4.6.3  運行時異常和普通異常
      有什麼區別
    4.7  輸入輸出流
      4.7.1  Java IO流的實現機制是什麼
      4.7.2  管理文件和目錄的類是什麼
      4.7.3  Java Socket是什麼
      4.7.4  Java NIO是什麼
      4.7.5  什麼是Java序列化
      4.7.6  System.out.println()方法使用需要
      註意哪些問題
    4.8  Java平臺與內存管理
      4.8.1  為什麼說Java是平臺獨立性
      語言
      4.8.2  Java平臺與其他語言平臺有哪些
      區別
      4.8.3  JVM加載class文件的原理機制
      是什麼
      4.8.4  什麼是GC
      4.8.5  Java是否存在內存泄露問題
      4.8.6  Java中的堆和棧有什麼區別
    4.9  容器
      4.9.1  Java Collections框架是什麼
      4.9.2  什麼是迭代器
      4.9.3  ArrayList、Vector和LinkedList
      有什麼區別
      4.9.4  HashMap、HashTable、TreeMap和
      WeakHashMap有哪些區別
      4.9.5  用自定義作為HashMap或HashTable的
      key需要註意哪些問題
      4.9.6  Collection和 Collections有什麼
      區別
    4.10  多線程
      4.10.1  什麼是線程?它與進程有什麼區別?
      為什麼要使用多線程
      4.10.2  同步和異步有什麼區別
      4.10.3  如何實現Java多線程
      4.10.4  run()方法與start()方法有什麼
      區別
      4.10.5  多線程同步的實現方法有
      哪些
      4.10.6  sleep()方法與wait()方法
      有什麼區別
      4.10.7  終止線程的方法有哪些
      4.10.8  synchronized與Lock
      有什麼異同
      4.10.9  什麼是守護線程
      4.10.1  0join()方法的作用是什麼

    4.11  Java數據庫操作
      4.11.1  如何通過JDBC訪問數據庫
      4.11.2  JDBC處理事務採用什麼方法
      4.11.3  Class.forName的作用是什麼
      4.11.4  Statement、PreparedStatement和
      CallableStatement有什麼區別
      4.11.5  getString()方法與getObject()
      方法有什麼區別
      4.11.6  使用JDBC時需要註意
      哪些問題
      4.11.7  什麼是JDO
      4.11.8  JDBC與Hibernate有什麼區別
  第5章  Java Web
    5.1  Servlet與JSP
      5.1.1  頁面請求的工作流程是怎樣的
      5.1.2  HTTP中GET與POST方法
      有什麼區別
      5.1.3  什麼是Servlet
      5.1.4  doPost()方法與doGet()
      方法怎麼選擇
      5.1.5  什麼是Servlet的生命周期
      5.1.6  JSP有哪些優點
      5.1.7  JSP與Servlet有何異同
      5.1.8  如何使用JSP與Servlet實現
      MVC模型
      5.1.9  Servlet中forward和redirect
      有什麼區別
      5.1.1  0JSP的內置對象有哪些
      5.1.1  1request對象主要有哪些方法
      5.1.1  2JSP有哪些動作
      5.1.1  3JSP中include指令和include動作
      有什麼區別
      5.1.1  4會話跟蹤技術有哪些
      5.1.1  5Web開發中如何指定
      字符串的編碼
      5.1.1  6什麼是Ajax
      5.1.1  7cookie和session有什麼區別
    5.2  J2EE與EJB
      5.2.1  什麼是J2EE
      5.2.2  J2EE中常用的術語有哪些
      5.2.3  EJB有哪些不同的類別
      5.2.4  EJB與JavaBean有什麼異同
      5.2.5  EJB有哪些生命周期
      5.2.6  EJB的角色有哪幾種
      5.2.7  EJB的開發流程是怎樣的
      5.2.8  EJB 3.0與EJB 2.0有哪些
      不同之處
      5.2.9  EJB容器有哪些作用
      5.2.1  0EJB規範規定EJB中禁止的
      操作有哪些

      5.2.1  1Web服務器與Web應用服務器
      有什麼區別
      5.2.1  2什麼是Web Service
      5.2.1  3SOAP與REST有什麼區別
      5.2.1  4什麼是XML
      5.2.1  5數據庫連接池的工作機制
      是怎樣的
      5.2.1  6J2EE開發有哪些調優的方法
    5.3  框架
      5.3.1  什麼是Struts框架
      5.3.2  Struts框架響應客戶請求的
      工作流程是什麼
      5.3.3  Struts框架的數據驗證可分為
      幾種類型
      5.3.4  Form Bean的表單驗證流程
      是什麼
      5.3.5  在Struts配置文件中,
      元素包含哪些屬性和子元素
      5.3.6  ActionForm Bean的作用有哪些
      5.3.7  ActionForm的執行步驟有哪些
      5.3.8  forward與global-forward
      有什麼區別
      5.3.9  Struts如何實現國際化
      5.3.1  0Struts 1與Struts 2有哪些區別
      5.3.1  1什麼是IoC
      5.3.1  2什麼是AOP
      5.3.1  3什麼是Spring框架
      5.3.1  4什麼是Hibernate
      5.3.1  5什麼是Hibernate的二級緩存
      5.3.1  6Hibernate中session的update()和
      saveOrUpdate()、 load()和get()
      有什麼區別
      5.3.1  7Hibernate有哪些主鍵
      生成策略
      5.3.1  8如何實現分頁機制
      5.3.1  9什麼是SSH
  第6章  數據庫原理
    6.1  SQL語言的功能有哪些
    6.2  內連接與外連接有什麼區別
    6.3  什麼是事務
    6.4  什麼是存儲過程?它與函數
    有什麼區別與聯繫
    6.5  各種範式有什麼區別
    6.6  什麼是觸發器
    6.7  什麼是光標
    6.8  如果數據庫日誌滿了,會出現
    什麼情況
    6.9  union和union all有什麼區別
    6.10  什麼是視圖
  第7章  設計模式

    7.1  什麼是單例模式
    7.2  什麼是工廠模式
    7.3  什麼是適配器模式
    7.4  什麼是觀察者模式
  第8章  數據結構與演算法
    8.1  鏈表
      8.1.1  如何實現單鏈表的增刪操作
      8.1.2  如何從鏈表中刪除重複數據
      8.1.3  如何找出單鏈表中的倒數
      第k個元素
      8.1.4  如何實現鏈表的反轉
      8.1.5  如何從尾到頭輸出單鏈表
      8.1.6  如何尋找單鏈表的中間結點
      8.1.7  如何檢測一個鏈表是否有環
      8.1.8  如何在不知道頭指針的情況下
      刪除指定結點
      8.1.9  如何判斷兩個鏈表是否相交
    8.2  棧與隊列
      8.2.1  棧與隊列有哪些區別
      8.2.2  如何實現棧
      8.2.3  如何用O(1)的時間複雜度
      求棧中最小元素
      8.2.4  如何實現隊列
      8.2.5  如何用兩個棧模擬隊列操作
    8.3  排序
      8.3.1  如何進行選擇排序
      8.3.2  如何進行插入排序
      8.3.3  如何進行冒泡排序
      8.3.4  如何進行歸併排序
      8.3.5  如何進行快速排序
      8.3.6  如何進行希爾排序
      8.3.7  如何進行堆排序
      8.3.8  各種排序演算法有什麼優劣
    8.4  位運算
      8.4.1  如何用移位操作實現乘法運算
      8.4.2  如何判斷一個數是否
      為2的n次方
      8.4.3  如何求二進制數中1的個數
    8.5  數組
      8.5.1  如何尋找數組中的最小值與
      最大值
      8.5.2  如何找出數組中第二大的數
      8.5.3  如何求最大子數組之和
      8.5.4  如何找出數組中重複元素
      最多的數
      8.5.5  如何求數組中兩兩相加等於20的
      組合種數
      8.5.6  如何把一個數組循環右移k位
      8.5.7  如何找出數組中第k個
      最小的數

      8.5.8  如何找出數組中只出現
      一次的數字
      8.5.9  如何找出數組中唯一的
      重複元素
      8.5.1  0如何用遞歸方法求一個整數
      數組的最大元素
      8.5.1  1如何求數對之差的最大值
      8.5.1  2如何求絕對值最小的數
      8.5.1  3如何求數組中兩個元素的
      最小距離
      8.5.1  4如何求指定數字在數組中第一次
      出現的位置
      8.5.1  5如何對數組的兩個子有序段
      進行合併
      8.5.1  6如何計算兩個有序整型
      數組的交集
      8.5.1  7如何判斷一個數組中數值
      是否連續相鄰
      8.5.1  8如何求解數組中反序對的
      個數
      8.5.1  9如何求解最小三元組距離
    8.6  字符串
      8.6.1  如何實現字符串的反轉
      8.6.2  如何判斷兩個字符串是否由相同的
      字符組成
      8.6.3  如何刪除字符串中重複的字符
      8.6.4  如何統計一行字符中有多少個
      單詞
      8.6.5  如何按要求打印數組的排列
      情況
      8.6.6  如何輸出字符串的所有組合
    8.7  二叉樹
      8.7.1  二叉樹基本概念
      8.7.2  如何實現二叉排序樹
      8.7.3  如何層序遍歷二叉樹
      8.7.4  已知先序遍歷和中序遍歷,如何
      求後序遍歷
      8.7.5  如何求二叉樹中結點的
      最大距離
    8.8  其他
      8.8.1  如何消除嵌套的括號
      8.8.2  如何不使用比較運算就可以求出
      兩個數的最大值與最小值
  第9章  海量數據處理
    9.1  問題分析
    9.2  基本方法
    9.3  經典實例分析
      9.3.1  top K問題
      9.3.2  重複問題
      9.3.3  排序問題

附錄
  附錄A  軟件企業Java筆試真題1
  附錄B  軟件企業Java筆試真題2
  附錄C  軟件企業Java筆試真題3
  附錄D  求職有用網站及QQ群一覽表