每日一練

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/liuxiaowei_java96/article/details/78828258

JSP 簡答題

JSP 中動態 include 與靜態 include 的區別?

動態INCLUDE在使用的時候,會先解析所要包含的頁面(你例子中的included.jsp),解析後在和主頁面放到一起顯示;

靜態INCLUDE在使用的時候,不會解析所要包含的頁面(你例子中的included.htm),也就是說,不管你的included.htm中有什麼,我的任務就是把你包含並顯示,其他的一概不管

jsp:include是先編譯一下included.jsp文件,然後再包含 先編譯,後包含
@include是先把文件包含就來,然後統一編譯 先包含,後編譯

描述 forward 和 redirect 的區別?

轉發是服務器行爲,重定向是客戶端行爲。
區別:
1、從地址欄顯示來說
forward 是服務器請求資源,服務器直接訪問目標地址的 URL,把 URL 的響應內容讀取過來,然後把這些內容再發給瀏覽器,它的地址欄還是原來的地址。
redirect 是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址。所以地址欄顯示的是新的 URL。
2、從數據共享來說
forward:轉發頁面和轉發到的頁面可以共享request裏面的數據。
redirect:不能共享數據。
3、從運用地方來說
forward:一般用於用戶登陸的時候,根據角色轉發到相應的模塊。
redirect:一般用於用戶註銷登陸時返回主頁面和跳轉到其它的網站等。

B/S 與 C/S 的聯繫與區別。

C/S (Client/Server)結構,即大家熟知的客戶機和服務器結構。它是軟件系統體系結構,通過它可以充分利用兩端硬件環境的優勢,將任務合理分配到 Client 端和 Server 端來實現,降低了系統的通訊開銷。

B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨着 Internet 技術的興起,對 C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過 WWW瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,但是主要事務邏輯在服務器端(Server)實現。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。

Java 簡答題

什麼是數據庫連接池?

像打開關閉數據庫連接這種和數據庫的交互可能是很費時的,尤其是當客戶端數量增加的時候,會消耗大量的資源,成本是非常高的。可以在應用服務器啓動的時候建立很多個數據庫連接並維護在一個池中。連接請求由池中的連接提供。在連接使用完畢以後,把連接歸還到池中,以用於滿足將來更多的請求。

HashMap 和 Hashtable 的區別?

HashMap和Hashtable都實現了Map接口,主要的區別有:線程安全性,同步(synchronization),以及速度。
1、HashMap幾乎可以等價於Hashtable,除了HashMap是非synchronized的,並可以接受null(HashMap可以接受爲null的鍵值(key)和值(value),而Hashtable則不行)。
2、HashMap是非synchronized,而Hashtable是synchronized,這意味着Hashtable是線程安全的,多個線程可以共享一個Hashtable;而如果沒有正確的同步的話,多個線程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的擴展性更好。
3、另一個區別是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以當有其它線程改變了HashMap的結構(增加或者移除元素),將會拋出ConcurrentModificationException,但迭代器本身的remove()方法移除元素則不會拋出ConcurrentModificationException異常。但這並不是一個一定發生的行爲,要看JVM。這條同樣也是Enumeration和Iterator的區別。
4、由於Hashtable是線程安全的也是synchronized,所以在單線程環境下它比HashMap要慢。如果你不需要同步,只需要單一線程,那麼使用HashMap性能要好過Hashtable。
5、HashMap不能保證隨着時間的推移Map中的元素次序是不變的。

Java 中實現多態的機制是什麼?

父類或接口定義的引用變量可以指向子類或具體實現類的實例對象,而程序調用的方法在運行期才動態綁定,這裏的方法是指引用變量所指向的具體實例對象的方法,也就是內存里正在運行的那個對象的方法,而不是引用變量的類型中定義的方法。

Java 有那些基本數據類型,String 是不是基本數據類型,他們有何區別?

基本類型共有八種,它們分別都有相對應的包裝類。
基本類型可以分爲三類:
字符類型 char;
布爾類型 boolean;
數值類型 byte、short、int、long、float、double。
String 是引用類型(類類型)。

數組(Array)和列表(ArrayList)有什麼區別?什麼時候應該使用 Array 而不是 ArrayList?

1、存儲內容比較:
Array 數組可以包含基本類型和對象類型,
ArrayList 卻只能包含對象類型。
Array 數組在存放的時候一定是同種類型的元素。ArrayList 就不一定了 。
2、空間大小比較:
Array 數組的空間大小是固定的,所以需要事前確定合適的空間大小。
ArrayList 的空間是動態增長的,而且,每次添加新的元素的時候都會檢查內部數組的空間是否足夠。
3.方法上的比較:
ArrayList 方法上比 Array 更多樣化,比如添加全部 addAll()、刪除全部 removeAll()、返回迭代器 iterator() 等。
適用場景:
如果想要保存一些在整個程序運行期間都會存在而且不變的數據,我們可以將它們放進一個全局數組裏, 但是如果我們單純只是想要以數組的形式保存數據,而不對數據進行增加等操作,只是方便我們進行查找的話,那麼,我們就選擇 ArrayList。
如果我們需要對元素進行頻繁的移動或刪除,或者是處理的是超大量的數據,那麼,使用 ArrayList 就真的不是一個好的選擇,因爲它的效率很低,使用數組進行這樣的動作就很麻煩,那麼,我們可以考慮選擇 LinkedList。

MySQL 簡答題

數據庫事務的四個特性及含義?

原子性:整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。

一致性:在事務開始之前和事務結束以後,數據庫的完整性約束沒有被破壞。

隔離性:隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。如果有兩個事務,運行在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認爲只有該事務在使用系統。這種屬性有時稱爲串行化,爲了防止事務操作間的混淆,必須串行化或序列化請求,使得在同一時間僅有一個請求用於同一數據。

持久性:在事務完成以後,該事務所對數據庫所作的更改便持久的保存在數據庫之中,並不會被回滾。

數據庫裏面的索引和約束是什麼?

索引是爲了提高數據的檢索速度,索引是建立在數據表上,根據一個或多個字段建立的約束是爲了保持數據的完整性,約束有非空約束,主鍵約束,外鍵約束等等。

請描述 MySQL 從安裝到配置的全部詳細過程(確保一臺新電腦可以順利使用 MySQL)。

1、去官網下載 MySQL 配置版;
2、將 MySQL 註冊到系統服務中;
3、將 MySQL 的 bin 目錄配置到系統環境變量 path 中;
4、通過命令 mysql -uroot -p進入數據庫;

常見的幾種約束有哪些?分別代表什麼意思?如何使用?

常用的約束有主鍵約束,外鍵約束,唯一約束,默認約束 。
1、主鍵:PRIMARY KEY(主鍵字段)保證了實體完整性,一個表只有一個主鍵,但一個主鍵可以包含多個字段,主鍵字段不能爲空;
2、唯一:UNIQUE(約束字段)保證了實體完整性,一個表有多個唯一約束,一個唯一約束可有包含多個字段;
3、外鍵:FOREIGN KEY(外鍵字段),保證了引用完整性,一個表可以有多個外鍵;
4、默認值:DEFAULT(默認值的表達式或NULL),保證了域完整性,一個表可以有多個默認值約束,但是一個字段只有一個默認值。

JavaScript 簡答題

列舉 Java 和 JavaScript 之間的區別?

Java是一門十分完整、成熟的編程語言。相比之下,JavaScript 是一個可以被引入 HTML 頁面的編程語言。這兩種語言並不完全相互依賴,而是針對不同的意圖而設計的。 Java 是一種面向對象編程或結構化編程語言,類似的如 C ++ 或 C,而 JavaScript 是客戶端腳本語言,它被稱爲非結構化編程。

請你說說 split() 與 join() 函數的區別?

前者是切割成數組的形式,後者是將數組轉換成字符串。join 函數獲取一批字符串,然後用分隔符字符串將它們連接起來,從而返回一個字符串。split 函數獲取一個字符串,然後在分隔符處將其斷開,從而返回一批字符串。但是,這兩個函數之間的主要區別在於 Join 可以使用任何分隔符字符串將多個字符串連接起來,而 split 只能使用一個字符分隔符將字符串斷開。
簡單地說,如果你用 split,是把一串字符(根據某個分隔符)分成若干個元素存放在一個數組裏。而 join 是把數組中的字符串連成一個長串,可以大體上認爲是 split 的逆操作。

說說你對 json 的理解?

a、JSON 指的是 JavaScript 對象表示法(JavaScript Object Notation);
b、JSON 是輕量級的文本數據交換格式,並不是編程語言;
c、JSON 獨立於語言存在;
d、JSON 具有自我描述性,更易理解;
e、JSON 可以將 JavaScript 對象中表示的一組數據轉換爲字符串,然後就可以在函數之間輕鬆地傳遞這個字符串,或者在異步應用程序中傳遞數據。

DOM 操作怎樣添加、移除、移動、複製、創建和查找節點?

1、創建新節點
創建一個具體的元素: createElement()
創建一個文本節點:createTextNode()
2、添加、移除、替換、插入
添加:appendChild()
移除:removeChild()
替換:replaceChild()
插入:insertBefore() 在已有的子節點前插入一個新的子節點
3、查找
通過標籤名稱:getElementsByTagName()
通過元素的Name屬性的值:getElementsByName()
通過元素Id:getElementById()

談談你對Ajax 的理解?(概念、特點、作用)

AJAX 全稱爲「Asynchronous JavaScript And XML」(異步 JavaScript 和 XML) 是指一種創建交互式網頁應用的開發技術、改善用戶體驗,實現無刷新效果。
優點
a、無刷新更新數據,能在不刷新整個頁面的前提下與服務器通信維護數據;
b、異步與服務器通信,不需要打斷用戶的操作,具有更加迅速的響應能力;
c、提高 Web 程序的性能;
d、基於標準被廣泛支持,不需要下載插件;
缺點
a、破壞瀏覽器「前進」、「後退」按鈕的正常功能,可以通過簡單的插件彌補;
b、對搜索引擎的支持不足;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章