【JavaEE-面試總結】(未完,待續···)

目錄:

1、Java基礎html

2、JavaEE基礎前端

3、JavaEE進階git

4、數據庫web

5、數據結構&算法redis

6、高級(服務器)算法

 

1、Java基礎

  1.1 面向對象(封裝、繼承、多態)

  • 訪問權限修飾符(public,protect,default,private)做用域;
  • 方法重寫、重載的概念和區別;
  • 抽象類和接口區別;類是單繼承,接口是多實現·····;
  • 代碼塊執行順序:靜態代碼塊->構造代碼塊->構造方法;
  • Object類經常使用方法:hashCode,equals,toString,wait,notify,notifyAll;
  • String,StringBuffer,StingBuild各包含哪些方法,三者區別;

  1.2 集合

    1.2.1 集合框架

圖1-1 集合框架mongodb

    1.2.2 各種集合特色

  • List集合:有序,元素可重複;
  • Set集合:無序,元素惟一;
  • List和Set集合皆可經過for循環、for-each、Iterator迭代器遍歷。
  • Map集合:以key-value形式存儲元素,無迭代器,遍歷時經過轉Set集合遍歷;
  • Map集合轉Set集合:方法一:使用keySet方法;方法二:使用entrySet方法。
  • hashtable實現原理:底層由數組+鏈表實現,有一個叫table的Entry類型數組,索引由鏈表存放。

  1.3 IO流

    1.3.1 IO流框架

  

  圖1-2 IO流框架shell

    1.3.2 IO流分類

  • BIO方式(同步阻塞),適用於鏈接數目比較小且固定的架構,這種方式對服務器資源要求比較高,併發侷限於應用中,JDK1.4之前的惟一選擇,但程序直觀簡單易理解。
  • NIO方式(同步非阻塞),適用於鏈接數目多且鏈接比較短(輕操做)的架構,好比聊天服務器,併發侷限於應用中,編程比較複雜,JDK1.4開始支持。
  • AIO方式(異步非阻塞),使用於鏈接數目多且鏈接比較長(重操做)的架構,好比相冊服務器,充分調用OS參與併發操做,編程比較複雜,JDK7開始支持。

  1.4 反射

  • 獲取class的三種方法:class.forName("類名");類名.class;對象名.getClass()。

2、JavaEE基礎

  2.1 JSP&Servlet相關知識點

  • 詳見:https://www.cnblogs.com/guoxh/p/6532923.html

  2.2 EL&JSTL

  • 詳見:http://www.cnblogs.com/guoxh/p/7586856.html

  2.3 Session&Cookie

  2.4 Filter&Listener

3、JavaEE進階

  3.1 經常使用框架(重點

    3.1.1 Struts&SpringMVC

    3.1.2 Spring

圖3-1 SpringFramework數據庫

  • IOC(控制反轉),DI(依賴注入)。
  • AOP(面向切面編程),jdbcTemplate。
  • 事務管理。
  • 核心容器
    • Beans
    • Core
    • Context
    • Expression Language

    3.1.3 Hibernate&Mybatis

  • Hibernate核心API
    • Configuration
    • SessionFactory
    • Session
    • Query
    • Transaction

    3.1.4 SSM整合

  • SSM工做流程

 

圖3-2 SSM工做流程編程

 

    3.1.5 前端框架

  • jQuery,easyUI,Vue等

  3.2 多線程(重點

  • Java多線程實現方法:Runnable、Thread;
  • Java內存模型是什麼?
  • JVM原理;
  • 線程通訊&線程同步(webservice服務
  • Java中Runnable和Callable有什麼不一樣?
  • Java中的volatile 變量是什麼?
  • Java中堆和棧有什麼不一樣?
  • 什麼是線程池? 爲何要使用它?
  • Java線程池中submit()和 execute()方法有什麼區別?

  3.3 設計模式(重點

  •  單例模式
  • 工廠模式
  • 代理模式

  3.4 Socket網絡編程

    3.4.1 TCP

  • 面向鏈接,安全可靠,效率低;
  • 如何理解三次握手;
  • 短鏈接 & 長鏈接;

    3.4.2 UDP

  • 無鏈接,不安全,效率高;

  3.5 Java垃圾回收機制GC(重點

    3.5.1內存泄漏

  • 如何處理內存泄漏

  3.6 JVM原理(重點

4、數據庫

  4.1 數據庫基本操做

  • 數據庫的建立和刪除;
  • 表的建立、修改和刪除;
  • 表中數據的增、刪,改,查;
  • 複製表結構;
  • 索引的分類,索引能提升查詢效率的原理

  4.2 事務

    4.2.1 事務四大特性(ACID)

  •  A原子性:事務是一個最小的單元,不可再分。
  • C一致性:事務中的全部操做或者所有起做用,或者所有失效,不存在部分起做用,部分不起做用的狀況。
  • I隔離性:事務之間相互隔離,彼此相互獨立。
  • D持久性:事務對數據庫的操做會反映到數據庫中。

    4.2.2 事務的隔離級別

  • read uncommitted:一個事務能夠讀取另外一個事務未提交的數據,這個數據被稱爲髒數據。
  • read committed:其餘事務頻繁地提交數據,另個事務(時間跨度大)在未提交以前屢次讀取提交的數據,可能出現屢次讀取的數據不一致。
  • repeatable read:事務首次從數據庫中讀取數據,而後將數據保存在內存中,之後不是從數據庫,而是從內存中讀取數據。這種隔離級別可能致使讀取的數據與數據庫中數據不一致,出現「幻讀」。
  • serializable:一個事務操做完數據之後,其餘事務才能夠操做。

    詳見:http://www.cnblogs.com/guoxh/p/7686657.html

  4.3 數據庫鏈接池

  4.4 存儲過程&觸發器、

  4.5 數據庫索引

    4.5.1 索引分類

  • 主鍵索引;
  • 普通索引;
  • 惟一性索引;
  • 彙集索引。

    4.5.2 索引類型

  • BTree索引(使用較廣);
  • Hash索引。

  4.6 具體數據庫

    4.6.1 關係型數據庫

  • MySQL
  • SQLServer

    4.6.2 非關係型數據庫NoSQL(重點

  • 特色:高併發,高可用,高可擴展,大數據存儲;
  • redis
    • 1)Redis數據類型:String,List,Set,Zset;
    • 2)Redis事務管理
      • Redis支持事務,可是不支持回滾,通常在不怎麼考慮事務的狀況下使用Redis。
      • 使用命令Watch實現相似回滾效果。
      • 命令MULTI:開啓事務;EXEC:執行事務隊列。
      • discard命令清空事務隊列。
    • 3)Redis實現持久化的兩種方式
      • 1. filesnapshotting文件快照

          Redis會將數據集的快照dump到dump.rdb文件中。此外,咱們也能夠經過配置文件來修改Redis服務器dump快照的頻率,在打開6379.conf文件以後,咱們搜        索save,能夠看到下面的配置信息:

        save 900 1              #在900秒(15分鐘)以後,若是至少有1個key發生變化,則dump內存快照。

          save 300 10            #在300秒(5分鐘)以後,若是至少有10個key發生變化,則dump內存快照。

        save 60 10000        #在60秒(1分鐘)以後,若是至少有10000個key發生變化,則dump內存快照。

      • 2. AOF日誌

          在Redis的配置文件中存在三種同步方式,它們分別是:

        appendfsync always     #每次有數據修改發生時都會寫入AOF文件。

        appendfsync everysec  #每秒鐘同步一次,該策略爲AOF的缺省策略。

        appendfsync no          #從不一樣步。高效可是數據不會被持久化。

    • 4)Redis經常使用命令
      • MULTI:開啓事務;EXEC:執行事務隊列。
      • SET:設置String類型key;LPUSH:設置List類型key;SADD:設置Set類型key;ZADD:設置ZSet類型key。

    •  

 

 

  • mongodb
  • Hbase

 5、數據結構&算法

  5.1 數據結構

    5.1.1 集合結構

    5.1.2 線性結構

  • 線性表->順序表&鏈表
  • 棧(Stack)
  • 隊列
  • 數組&廣義表

    5.1.3 樹形結構

    5.1.4 圖狀結構

  5.2 算法

  • 選擇排序
  • 冒泡排序
  • 快速排序
  • 二分法查找
  • 順序查找
  • ···

 6、高級

  6.1 shell編程

    6.1.1 瞭解經常使用的Linux命令

    

    6.1.2 熟悉在Linux上部署項目

  •   如何將JavaWeb項目部署到Linux服務器上:https://blog.csdn.net/gulu_gulu_jp/article/details/50994003 / https://www.cnblogs.com/jxgapyw/p/6082451.html

    

  6.2 Java開發工具

  • Eclipse
  • git/svn
  • Maven
  • Myeclipse
  • IDEA

  6.3 服務器(重點

  • Tomcat
  • Nginx

 

  6.4 高併發&大數據處理-解決方案(重點

    集羣的主要是IT公司在作,能夠保障重要數據安全;負載均衡主要是爲了分擔訪問量,避免臨時的網絡堵塞,主要用於電子商務類型的網站;分佈式服務器主要是解決跨區域,多個單個節點達到高速訪問的目前,通常是相似CDN的用途的話,會採用分佈式服務器。分佈式是指將不一樣的業務分佈在不一樣的地方,集羣指的是將幾臺服務器集中在一塊兒,實現同一業務。在現有網絡結構之上,負載均衡提供了一種廉價有效的方法擴展服務器帶寬和增長吞吐量,增強網絡數據處理能力,提升網絡的靈活性和可用性。

  • 分佈式集羣
    • zookeeper工具
  • 緩存
  • 負載均衡
    • 使用Nginx反向代理服務器。
  • SQL優化
  • 數據庫分庫分表(MyCat)

  6.5 異常處理機制

    6.5.1 拋異常

  • throws
  • throw

    6.5.2 捕獲異常

  • try-catch-finally
相關文章
相關標籤/搜索