2.tomcat工作原理:
1. tomcat需要監聽本機上的某個埠。
2. tomcat需要抓取此埠上來自客戶端的鏈結並獲得請求呼叫的方法與引數。
3. tomcat需要根據請求呼叫的方法,動態地載入方法所在的類,完成類的例項化並通過該例項獲得需要的方法最終將請求傳入方法執行。
4. 將結果返回給客戶端(jsp/html頁面、json/xml字串)。
4.netty與springboot整合
1 先寫好基本的netty客戶端和netty服務的**。
2.搭建好基本的springboot專案。
3.將netty服務端**的啟動**和關閉**分離,服務端加上@component註解,交由spring管理例項。
4.springboot啟動時,將netty服務給啟動;同時springboot停止時,將netty服務銷毀
5.activiti根據工作負荷安排任務
可以將業務表與activiti的表關聯起來,業務表裡也存乙個processid
根據task -》 processinstance -》 businesskey -》 業務表
7.git分支管理:
一、主分支master
首先,**庫應該有乙個、且僅有乙個主分支。所有提供給使用者使用的正式版本,都在這個主分支上發布。
git主分支的名字,預設叫做master。它是自動建立的,版本庫初始化以後,預設就是在主分支在進行開發。
二、開發分支develop
主分支只用來分布重大版本,日常開發應該在另一條分支上完成。我們把開發用的分支,叫做develop。
三、臨時性分支
前面講到版本庫的兩條主要分支:master和develop。前者用於正式發布,後者用於日常開發。其實,常設分支只需要這兩條就夠了,不需要其他了。
但是,除了常設分支以外,還有一些臨時性分支,用於應對一些特定目的的版本開發。臨時性分支主要有三種:
四、 功能分支
接下來,乙個個來看這三種"臨時性分支"。
第一種是功能分支,它是為了開發某種特定功能,從develop分支上面分出來的。開發完成後,要再併入develop。
五、預發布分支
第二種是預發布分支,它是指發布正式版本之前(即合併到master分支之前),我們可能需要有乙個預發布的版本進行測試。
預發布分支是從develop分支上面分出來的,預發布結束以後,必須合併進develop和master分支。它的命名,可以採用release-*的形式。
六、修補bug分支
最後一種是修補bug分支。軟體正式發布以後,難免會出現bug。這時就需要建立乙個分支,進行bug修補。
修補bug分支是從master分支上面分出來的。修補結束以後,再合併進master和develop分支。它的命名,可以採用fixbug-*的形式。
可以利用jekins持續整合,減少人工干預,流程如下:
開發工程師提交**到git
jekins接收到通知,執行任務
獲取**
專案構建
推送映象到docker倉庫
測試伺服器拉取映象,建立容器啟動容器
8.序列化分為兩大部分:序列化和反序列化。序列化是這個過程的第一部分,將資料分解成位元組流,以便儲存在檔案中或在網路上傳輸。反序列化就是開啟位元組流並重構物件。
equals是判斷兩個變數或者例項指向同乙個記憶體空間的值是不是相同
而==是判斷兩個變數或者例項是不是指向同乙個記憶體空間
9.重寫equals和hashcode
當物件無需建立像hashmap、hashset等集合時,可以不用重寫hashcode方法,但是如果有使用到物件的雜湊集合等操作時,必須重寫hashcode()和equals()。
hashcode主要用於提公升查詢效率提高雜湊表效能,來確定在雜湊結構中物件的儲存位址
重寫equals()必須重寫hashcode()
雜湊儲存結構中,新增元素重複性校驗的標準就是先檢查hashcode值,後判斷equals()
兩個物件equals()相等,hashcode()必定相等
兩個物件hashcode()不等,equals()必定也不等
兩個物件hashcode()相等,物件不一定相等,需要通過equals()進一步判斷。
10.跨域,指的是瀏覽器不能執行其他**的指令碼。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制
11.冪等性:
在資料庫裡面做唯一索引
,或者用redis分布式鎖實現
12.@transaction 放在service中
不生效原因:
springmvc註解掃瞄是優先於spirng.xml,導致@tractional註解沒來得及對方法進行事務增強,從而導致事務沒有註冊
13.jackson 如果物件雙向關聯會出現迴圈引用,
@jsonignoreproperties,對引用的物件進行屬性過濾
14.springboot 異常處理機制:
spring boot對異常的處理有一套預設的機制:當應用中產生異常時,spring boot根據傳送請求頭中的accept是否包含text/html來分別返回不同的響應資訊。當從瀏覽器位址列中訪問應用介面時,請求頭中的accept便會包含text/html資訊,產生異常時,spring boot通過org.springframework.web.servlet.modelandview物件來裝載異常資訊,並以html的格式返回;而當從客戶端訪問應用介面產生異常時(客戶端訪問時,請求頭中的accept不包含text/html),spring boot則以json的格式返回異常資訊
18.public class maintest
} class generatep
public void generatep(int index)
system.out.println();
return; }
for(int x = 1; x <= n; x++)
} } }
19.public class prizecommision1 extends prizehandler
else
system.out.println(prize);
return prize; }
} public class prizecommision2 extends prizehandler
else
system.out.println(prize);
return prize; }
} public class prizecommision3 extends prizehandler
else
system.out.println(prize);
return prize; }
} public class prizecommision4 extends prizehandler
else
system.out.println(prize);
return prize; }
} public class prizecommision5 extends prizehandler
else
system.out.println(prize);
return prize; }
} public class prizecommision6 extends prizehandler
system.out.println(prize);
return prize; }
} public abstract class prizehandler
public abstract long compute(long profit); }
public class prizehandle***ctory }
public class testhandler
public void sethandler(prizehandler handler)
public long compute(long profit) }
public class testmain }
}
C 面試題答案
1 c 函式中值的傳遞方式有哪幾種?答 c 函式的三種傳遞方式為 值傳遞 指標傳遞和引用傳遞。2 標頭檔案的作用是什麼?答 一 通過標頭檔案來呼叫庫功能。在很多場合,源 不便 或不准 向使用者公布,只要向使用者提供標頭檔案和二進位制的庫即可。使用者只需要按照標頭檔案中的介面宣告來呼叫庫功能,而不必關...
微軟面試題答案
第一組題答案 1 三根繩,第一根點燃兩端,第二根點燃一端,第三根不點 第一根和第二根同是點燃,等到第一根滅了,再點燃第二個的另一端 這樣等到第二根燒完只要15分鐘 最後再燒第三根1小時15分 2 根據抽屜原理,4個 3 3公升裝滿 3公升 5公升 全注入 3公升裝滿 3公升 5公升 剩1公升 5公升...
部分C 面試題答案
1 c 函式中值的傳遞方式有哪幾種 答 c 函式的三種傳遞方式為 值傳遞 指標傳遞和引用傳遞。2 標頭檔案的作用是什麼 答 一 通過標頭檔案來呼叫庫功能。在很多場合,源 不便 或不准 向使用者公布,只要向使用者提供標頭檔案和二進位制的庫即可。使用者只需要按照標頭檔案中的介面宣告來呼叫庫功能,而不必關...