《面試》_g2f

g2f
工程相關 :

一 版本控制 git

1.Git 協(xié)議 : 四種 local(局域網(wǎng)) ssh http git(不推薦 暴露9481)

拉去使用http啞協(xié)議,然后push使用 ssh 來自 StackFlow

注:http Smart 協(xié)議 是基于 CGI 配合GIT git-http-backend 腳本進行使用,配置較復雜,現(xiàn)在一般不會這么去做,而是采用gitlab 、gogs 之類的web管理進行代替

2. merge 和 rebase 區(qū)別 依賴commit (https://blog.csdn.net/liuxiaoheng1992/article/details/79108233

合并相關命令一共存在共同祖先以及指針的概念。

git merge : 祖先 ,當前分支與要被合并分支的公共祖先commit ,當前分支公共祖先最新commit,被合并分支公共祖先最新commit。三者合一

git rebase: 祖先,當前分支與要合并分支的公共祖先commit的修改,master指針指向被合并分支最新更改commit,然后放到當前分支與要合并分支的公共祖先commit的修改


二 maven,sornar,idea,jenkins,nexus

1.maven 【默認規(guī)則】當中的測試類又做了約定,約定必須是Test開頭的類名與test 開頭的方法才會執(zhí)行【也可以定制規(guī)則】 sonar做測試覆蓋 jacoco 插件

1. Maven 生命周期 與插件

  1. clean Lifecycle :清理生命周期,用于于清理項目

  2. default Lifecycle:默認生命周期,用于編譯、打包、測試、部署等

  3. site Lifecycle 站點文檔生成,用于構建站點文檔

2.依賴規(guī)則

  依賴傳播、依賴優(yōu)先原則、可選依賴、排除依賴、依賴范圍

3.聚合繼承

2.idea 快捷鍵

3.jenkins 聊聊 自己學的自動化腳本 Mac vagrant 上有


二.運維 linux,nginx,tomcat,

1.linux

1.目錄操作 crud

2.文件操作 crud

tail -100 ./logs/catalina.out | grep 'copy' —color 與 tail -f

top, free, df -h, ps -ef , env,netstat -tuln,route -n

vim技巧

linux 內核 TODO 用戶空間 內核空間


2.nginx 架構圖

1.架構 兩個進程 ,主進程 加載配置,啟動工作進程,聯(lián)系netty。非停升級。

子進程(可配置多個work),核心模塊 網(wǎng)絡讀寫,存儲讀寫以及 傳輸。 run-loop 定義 mail,http,config模塊。

        高并發(fā),異步非阻塞。 底層c++

2.使用

1.動靜分離,黑白名單,防盜鏈,日志配置,下載限速

2.反向代理

Upstream  a {} proxy_pass {http://a}  
  • 參數(shù) weigtht ,權重 負載均衡算法。ll+weight. ip_hash session 一致性. (Ur_hash 最小鏈接,最小響應)

  • 參數(shù) max_fails 最大失敗次數(shù) ,踢出

  • fail_timeout 踢出后重新探測時間

  • backup 備用服務

  • max_conns 允許最大連接數(shù)

  • slow_start 當節(jié)點恢復,不立即加入,而是等待 slow_start 后加入服務對列。

3.高速緩存 proxy_cache_path 模塊配置 以及 ng_cache_purge引入清除


3.tomcat 架構圖 (責任鏈)

1.IO 模型。4種

2.NIO 和 IO區(qū)別。源碼 JIOEndPoint 與 NioEndPoint 多個poller線程 多路復用 多個線程回調通信


三.ssm

1.mybatis 架構圖 組件 按著jdbc方式 源碼 太熟悉了

Spring 和 springmvc。

2.Spring

IOC

1.為什么使用 spring ioc

2.創(chuàng)建bean的幾種方式

  1. 基于Class構建

  2. 構造方法構建

  3. 靜態(tài)工廠方法創(chuàng)建

  4. FactoryBean創(chuàng)建

3.依賴注入方式

  1. set方法注入

  2. 構造方法注入

  3. 自動注入(byName、byType)

  4. 方法注入(lookup-method)

4.Bean創(chuàng)建流程

AOP??椚霕I(yè)務邏輯。 讀寫數(shù)據(jù)源,日志,接口限流等。

切面,切點, 連接點,通知。 默認jdk代理,可指定cglib。

jdk和cglib的不同,一個接口一個實現(xiàn)。 故 this 在 jdk中 不能使用,因為this是 接口和proxy, 在cglib中能使用,因為繼承

聲明式事務

acid ,因為高并發(fā)完全達到acid 只能是串行化,但是帶來很多負面影響。 故出現(xiàn) 隔離級別

讀未提交【臟讀,不可重復讀,幻讀】,讀已提交【不可重復讀,幻讀】,可重復讀【幻讀】,串行化。mysql默認 可重復讀,oracle 默認是讀已提交

傳播行為 required。required_new ,not_support ,同一個類 默認 代理只走一個(aop)可通過暴露和AopContext 達到目的

3.springMVC流程 架構圖


(5天)5. juc,jdk集合,
(10天)6.算法 4 設計模式 2 jvm mysql相關 2

JUC

為啥會用juc
1 多線程---單線程
2 共享變量---線程私有
3 原子操作---原子類i++ i=i+1
多線程的目的,就是最大限度地利用 cpu 資源,比如說1個線程一個io操作,另一個線程此時可以利用cpu。

2.線程狀態(tài)圖 架構圖
Thread,Runnable,Callable

3.線程池 工作原理 及架構圖, 吹設計模式
fixed cache single

  1. 主存 跟不上 cpu 頻率。出現(xiàn)緩存,緩存不同步 MESI解決
    5.java 內存模型 出現(xiàn)工作內存。
    同步 就是一個原子操作
    線程八鎖
    原子性
    synchronized 幾種使用及底層jvm監(jiān)視器,
    lock 重入鎖 condition 通信 AQS同步器 隊列加雙向鏈表,UNSAFE JNI
    countdownlatch semaphore
    cas ABA
    可見性 volaite順序性 。happen-before 指令重排。單例【】
    定時線程池 默認與 scheduleAtFixedRate。scheduleWithFixedDelay 的相互區(qū)別 ,一個等待停止 一個不等待

jdk相關
集合架構圖。比較器兩種
1.hashMap 1.7 1.8
數(shù)據(jù)結構 默認大小, 因子 ,線程是否安全,null值 ,擴容2倍 , 1.8 深度為8 紅黑樹
2.hashTable 與 concurrentHashMap( IOC容器)
3.ArrayList.copyOnWriteArraylist 默認10 擴容 手寫

jvm相關

1.JVM 組成。 運行時架構圖
2.類加載過程 【加載,連接與校驗,準備 初始化。】 及 類加載器 全盤委托機制【相關類默認】雙親委派 【沙箱安全,重復加載】
3.棧 結構
4.堆 結構
5.調優(yōu)jvm jinfo。jstat。jmap。jstack。jvisualvm
6.堆 回收算法 分段GC策略
首先分配到伊甸園區(qū)
大對象直接分配到老年代 分配擔保機制
多次yangGC 幸存 分配到老年代 15歲
7.如何判斷對象被回收,1.引用計數(shù),2.可達性算法GCRoot 與 finalize 兩次標記
8.幾種收集器 及特點
9.調優(yōu)步驟 及 常用參數(shù)
mysql 相關
1.查詢 由機器磁盤原理, 巡道 (非常慢)和 旋轉。故出現(xiàn)索引
2.索引 myisam 和 innodb 的結構 主鍵索引 非主鍵索引 對應區(qū)別 聯(lián)合索引
3.索引優(yōu)化
算法相關 TODO


(30天)4.分布式相關 netty,dubbo,zk, 10

redis,rocketmq,kafka ,8 elk,ss,mongodb 10 協(xié)議網(wǎng)關等 2

1.Netty
netty 創(chuàng)建和啟動流程,架構圖
tcp粘包問題處理,
序列化
空輪訓
線程中的 雙向鏈表結構
內存分配 的 二叉樹

2.zk
分布式 cap。base?;究梢?軟狀態(tài) 最終一致
zab 聯(lián)系 一致性協(xié)議 2pc 3pc paxos
事件通知
選舉算法.
角色
節(jié)點類型
集群模式
水平擴展

3.dubbo
分布式演變
dubbo架構圖
dubbo協(xié)議
dubbo組件
dubbo注冊中心
在生產端可配置消費端的參數(shù)

1)timeout:方法調用超時
2)retries:失敗重試次數(shù),默認重試 2 次
3)loadbalance:負載均衡算法,默認隨機
4)actives 消費者端,最大并發(fā)調用限制
Dubbo默認序列化 及其他序列化
dubbo默認通信 及 其他通信 Mina
dubbo負載均衡算法
多種實現(xiàn)分組
同步阻塞調用,及異步調用流程
提供者失效踢出
管理控制臺作用

4.redis
Redis 快的原因
redis 恢復
redis 緩存淘汰策略
redis 實用場景。redis分布式鎖
redis集群原理。槽位,重定向跳轉,網(wǎng)絡抖動

5.rocketmq
架構圖
生產端 消息類型 同步 異步
消費端 如何消費(push pull )順序消費,重復消費,
服務端 NameServ 和 Broker

6.kafka
選舉
模式:單播 多播
存儲 : 元信息 zk,消息信息 文件
發(fā)送方式 ,分區(qū),hash,輪訓
選舉策略
生產流程 同步異步生產,
消費 是否自動提交消費

7.elk
Nignx 白名單 Htppasswd

8.ss

9.mongodb


(待定)六.微服務 springboot spirngcloud,docker 1。


九.(待定)項目

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容