1.線程與進程的區別
進程是一種抽象的描述,一個應用就是一個進程,例如我們的java進程,
線程是一種具體的描述,java進程中有我們的logback-append線程,http線程,自定義實現線程等
關係是一個大類到細分的關係
2.內核線程和用戶線程
內核線程:管理文件資源,執行一些特定的功能, 文件讀寫,函數 執行,運行環境,屬於操作系統底層層面
用戶線程:線程的調度,創建都由自己決定,例如我們java應用程序進程的線程,屬於程序應用層面的東西
3.Finalizer
收尾:每個類都有一個特殊的方法finalizer,它不能被直接調用,而被JVM在適當的時候調用,通常用來處理一些清理資源的工作,因此稱爲收尾機制。
4.DML語言
DML(Data Manipulation Language 數據操控語言)
5.SLB
負載均衡(Server Load Balance),簡稱SLB)
6.XMLHttpRequest 對象
是一個與後臺進行數據交互的前端對象,基於Http協議,支持同步和異步請求方式
7.什麼是方法回調
客戶端調用服務起執行一個函數,當服務器端執行完成之後反過來調用客戶端的函數
回調(個人理解):類A中任意方法中調用了類B的方法,而B方法又調用了A中某回調方法;
現實場景下:A約B一起喫飯,B有事要做,等B事情做完,讓B通知一下A(回調方法就是去喫飯)
8.ServletRequest和HttpServletRequest的區別
servlet 本意是小程序應用的意思,
HttpServletRequest 是ServletRequest一個繼承關係,利用servlet處理多種形式請求響應的一個具體實現接口
servlet理論上可以處理多種形式的請求響應形式,HTTP是其中一種。
9.在dump中,線程一般存在如下幾種狀態:
1、RUNNABLE,線程處於執行中
2、BLOCKED,線程被阻塞
3、WAITING,線程正在等待
4.TIMED_WAITING
10.上下文切換 (進程上下文,線程上下文)
linux是一個多任務操作系統,它支持遠大於CPU數量的任務同時運行,當然這些任務實際上並不是真的同時在運行,而是因爲系統在很短的時間內,將CPU輪流分配給它們,造成多任務同時運行的錯覺
而在每個任務運行前,CPU都需要知道任務從哪裏加載,又從哪裏開始運行,也就是說需要系統事先幫它設置好CPU寄存器和程序計數器。
CPU的上下文切換就是先把前一個任務的CPU上下文(也就是CPU寄存器和程序計數器)保存起來,然後加載新任務的上下文到這些寄存器和程序計數器,最後再跳轉到程序計數器所指的新位置,運行新任務。
11.BPMN
BPMN:業務流程建模與標註(Business Process Model and Notation,BPMN)
12.Maven是什麼?
Maven,是專門用於構建和管理Java相關項目的工具