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


目錄:

一、Java基礎

二、JavaEE基礎

三、JavaEE進階

四、數據庫

五、數據結構&算法

六、高級(服務器)

 

一、Java基礎

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

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

  1.2 集合

    1.2.1 集合框架

圖1-1 集合框架

    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流框架

    1.3.2 IO流分類

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

  1.4 反射

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

二、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

三、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.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.1 數據結構

    5.1.1 集合結構

    5.1.2 線性結構

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

    5.1.3 樹形結構

    5.1.4 圖狀結構

  5.2 算法

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

 六、高級

  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

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM