1. 程式人生 > >重點關註2019:多線程處理、高並發、網絡安全(含答案)

重點關註2019:多線程處理、高並發、網絡安全(含答案)

無需 sele 避免 回滾 alt nth 刪除 func 必備

重點關註:多線程處理、高並發、網絡安全

jQuery?

1. jQuery 庫中的$()是什麽
答:$()函數是jQuery()函數的別稱,常用的方法。

2. 網頁上存在5個<div>元素,如何使用和選擇
答:使用選擇器,常用的選擇器有id選擇器、class選擇器、標簽選擇器。
eg:$("div")會返回所有的div標簽的jQuery對象。

3. jQuery裏的id選擇器和class選擇器的不同
答:id選擇器是使用id來選擇元素,而class選擇器是使用css class來進行選擇元素。
使用場景:當你只需要選擇一個元素時,使用id選擇器,而如果你想要選擇一組具有相同css class

的元素時候,就要使用class下載你去。
使用方式:id選擇器使用的字符"#"和id信息 ,class選擇器使用的是"."和class信息。

4.如何在點擊一個按鈕時候使用jQuery隱藏一個圖片
答:通過id進行隱藏

$(‘#ButtonToClick‘).click(function(){
? ? $(‘#ImageToHide‘).hide();
});

5.$(domcument).ready()是什麽函數

6.JavaScript window.onload 事件和jQuery ready 函數的不通
答:jQuery ready()函數只需要對DOM樹的等待,而無需對圖片和外部資源加載的等待,

執行速度較快。
? ? ?window.onload等待dom被創建還要等待包含大型圖片、音頻、視頻所在外部資源都
? ? ?完全被加載,相對耗時較長。

7 . 如何找到所有HTML select標簽的選中項
答:$(‘[name=NameOfSelectedTag] :selected‘)

8 . jQuery裏的each()是什麽函數
答:each() 是一種遍歷
$(‘[name=NameOfSelectedTag] :selected‘).each(function(selected) {
? ? alert($(selected).text());
});

9 . 合入將一個HTML元素添加到DOM樹中的


答:使用jQuery的appendTo()函數。

10 . 怎麽在jQuery代碼選擇所有在段落內部的超鏈接嗎?
答:使用段落使用<p>標簽,內部的超鏈接 <a>標簽

11 . $(this) 和this關鍵字不同
答:jQuery中前者返回一個jQuery對象,你可以對它調用多個jQuery方法,
? ? this是上下文中當前dom 的操作使用
? ??
12: 如何使用jQuery來提取一個HTML標記的屬性
答:attr()方法

$(‘a‘).each(function(){
? alert($(this).attr(‘href‘))
? });

? 需要註意 attr 一個參數的是獲取,兩個產生賦值。

13: jQuery中的detach() 和 remove() 方法的區別 ? ? ? ?---- 不太明白
答:都是用來移除 dom元素的。
detach():移除被選元素,包括所有文本和子節點。會保留所有綁定的事件、附加的數據.

remove():移除被選元素,包括所有文本和子節點。綁定的事件、附加的數據等都會被移除。

14:jQuery添加 移除 css類
答:addClass() 和 removeClass()

15: cdn 加載jQuery庫優勢 ? ---- 待定

答:加快速度,自動選擇合適的緩存。

16: $().get() 和 $().ajax()方法之間的區別
答:get 只是具有獲取數據的能力
? ? ajax() 可配置性強。

17:jq 方法鏈是什麽
答:一個方法的返回結果調用另一個方法。

18:jq 事件處理返回false會怎麽樣
答:阻塞事件向上冒泡

19:document.getElemengbyId("myId") 還是 $("#myId")效率高
答:第一種,因為它直接調用JavaScript引擎。 ?

sql相關的面試

1. 什麽是存儲過程,為什麽要使用存儲過程。
答:類似於函數,將我們要執行的復雜問題進行一個封裝處理。
這樣寫的優點:將復雜的sql進行統一的封裝方便使用;
? ? ? ? ? ? ? 存儲過程保存在數據庫中;
? ? ? ? ? ? ? 存儲過程是一個預編譯的代碼塊,執行效率比較的高。
不足之處:每個數據庫的存儲過程語法幾乎不一樣,通用性差 不便於維護;
? ? ? ? ? ?業務邏輯放在數據庫上,難以叠代。

2. 什麽是三個範式
答:
第一範式:數據庫表中的字段都是單一屬性的,不可再分,
這個單一屬性由基本類型構成包含 整型、日期、字符型、邏輯型。
第二範式:表中的字段必須完全依賴於全部主鍵而非部分主鍵,即主鍵唯一,
比如:表中的一條數據,id 為1 日期為20190216 姓名 ?silianbo 的數據中?
slianbo 這條數據就依賴 日期20190216存在。
第三範式:非主鍵外的所有字段必須互不依賴,這樣的目的是消除傳遞依賴
比如:一個公司有 研發部 市場部 銷售部,在設計公司人員表的時候?
人員基本信息是一個表 部門信息時一個表 兩個之間通過部門id進行一個關聯。

3. 什麽是視圖?視圖的使用場景有哪些?
答:視圖是一種基於數據庫表的一種虛擬表;
視圖的建立是已存在表的基礎上的,視圖表中沒有真正的數據,真正的數據還是
存儲在基表中的,代碼中對視圖的操作最終哦還是會轉成操作基表,設計視圖的目的
是查詢數據進行一個封裝 避免保留原表信息,但是不會提供查詢效率。

4. drop、delete、truncate的使用場景
答:
drop 和 ?truncate 都屬於ddl,;
delete 屬於dml,需要提交可回滾。

drop 刪除的是表內容和數據。
truncate 清空表內容。
delete 根據where條件進行刪除。

不再需要一張表的時候使用 drop;
想刪除部分數據的 使用 delete + where ;
保留表結構只是想清空表中的數據時使用 truncate。

5.索引是什麽?有什麽作用以及優缺點?
答:索引是一種快速查詢表中的內容的機制,類似於書的目錄,索引運用在表
中的某些字段上,但存儲時,獨立於表之外。
在主鍵上自動建立索引,不需要單獨維護 由數據庫進行管理。
使用場景:
表需要經常進行select操作;
表中的字段經常在where字句或者連接條件中出現。

不建議使用索引的場景:
經常進行insert update delete 操作
表中的數據很少
不常出現在 where字句或者連接條件中。

6. 索引的分類:
唯一索引:唯一索引不允許兩行具有相同的索引值
主鍵索引:每個主鍵唯一 並且不能為空。
聚集索引:表中各行的物理順序和鍵值的邏輯順序相同,每個表只能有一個。
非聚集索引:

7. 事務:
答:一次進行的所有操作算一個事務,執行的結果要麽同時成功,要麽同時失敗。
數據庫事務正確執行的四個基本要素:
原子性、一致性、隔離性、持久性。
比如:銀行之間的相互轉賬。
開啟事務的方式 是關閉自動提交 setAutoCommit(false);

回滾使用 rollback();

8. 數據庫的樂觀鎖和悲觀鎖是什麽?
答:
悲觀鎖:
發生沖突時候屏蔽一切可能違反數據完整性的操作;
在查詢完數據的時候就把事務鎖起來,直到提交事務,實現方式 使用數據庫的鎖機制。
樂觀鎖:
假設不會發生沖突,只在提交操作時檢查是否違反數據的完整性,實現方式 version版本或者時間戳。

9. sql約束有哪幾種:
答:
not null:用於控制字段的內容一定不能為空
unique:控件字段內容不能重復,保證唯一性。
primary key:自動內容不允許重復
check:字段範圍

10:varchar 和 char的區別
答:
char是一種固定長度的類型,varchar 是一種可變長度的類型。

11:sql優化
答:
查詢避免使用 *?
明確查詢的同一字段的多個條件使用 in 代替 or
關鍵字盡量全部大寫,Oracle服務器總是首先會將小寫字母轉成大寫後執行。
獨立sql多使用commit;
清空表內容使用truncate非delete
有索引盡量使用索引
12 : rowid和rownum
答:rowid 是物理地址 ,是唯一不變的,rownum 是相對問題 ?會根據查詢方式的不同進行變換

SELECT *
FROM (SELECT tmp.*, rownum AS row_num FROM (SELECT * FROM table_name ) tmp WHERE ROWNUM <= 20)
WHERE row_num > 10

Spring:

Spring MVC 運行流程:
1.spring mvc將所有的請求都提交給DispatcherServlet,它會委托應用系統的其他模塊負責對請求 進行真正的處理工作。
2.DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller.
3.DispatcherServlet請請求提交到目標Controller
4.Controller進行業務邏輯處理後,會返回一個ModelAndView
5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象
6.視圖對象負責渲染返回給客戶端。

SpringMVC的工作原理
1.客戶端提交請求到前端控制器DispatcherServlet來處理,它會負責調用系統的
其他模塊來處理真正的請求。
2.前端控制器DispatcherServlet收到請求後,將根據請求的信息(URL、HTPP協議
、請求頭、請求參數等)以及HandleMapping找到目標Controller
3.在這個地方Spring會通過HandleAdpter 進行封裝
4.Handle處理完成後,會返回一個ModeAndView
5.modeandview的視圖是邏輯視圖,借助viewResolver完成邏輯視圖到真實視圖的解析工作。
6.通過進行數據的渲染就可以呈現給前臺了。

Spring MVC 啟動流程:
在 web.xml 文件中給SpringMVC的Servlet配置了load-on-startup,所以程序啟動的時候會初始化 Spring MVC,在 HttpServletBean 中將配置的 contextConfigLocation屬性設置到 Servlet 中,然後在FrameworkServlet 中創建了 WebApplicationContext,DispatcherServlet根據contextConfigLocation 配置的 classpath 下的 xml 文件初始化了Spring MVC 總的組件。

Spring 的單例實現原理:
Spring對Bean實現的創建采用單例註冊表的方式進行實現的,而這個註冊表的緩存是
ConcurrentHashMap對象。

Spring 框架中使用到了那些設計模式:
代理模式:AOP
單例模式:在spring配置文件定義bean。
模板方法:restTemplate、JmsTemplate、JpaTemplate。
工廠模式:BeanFactory用來創建對象的實例。

動態代理與cglib實現的區別
jdk動態代理只能對實現了接口的類生產代理,而不能針對類。
cglib是針對類實現代理,主要是對指定的類生成一個子類,覆蓋其中的方法因為是繼承
jdk代理是不需要依賴第三方的庫
cglib必須依賴cglib的類庫
技術分享圖片
順便在此給大家推薦一個Java方面的交流學習群:714526711,裏面會分享一些高級面試題,還有資深架構師錄制的視頻錄像:有Spring,MyBatis,Netty源碼分析,高並發、高性能、分布式、微服務架構的原理,JVM性能優化這些成為架構師必備的知識體系,主要針對Java開發人員提升自己,突破瓶頸,相信你來學習,會有提升和收獲。在這個群裏會有你需要的內容 朋友們請抓緊時間加入進來吧

重點關註2019:多線程處理、高並發、網絡安全(含答案)