欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      java學(xué)習(xí)總結(jié)(基礎(chǔ)加web)

      時間:2019-05-12 15:18:37下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《java學(xué)習(xí)總結(jié)(基礎(chǔ)加web)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《java學(xué)習(xí)總結(jié)(基礎(chǔ)加web)》。

      第一篇:java學(xué)習(xí)總結(jié)(基礎(chǔ)加web)

      Java考試題

      Java基礎(chǔ)部分

      1、請簡要描述oop的主要特征,并談?wù)剬@些特征的理解。

      Oop主要特征:抽象,封裝,繼承,多態(tài); 抽象:忽略與當(dāng)前主題無關(guān)的部分,抓住重點

      封裝:使用方法將類的屬性隱藏起來,控制用戶對類的修改和數(shù)據(jù)訪問的程度,繼承:子類繼承父類的方法和屬性,使程序結(jié)構(gòu)清晰,提高挨罵復(fù)用,一種is a 的關(guān)系。多態(tài):不同對象對統(tǒng)一消息進(jìn)行回應(yīng)。一種多種同名方法共存

      2、char型變量中能不能存貯一個中文漢字?為什么? 能,java中編碼方式是unicode,char占2個字節(jié),一個漢字剛好兩個字節(jié)所以可以

      3、short s1 = 1;s1 = s1 + 1;有什么錯? short s1 = 1;s1 += 1;有什么錯?

      錯,需要強制轉(zhuǎn)型為short,+=是java定義的運算符故編譯是jvm會自動處理

      4、請說明break,continue,return的作用。

      Break,可用于switch分支一條case語句結(jié)束以后,可用于跳出循環(huán) Contiue :用于跳出里層循環(huán)

      Return :也可用于終止循環(huán),有返回類型的方法是用與返回

      5、用abstract修飾符修飾的類和方法有什么特點?

      修飾的類為抽象類,包含有抽象方法,修飾的方法,為抽象方法只有方法體而沒有具體實現(xiàn)

      6、protect 修飾的方法與不加任何修飾的方法有什么不同? 加上為修飾后訪問為同一包中和該類的子類,不加為默認(rèn)的包訪問權(quán)限。

      7、什么是對象?什么是類?它們之間有什么關(guān)系

      對象:具有某些屬性和行為的名詞,類:具有相同屬性以及相同行為的一組對象,關(guān)系:對象是類的實例化

      8、請描述對象的初始化順序。

      對象初始化順序:加載類,分配內(nèi)存空間,清零,加載變量然后方法。先父類靜態(tài)變量,父類靜態(tài)塊,子類靜態(tài)成員變量,子類靜態(tài)塊,父類非靜態(tài)變量,父類構(gòu)造函數(shù),子類非靜態(tài)變量,子類構(gòu)造函數(shù)

      9、什么是繼承?繼承的特性可給面向?qū)ο缶幊處硎裁春锰帲?/p>

      繼承:子類繼承父類的方法和屬性,使程序結(jié)構(gòu)清晰,提高代碼復(fù)用,一種is a 的關(guān)系。

      10、什么是方法的覆蓋? 與方法的重載有何不同?方法的覆蓋與屬性的隱藏有何不同?

      方法覆蓋:子類重寫與父類同名的方法,擁有相同的參數(shù)名和返回值,多態(tài)的一種體先,重載:具有相同的方法名但是有不同的返回類型或參數(shù)。

      屬性隱藏:子類定義與父類同名的屬性,父類的屬性就會被隱藏。

      11、請簡述接口和抽象類的區(qū)別。并分別舉例說明應(yīng)用場景。

      接口:接口中全是抽象方法,若一個類實現(xiàn)這個接口就必須是先接口中所有的方法。關(guān)鍵字implements和interface 抽象類:用關(guān)鍵字abstract修飾,包含抽象方法(僅有方法體而沒有具體實現(xiàn)),可以包含普通方法和構(gòu)造方法,使用時不能用new創(chuàng)建實例

      12、說出ArrayList,Vector, LinkedList的存儲性能和特性

      ArrayList和Vector都是集合,按數(shù)組的方式存儲,查找比較快,vector是線程安全的,但效率上低于arraylist,Linkedlist:鏈?zhǔn)郊想p向鏈表,按序號索引數(shù)據(jù)進(jìn)行向前向后遍歷,所以插入和刪除數(shù)據(jù)最快。

      13、請說明Collection和Collections的區(qū)別。

      Collection是一個j集合的接口,set和list都實現(xiàn)這個接口

      Collection:是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程安全化等操作

      14、Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?

      hashset我們自己區(qū)分的時候利用迭代器 iterator,內(nèi)部利用hashcode然后equals方法實現(xiàn)區(qū)分是否重復(fù)。

      15、Error和Exception它們繼承自哪個類?有什么區(qū)別? 繼承Throwable這個類,區(qū)別:error錯誤,一般來說很難回復(fù),如內(nèi)存溢出,exception,則為程序正常運行時永遠(yuǎn)不會發(fā)生的的異常,程序員需要處理。

      16、什么情況出現(xiàn)NullPointerException異常?怎樣處理?

      使用一個對象是,對象為null,在適用對象前進(jìn)行判斷

      17、請列舉Java類中的方法修飾符,并簡述其含義。

      18、try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?

      會,在return前

      19、Java中如何讀寫文件,請寫出Java代碼實現(xiàn)讀寫文件的基本過程。20、常見的xml解析方式有哪些?區(qū)別是什么?

      Sax,dom:dom一次性全部讀取xml文件,創(chuàng)建一個一顆文檔樹,故讀取大文件是熟讀緩慢

      21、簡要描述數(shù)據(jù)庫連接池的工作機制,并列出使用數(shù)據(jù)庫連接池的優(yōu)點。

      程序運行時,創(chuàng)建一定數(shù)量的池連接,比在以后維持不少于這個數(shù)量的連接。提高程序運行的效率

      22、對于一個Linux命令,可以通過哪些方法了解其具體的使用方法。

      Help,info,man,使用格式 help ls;ls –help;info ls;man ls;

      23、Linux系統(tǒng)中,請簡要描述文件和目錄的訪問權(quán)限的9個權(quán)限位的作用,請列舉修改權(quán)限的命令。

      Xxxxxxxxx;前三位表示所有者的可讀可寫可操作權(quán)限,中間所有者的所在用戶組;后三位是其他用戶,Chmod 777 要更改權(quán)限的對象。

      24、數(shù)據(jù)庫中,什么叫視圖(View),什么叫索引(Index)?什么情況下會用到索引,視圖的主要作用有哪些。

      視圖 :一張?zhí)摂M的邏輯表。并不包含實際的數(shù)據(jù),相當(dāng)于一個窗口,可通過該窗口對數(shù)據(jù)進(jìn)行查詢和修改。作用:使復(fù)雜查詢變得容易,提供數(shù)據(jù)獨立性,限制數(shù)據(jù)訪問。索引:幫助查找數(shù)據(jù)。用指針加速取回數(shù)據(jù)。

      Java web部分

      1、請簡述對J2EE的理解。

      由sun公司提供的一種企業(yè)級基于組件的java開發(fā)規(guī)范。J2EE定義了13種組件如servlet,jsp,jdbc等。

      2、簡要描述對mvc的理解,并舉例說明在項目中的實現(xiàn)思路

      Mvc是一種開發(fā)模式,優(yōu)點:耦合性低,可維護(hù)性高。,分別代表三個單詞:Modle,Veiw,Control,模型層控制程序的業(yè)務(wù)邏輯,視圖層,是接受用戶輸入和顯示數(shù)據(jù)給用戶與用戶交互,控制層:控制程序走向,模型層與視圖層的中間橋梁。

      3、Javascript有什么特點?并說明其主要用途。

      Javascript: 一種腳本語言,是基于事件的面向?qū)ο笳Z言,弱數(shù)據(jù)類型,安全,運行速度快,有強大的函數(shù)庫,主要用途:客戶端驗證用戶輸入,給用戶動態(tài)的提示。美化頁面。

      4、什么是servlet容器?它的作用是什么? Servlet容器:用于創(chuàng)建和維護(hù)servlet,提供一個運行環(huán)境給servlet的東西。

      5、請描述servlet的生命周期以及在每個階段所調(diào)用的方法。

      實例化:有容器進(jìn)行。初始化:調(diào)用init()方法。處理請求:根據(jù)請求方式的不同調(diào)用service()中的不同方法如:doget,dopost。銷毀:調(diào)用destroy方法。

      6、怎樣在web.xml文件中注冊一個servlet?

      主要兩大塊:

      7、請描述在servlet中forward和redirect的區(qū)別與聯(lián)系。

      Forword:請求轉(zhuǎn)發(fā),服務(wù)器跳轉(zhuǎn),一次請求,地址欄不改變,request對象中的信息不丟失。Redirect:請求重定向,客戶端跳轉(zhuǎn),兩次請求,地址欄改變,request對象中的信息丟失。

      8、請描述jsp的執(zhí)行過程。

      Jsp執(zhí)行經(jīng)過兩個階段:

      1、轉(zhuǎn)譯階段,將jsp轉(zhuǎn)譯為servlet,2、編譯servlet,生成.class文件,3、調(diào)用.class文件生成html頁面顯示給用戶。

      9、如何執(zhí)行一個線程安全的JSP?

      <%@ page isThreadSafe=true%>

      10、Jsp的9個內(nèi)置對象是什么?他們分別有什么作用。

      Jsp九大內(nèi)置對象:page,request,response,session,application,pagecontext,config,exception,out。四個域?qū)ο螅簅ut輸出信息,e:處理異常,config:拿到一些配置信息。

      11、請列舉出至少5個request對象的常用的方法。

      12、Jsp的四個域?qū)ο笫鞘裁??他們的“域”指的是什么?/p>

      Page,requerst,session、,application,域表示有效時間,及在什么范圍內(nèi)有效。

      13、請列列舉四個jsp 指令,并說明它們的含義。

      Page:設(shè)置頁面屬性,taglib,:標(biāo)簽指令,include:包含指令。

      14、Jsp有哪些動作?作用是什么?

      15、請描述Jsp和servlet的區(qū)別與聯(lián)系。

      。。。。

      16、請說出在jsp中靜態(tài)包含和動態(tài)包含技術(shù)的異同點。

      靜態(tài)是先包含再執(zhí)行,動態(tài)為先執(zhí)行在編譯。

      17、在 JSP 開發(fā)過程中,對于同一個用戶的會話,要想在不同的頁面之間共享數(shù)據(jù),可以有幾種選擇?請一一列舉

      Request,session,application,cookie,重寫地址欄,隱藏域。

      18、請說明過濾器的工作原理以及重要的接口。

      過濾器:當(dāng)一個請求到達(dá)是過濾器會進(jìn)行攔截,服務(wù)器響應(yīng)消息時也會同樣攔截。根據(jù)編寫的故偶濾器確定是否放行和是否要做相應(yīng)的處理。重要接口:filter,filterchain,filterconfig。

      19、什么是監(jiān)聽器?它的作用是什么,請舉例說明。

      監(jiān)聽器是:專門用于對其他對象身上發(fā)生的事件或狀態(tài)改變進(jìn)行監(jiān)聽和相應(yīng)處理的對象,當(dāng)被監(jiān)視的對象發(fā)生情況時。監(jiān)聽域?qū)ο笞陨淼膭?chuàng)建和銷毀的事件監(jiān)聽器 監(jiān)聽域?qū)ο笾械膶傩缘脑黾雍蛣h除的事件監(jiān)聽器

      監(jiān)聽綁定到 HttpSession 域中的某個對象的狀態(tài)的事件監(jiān)聽器

      20、使用http傳輸協(xié)議將客戶端的請求傳送至服務(wù)器端最常用的是哪兩種方式,他們的區(qū)別是什么。

      Get,post,Get:方式相對來說速度較快,當(dāng)傳輸?shù)臄?shù)據(jù)量要小于1kb,傳輸?shù)男畔诘刂窓陲@示,安全性存在隱患。Post:比get方式安全,傳遞的數(shù)據(jù)量也比之要大。

      21、簡述struts2的工作流程。

      Struts2:核心為一個過濾器,當(dāng)一個請求到達(dá)的時候,服務(wù)器對之進(jìn)行攔截,參考struts.xml文件,尋找到對應(yīng)配置的action,尋找到action類,對請求做出相應(yīng)的處理。處理完后返回一個String,參考struts.xml文件中的配置的result顯示相應(yīng)的頁面給用戶

      22、Struts2配置文件struts.xml中有哪些常用的配置項,它們分別有什么作用?

      23、請說明在ognl表達(dá)式中#、$、%的作用。

      Ognl表達(dá)式:#是取非valuestack中的值時使用,如request?.還有操作集合是時也可以用到。

      $配置文件中那取action中的值是會使用到。國際化資源文件中引用ognl表達(dá)式 %當(dāng)強制聲明為ognl表達(dá)式或字符串是會使用到

      24、寫出3組常見的Struts標(biāo)簽,并簡述其作用。

      25、value stack是什么?它的作用是什么?在頁面中怎樣訪問?

      Struts的值棧,存放一些請求響應(yīng)信息,直接訪問。

      26、請簡要描述Struts2中攔截器的主要作用、配置及執(zhí)行流程。

      攔截器,servlet中的過濾器相似,當(dāng)客戶端請求到達(dá)是經(jīng)過攔截器,響應(yīng)是也會經(jīng)過,是一種aop的思想。配置:interceptor Servlet是線程不安全的,采用多線程的方式調(diào)用service方法。CGI就是單線程,所以servlet比之效率高。Servlet實現(xiàn)單線程的方法:實現(xiàn)singleThreadmodel。

      創(chuàng)建線程的兩種方式:繼承Thread這個類,或?qū)崿F(xiàn)runnable這個接口,啟動線程:statrt(),啟動后會調(diào)用run方法。Sleep和wait()區(qū)別:sleep不會釋放鎖。Wait()釋放鎖,必須有notify()喚醒。多線程中實現(xiàn)線程安全:利用關(guān)鍵字synchronized,一把鎖,實現(xiàn)同步。死鎖的條件:互斥條件,不可剝奪資源,循環(huán)等待,請求與保持條件。反射:加載驅(qū)動,Class.forName(“類的完整類名”)通過一個class對象拿到其相應(yīng)的方法屬性。組件:就是對數(shù)據(jù)和方法進(jìn)行了簡單封裝。

      第二篇:JAVA WEB 基礎(chǔ)考試題

      一、填空題(每空2分,共30分)

      1、在tomcat上發(fā)布javaweb應(yīng)用時的默認(rèn)目錄是__webapps___目錄。

      2、javaweb應(yīng)用的部署描述符是指

      web.xml__ 文件。

      3、在tomcat中訪問helloapp應(yīng)用的login.html文件時,在瀏覽器地址欄應(yīng)寫的url為:__http://localhost:8080/helloapp/login.html___。

      4、Servlet容器啟動每一個web應(yīng)用時,都會為它創(chuàng)建一個唯一的___ServletContext__對象,該對象和web應(yīng)用有相同的生命周期。

      5、請求轉(zhuǎn)發(fā)源組件的響應(yīng)結(jié)果___不會__發(fā)送到客戶端,包含__會__發(fā)送到客戶端。(填“會”或“不會”)

      6、jsp中實現(xiàn)請求轉(zhuǎn)發(fā)的標(biāo)記為:_________。

      7、在JSP中,request 內(nèi)置對象代表請求消息,response 內(nèi)置對象代表響應(yīng)消息,___session_內(nèi)置對象代表會話。

      8、如果使用第四類jdbc驅(qū)動器連接數(shù)據(jù)庫,jar文件的存放位置為“web應(yīng)用/_WEB-INF /lib_______”。

      9、Servlet容器為每一個HttpSession對象分配一個唯一標(biāo)識符,叫做___SessionID___。

      10、javaweb在mvc設(shè)計模式下,___javabean___是模型,___jsp是視圖,__servlet__是控制器。

      二、選擇題(每題2分,共30分)

      1、下面哪一個選項不是http響應(yīng)的一部分?(c)

      a)響應(yīng)頭 b)響應(yīng)正文 c)協(xié)議版本號 d)狀態(tài)行

      2、http請求及響應(yīng)的正文部分可以是任意格式的數(shù)據(jù),要保證接收方能看得 懂發(fā)送方發(fā)送的數(shù)據(jù),http協(xié)議采用(d)協(xié)議來規(guī)范正文的數(shù)據(jù)格式 ? a)FTP b)TCP c)HTTP d)MIME

      3、Servlet API 由哪兩個包組成?(兩個答案)(ac)a)javax.servlet b)javax.servlet.jsp c)javax.servlet.http d)java.servlet

      4、一個servlet的生命周期不包括(b)方法? a)init()方法

      b)invalidate()方法 c)service()方法 d)destroy()方法

      5、HttpServletRequest對象的(c)方法能夠獲取一個表單參數(shù)的值: a)getQuaryString()b)getPathInfo()c)getParameter()d)getAttribute()

      6、下面對servlet中重定向說法描述錯誤的是(d)

      a)使用的是HttpServletResponse接口的sendRedirect()方法 b)源組件的響應(yīng)結(jié)果不會發(fā)送給客戶端 c)sendRedirect()方法后的代碼仍會執(zhí)行

      d)源組件和目標(biāo)組件共享ServletRequest對象

      7、jsp指令不包括(c)a)page指令 b)taglib指令 c)import指令 d)include指令

      8、jsp中java表達(dá)式的語法格式為:(a)a)<%= %> b)<%!%> c)<%@ %> d)<%

      %>

      9、可以執(zhí)行請求轉(zhuǎn)發(fā)的操作是(d)。a)

      jsp中response內(nèi)置對象的sendRedirect()方法 b)

      標(biāo)記

      c)

      RequestDispatcher對象的include()方法 d)

      RequestDispatcher對象的forward()方法

      10、(d)內(nèi)置對象可以處理jsp頁面運行中的錯誤或者異常 a)pageContext b)page c)session d)exception

      11、下面對jdbc api描述錯誤的是(d)

      a)DriverManager接口的getConnection()方法可以建立和數(shù)據(jù)庫的連接 b)Connection接口的createStatement()方法可以創(chuàng)建一個Statement對象 c)Statement接口的executeQuery()方法可以發(fā)送select語句給數(shù)據(jù)庫 d)ResultSet接口表示執(zhí)行insert語句后得到的結(jié)果集

      12、JavaBean的scope取什么值可使該javabean被多個用戶共享,即和web 應(yīng)用有相同的生命周期?(d)a)

      page b)

      request c)

      session d)

      application

      13、下面哪個不是JSP中和javabean相關(guān)的標(biāo)記?(b)a)

      b)

      c)

      d)

      14、以下關(guān)于EL和JSTL說法錯誤的是?(d)a)

      EL是一種簡潔的數(shù)據(jù)訪問語言 b)

      EL表達(dá)式基本形式:${var} c)

      JSTL的全稱是JavaServer Pages Standard Tag Library d)

      JSTL只有一個Core核心標(biāo)簽庫

      15、所有的servlet過濾器類都必須實現(xiàn)(a)接口。a)

      javax.servlet.Filter b)

      javax.servlet.ServletConfig c)

      javax.servlet.ServletContext d)

      javax.servlet.Servlet

      三、編程題(共40分)

      1、第一個Servlet1文件,讀取兩個請求參數(shù)first和second,將其轉(zhuǎn)換為int值后相加,和存放在請求范圍內(nèi),然后把請求轉(zhuǎn)發(fā)第二個Servlet2.。第二個Servlet2文件(url為output),向客戶輸出Servlet1計算的結(jié)果。根據(jù)注釋補充下列代碼。(23分)

      public class Servlet1 extends HttpServlet {

      public void service(ServletRequest request,ServletResponse response)

      throws ServletException, IOException {

      //讀取兩個請求參數(shù),并將其轉(zhuǎn)換為int值

      int first = Integer.valueOf(request.getParameter(“first”)).intValue();________(3分)

      int second=Integer.valueOf(request.getParameter(“second”)).intValue();___(3分)

      //將兩個數(shù)字相加

      int sum=first+second;_____(3分)

      //在request對象中添加sum屬性

      _

      request.setAttribute(“sum”, String.valueOf(sum));______(3分)

      /*把請求轉(zhuǎn)發(fā)給Servlet2 */

      _

      ServletContext context = getServletContext();

      RequestDispatcher dispatcher =context.getRequestDispatcher(“/output”);

      dispatcher.forward(request, response);_____(5分)

      } }

      public class Servlet2 extends HttpServlet {

      public void service(ServletRequest request,ServletResponse response)

      throws ServletException, IOException {

      //讀取請求范圍內(nèi)Servlet1計算出的和

      _ String sum=(String)request.getAttribute(“sum”);_________(3分)

      //向客戶端輸出和

      PrintWriter out=response.getWriter();

      out.print(“the sum is ”+sum);_________(3分)

      } }

      2、寫一個JSP訪問Access數(shù)據(jù)庫的user表,將所有的記錄顯示出來;ODBC數(shù)據(jù)源名為test,驅(qū)動類名為:“sun.jdbc.odbc.JdbcOdbcDriver”,連接數(shù)據(jù)庫的url為:“jdbc:odbc:test”。user表中name字段為文本類型,password為數(shù)字類型。連接數(shù)據(jù)庫代碼(6分),發(fā)送查詢語句代碼(4分),處理結(jié)果集代碼(7分)(共17分)name password 張三 123 李四 456 王五 789

      第三篇:java web總結(jié)

      Java Web 總結(jié)

      Servlet的繼承層次很多,但是我們web開發(fā)常用的也就是javax.servlet.http.HttpServlet這個類,我們常用的 兩個請求方法是doGet(),doPost(),還有從父類繼承過來的方法init()初始化,destroy()Servlet銷毀時會被調(diào) 用,getServletConfig()獲得ServletConfig對象,getServletInfo()返回有關(guān)Servlet的信息,包括作 者、Servlet版本等。

      Servlet的訪問必須在web.xml,怎么配置會在下面舉例。常用方法:

      1、request.setCharacterEncoding(“utf-8”);//設(shè)置用post傳遞給服務(wù)器的參數(shù)編碼方式

      2、response.setContentType(“text/html;charset=utf-8”);//設(shè)置發(fā)送給瀏覽器的內(nèi)容編碼

      3、HttpSession session = request.getSession();//獲得session會話session.setAttribute(“a”,“b”);//給session作用域中存值可以這樣取值:session.getAttribute(“a”);

      4、ServletContext context = this.getServletContext();整個web應(yīng)用對象,或者用ServletConfig對象.getServletContext()獲得

      String str = context.getInitParameter(“encoding”);//獲得全局參數(shù)

      5、ServletConfig config = this.getServletConfig(“p1”);//獲得某個Servlet專用的配置對象

      String str =config.getInitParameter(“p2”);//獲得某個Servlet的專有配置參數(shù)

      6、String str = request.getParameter(“s”);//獲得頁面?zhèn)鬟^來的參數(shù)

      7、String[] sa = request.getParameterValues(“sa”);//獲得字符串?dāng)?shù)組

      8、request.setAttribute(“r”,“寶寶”);//往request作用域中存值。在頁面可以${r}這樣取出寶寶。

      9、PrintWriter out = response.getWriter();//獲得標(biāo)準(zhǔn)輸出流,此流內(nèi)部做了處理直接會輸出給瀏覽器。

      10、request.getRequestDispatcher(“/index.jsp”).forward(request,response);//轉(zhuǎn)發(fā)response.sendRedirect(“index.jsp”);跳轉(zhuǎn)

      連接數(shù)據(jù)庫的基本過程

      加載驅(qū)動程序

      創(chuàng)建連接對象

      創(chuàng)建語句對象

      編寫SQL語句

      使用語句對象執(zhí)行SQL語句

      如果有結(jié)果集對結(jié)果集進(jìn)行處理

      關(guān)閉結(jié)果集對象(如果有),關(guān)閉語句對象,關(guān)閉連接對象

      如何加載驅(qū)動程序

      Class.forName(“驅(qū)動程序名字”):

      如何創(chuàng)建連接

      通過DriverManager的getConnection方法,有3個參數(shù),第一個參數(shù)是URL,第二個參數(shù)是用戶名,第三個參數(shù)是口令。

      HTTP 是一個屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統(tǒng)。它于1990年提出,經(jīng)過幾年的使用與發(fā)展,得到不斷地完善和 擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規(guī)范化工作正在進(jìn)行之中,而且HTTP-NG(Next Generation of HTTP)的建議已經(jīng)提出。

      HTTP協(xié)議的主要特點可概括如下:

      1.支持客戶/服務(wù)器模式。

      2.簡單快速:客戶向服務(wù)器請求服務(wù)時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。

      3.靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。

      4.無連接:無連接的含義是限制每次連接只處理一個請求。服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時間。

      5.無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶

      能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時它的應(yīng)答就較快。

      第四篇:java web總結(jié)

      Java Web 總結(jié)

      1.JSP運行原理

      (1)用戶通過客戶端瀏覽器向服務(wù)器發(fā)送請求。

      (2)JSP文件將JSP引擎編譯成Java的class文件,即servlet。

      (3)將產(chǎn)生的servlet加載到內(nèi)存執(zhí)行。

      (4)Servlet的運行結(jié)果以HTML(或XML)形式通過web服務(wù)器返回客戶端的瀏覽器。

      2.web項目設(shè)計

      (1)公開目錄(2)web_INF目錄(3)Class目錄

      3.JSP的基本語法

      (1)腳本元素:聲明、腳本段、表達(dá)式。

      (2)腳本段:<%%>

      (3)聲明:<%!%>不會產(chǎn)生任何輸出內(nèi)容→聲明全局變量。

      (4)表達(dá)式:<%= %>

      (5)EL表達(dá)式:${ }

      (6)指令元素:<% @ %>不在客戶端可見

      (7)page指令、include指令、taglib指令

      page指令:language屬性、contentType(text/html)、text/plain application/msword、application/x-msexecl、PageEncoding、info、import屬性.include指令:在JSP頁面中靜態(tài)包含一個文件 <@include file=“"%>taglib指令: <%@taglib uri=”標(biāo)記庫的uri地址“ prefix=”前綴名“%> 指令元素翻譯階段執(zhí)行,動作元素執(zhí)行階段被執(zhí)行。

      用于包含其他文件可以是靜態(tài)文件,也可以是動態(tài)文件。?包含動態(tài)文件時

      傳(建一值)

      考點:

      4.指令與動作的區(qū)別(include)

      1.執(zhí)行時間不同

      指令<%@ include file=” “%>是偏譯時包含靜態(tài)文件

      動作?是運行時包含的文件

      2.引入內(nèi)容不同

      指令<%@include file=”relatirveURI“%>引入靜態(tài)文本(html.jsp)。

      動作引入執(zhí)行頁面或severlet的應(yīng)答文本。

      5.JSP內(nèi)置對象

      Out,request,response,session,application,page,pageContext,exception,config

      request客戶端向服務(wù)端發(fā)送請求。

      response用于服務(wù)器端封裝JSP處理請求后產(chǎn)生的結(jié)果。

      response對象的send Redirect(url)方法相當(dāng)于兩次請求。

      在網(wǎng)址不變情況下內(nèi)部跳轉(zhuǎn)不同頁面,但依舊屬于同一次請求

      6.session和cookie的區(qū)別

      1.存放地點不同

      Session存放在服務(wù)器端,cookie存放在客戶端的硬盤里

      2.存活時間

      session隨用戶訪問服務(wù)器而產(chǎn)生,隨客戶下線或超時而消失

      3.安全性

      session存放在服務(wù)器端,不能被修改,且隨客戶端瀏覽器的關(guān)閉而消失,安全性較好。Cookie存放在客戶端,安全性較差。

      7.數(shù)據(jù)庫

      java.sql.Driver

      java.sql.DriverManager——加載驅(qū)動程序

      java.sql.Connetion——表示數(shù)據(jù)庫連接對象,對數(shù)據(jù)庫一切操作都在這個基礎(chǔ)上

      java.sql.Statement——執(zhí)行SQL語句和返回結(jié)果

      java.sql.ResultSet——結(jié)果集用來暫時存放數(shù)據(jù)庫查詢操作結(jié)果

      8.編寫程序的步驟

      1.裝載驅(qū)動程序

      class.forName(”com.mySQL.jdbc.Driver“)

      2.定義所需連接數(shù)據(jù)庫的地址

      String mysqlURL=”jdbc.mysql://host:port/dbName“

      3.建立與數(shù)據(jù)庫的連接

      Connection conn=DriverMannager.get Connection(url,”登錄數(shù)據(jù)庫用戶名“,”

      密碼“)

      4.聲明并執(zhí)行SQL語句

      5.處理返回的結(jié)果

      6.關(guān)閉對象

      String driverStr=”com.mysql.jdbc.Driver“

      String connstr=”jdbc:mysql://localhost:3306/book“;

      Class forName(driver Str)

      Connection conn=DriverManager.getConnection(connstr.”root“.”123“)第4步:建立語句對象

      Statement stmt=conn.createStatement()

      第5步:聲明并執(zhí)行SQL語句

      String sql=”select*from book“;

      ResultSet rs=stmt.executeQuery(sql);

      第6步:

      Statement接口的3個方法:

      1、ResultSet executeQuery(String sql)

      2、int execute Update(String sql)

      3、boolean execute(String sql)

      ResultSet的方法:

      1、boolean next()

      2、get xxx()

      第7歩:rs.close()stmt.close()con.close()

      注:關(guān)閉資源的順序與打開資源順序恰好相反。

      第8步:異常處理

      try{.........}catch(SQLExecption ex){.........}

      9.Java Bean 組件(可重用)

      組件:是一個獨立的模塊,外界可以不了解內(nèi)部如何實現(xiàn),只需通過其提供的接口對組件進(jìn)行訪問即可,組件可重用。

      特點:

      1、實現(xiàn)代碼重復(fù)使用;

      2、易編寫,易維護(hù),易使用。

      10.Java Bean類的編碼約定

      1、類實現(xiàn)了java.io.Serializable接口

      2、必須放在某個Package(包)中

      3、類中如果有構(gòu)造方法,那么這個方法是共有的,并且無參數(shù)

      4、所有屬性都是私有的(private修飾)

      5、get XXX:用來獲取屬性,此方法是共有的6、set XXX:用來設(shè)置屬性,此方法是共有的7、對于boolean類型的成員變量允許使用“is”代替“get”和“set”

      8、類中的普通方法不適合上面的命名規(guī)則,但這個方法必是public的。

      3個標(biāo)記:

      網(wǎng)頁中創(chuàng)建JavaBean實例

      用于為bean中的屬性賦值

      用于獲取bean中屬性的值

      id=”javaBean實例名”class=”javaBean對應(yīng)的類名” 設(shè)置的屬性

      獲取JavaBean實例指令的屬性值,并將這個值轉(zhuǎn)換成字符串顯示到JSP頁面。

      11.servlet的生命周期

      (1)當(dāng)客戶第一次請求servlet時,servlet被加載到內(nèi)存 容器會創(chuàng)建servlet實例,并調(diào)用其init()方法進(jìn)行初始化工作。

      (2)容器創(chuàng)建請求對象,然后調(diào)用servlet的service()方法為客戶提供服務(wù)。

      (3)當(dāng)servlet不再被需求時,容器調(diào)用servlet的destory()方法將servlet實例銷毀。

      12.Servlet開發(fā)

      引入import.javax.servlet.* 和import.javax,servlet.http.*包

      13.Servlet過濾器

      Servlet過濾器是一種java組件,它位于客戶端和處理程序之間

      Servlet過濾器工作原理

      14.Model1和model2

      Model1:JSP+JavaBean

      Model2:JSP+Servlet+JavaBean

      Model1中,jsp頁面實現(xiàn)頁面顯示、業(yè)務(wù)邏輯和流程控制,數(shù)據(jù)處理由JavaBean完成。

      優(yōu)點:進(jìn)行快速和小規(guī)模的應(yīng)用開發(fā)時優(yōu)勢非常明顯。

      缺點:不利于web應(yīng)用的擴展和更新;調(diào)試和排錯困難。

      Model2中,MVC模式--->模型-視圖-控制器.即把web應(yīng)用的輸入輸出和處理流程按照Model.View和Controller分成三層。

      Model1和Model2的區(qū)別:

      Model1和Model2實際上就是對采用JSP技術(shù)開發(fā)的web應(yīng)用的不同模型的描述。Model1采用JSP+JavaBean技術(shù)開發(fā)web應(yīng)用,它比較適合小規(guī)模應(yīng)用的開發(fā),效率較高,易于實現(xiàn),但由于在JSP頁面中內(nèi)嵌了大量的Java代碼,以至于當(dāng)業(yè)務(wù)邏輯復(fù)雜時,代碼可維護(hù)性、可擴展性和可重用性就會下降;Model2采用JSP+Servlet+JavaBean技術(shù)開發(fā)web應(yīng)用,該模型基于MVC模式,完全實現(xiàn)了頁面顯示和邏輯的分離,它充分利用了JSP和Servlet兩種技術(shù)的優(yōu)點,JSP更適合前臺頁面的開發(fā),而Servlet更擅長服務(wù)器端程序的編寫,Model2分工明確,更適合大型項目的開發(fā)和管理。

      視圖(view)用于與用戶交互,可以用HTML.JSP實現(xiàn)。

      15.模型(model)用于表示業(yè)務(wù)數(shù)據(jù)和實現(xiàn)業(yè)務(wù)邏輯,可以用JavaBean實現(xiàn) 控制器(controller)完成流程控制,它接收來自視圖層用戶輸入的數(shù)據(jù),并調(diào)用相應(yīng)的模型進(jìn)行處理,最后選擇合適的視圖去響應(yīng)用戶??刂茖涌梢杂肧ervlet實現(xiàn)。

      優(yōu)點:MVC模式完全實現(xiàn)了頁面表示和業(yè)務(wù)邏輯的分離;

      MVC優(yōu)勢之一在于三層各司其職,互不干涉。

      缺點:沒有明確的定義。

      模型層為JavaBean,實現(xiàn)了數(shù)據(jù)的表示和業(yè)務(wù)邏輯,視圖層為JSP頁面,只負(fù)責(zé)顯示功能。

      控制器為Servlet,負(fù)責(zé)接收用戶的請求,設(shè)置JavaBean屬性,調(diào)用JavaBean完成業(yè)務(wù)處理,最后將處理結(jié)果交給JSP頁面顯示。

      16.自定義標(biāo)簽

      對隱式對象的操作、處理表單、訪問數(shù)據(jù)庫及其他企業(yè)級服務(wù)。

      自定義標(biāo)簽種類:

      1.不帶有屬性和標(biāo)簽體:

      2.帶有屬性沒有標(biāo)簽體的標(biāo)簽:

      3.帶有屬性帶有標(biāo)簽體:myBody

      17.EL表達(dá)式

      基本語法${expr}

      功能:對屬性對象的簡明訪問:${user}

      對屬性對象的屬性訪問:${customer.firstname}

      對屬性集合元素的訪問:對數(shù)組和list:${variable[index]}對map:${variable[key]}

      對請求參數(shù)cookie等的簡單訪問.請求參數(shù)${param.custID}

      Cookie對象:${cookie.userCookie}

      18.”.“操作符和”[ ]“操作符

      ${user.address}=${user[address]}

      訪問數(shù)組和集合元素,需使用[ ]

      ${class[0].name}=${class[0][name]}

      ${param.username}={%=request.getparameter(”userName“)%}

      19.”.“與”[ ]“使用存在差異

      1.當(dāng)訪問的數(shù)據(jù)中包含一個特殊字符(如:”.“或”_“時),就必須用”[ ]“操作符

      2.當(dāng)動態(tài)取值時必須使用”[ ]“操作符,”.“操作符只能取到靜態(tài)的值

      注:當(dāng)”[ ]"操作符中的屬性名為常量時必須用''''引起,否則將會當(dāng)做變量來處理.20.SQL標(biāo)簽

      1.標(biāo)簽

      2.執(zhí)行數(shù)據(jù)庫查詢

      3.執(zhí)行數(shù)據(jù)庫更新

      4.指明參數(shù)值

      5.用于事務(wù)處理

      21.Tomcat的目錄結(jié)構(gòu)及描述:

      bin放置啟動和關(guān)閉Tomcat的可執(zhí)行文件和批處理文件

      common放置在此目錄中的jar、class文件,可以被此服務(wù)器下所有的web應(yīng)用使用

      conf放置Tomcat的主要配置文件

      logs放置Tomcat的日志文件

      server放置Tomcat管理接口的應(yīng)用

      src放置Tomcat相關(guān)的源代碼

      temp放置Tomcat臨時文件

      webapps 放置Tomcat應(yīng)用的目錄

      work放置JSP頁面翻譯成對應(yīng)的Servlet類的目錄

      第五篇:Java學(xué)習(xí)_基礎(chǔ)總結(jié)

      現(xiàn)在學(xué)習(xí)JAVA的人越來越多!但是學(xué)的好的,能用到工作中去的卻很少很少,下面就是我為大家總結(jié)歸納的一些JAVA學(xué)習(xí)基礎(chǔ),希望大家少走彎路,盡快投入到工作中去!

      Java 學(xué)習(xí)基礎(chǔ)總結(jié)歸納!

      1、作用域public,private,protected,以及不寫時的區(qū)別

      答:區(qū)別如下:

      作用域

      當(dāng)前類

      同一package

      子孫類

      其他package public

      protected

      ×

      friendly

      ×

      ×

      private

      ×

      ×

      ×

      不寫時默認(rèn)為friendly

      2、Anonymous Inner Class(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)

      答:匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能extends(繼承)其它類,但一個內(nèi)部類可以作為一個接口,由另一個內(nèi)部類實現(xiàn)

      3、Static Nested Class 和 Inner Class的不同

      答:Nested Class(一般是C++的說法),Inner Class(一般是JAVA的說法)。Java內(nèi)部類與C++嵌套類最大的不同就在于是否有指向外部的引用上。注: 靜態(tài)內(nèi)部類(Inner Class)意味著1創(chuàng)建一個static內(nèi)部類的對象,不需要一個外部類對象,2不能從一個static內(nèi)部類的一個對象訪問一個外部類對象

      4、&和&&的區(qū)別

      答:&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)

      5、Collection 和 Collections的區(qū)別

      答:Collection是集合類的上級接口,繼承與他的接口主要有Set 和List.Collections是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程安全化等操作

      6、什么時候用assert

      答:assertion(斷言)在軟件開發(fā)中是一種常用的調(diào)試方式,很多開發(fā)語言中都支持這種機制。在實現(xiàn)中,assertion就是在程序中的一條語句,它對一個boolean表達(dá)式進(jìn)行檢查,一個正確程序必須保證這個boolean表達(dá)式的值為true;如果該值為false,說明程序已經(jīng)處于不正確的狀態(tài)下,系統(tǒng)將給出警告或退出。一般來說,assertion用于保證程序最基本、關(guān)鍵的正確性。assertion檢查通常在開發(fā)和測試時開啟。為了提高性能,在軟件發(fā)布后,assertion檢查通常是關(guān)閉的

      7、String s = new String(“xyz”);創(chuàng)建了幾個String Object

      答:兩個,一個字符對象,一個字符對象引用對象

      8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少

      答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回與參數(shù)最接近的長整數(shù),參數(shù)加1/2后求其floor

      9、short s1 = 1;s1 = s1 + 1;有什么錯? short s1 = 1;s1 += 1;有什么錯

      答:short s1 = 1;s1 = s1 + 1;(s1+1運算結(jié)果是int型,需要強制轉(zhuǎn)換類型)short s1= 1;s1 += 1;(可以正確編譯)

      10、Java有沒有g(shù)oto

      答:java中的保留字,現(xiàn)在沒有在java中使用

      11、數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法

      答:數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。String有有l(wèi)ength()這個方法

      12、Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型

      答:方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型

      13、Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別

      答:Set里的元素是不能重復(fù)的,那么用iterator()方法來區(qū)分重復(fù)與否。equals()是判讀兩個Set是否相等 equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當(dāng)兩個分離的對象的內(nèi)容和類型相配的話,返回真值

      14、給我一個你最常見到的runtime exception

      答:常見的運行時異常有如下這些ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

      15、error和exception有什么區(qū)別 答:error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣的情況 exception 表示一種設(shè)計或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運行正常,從不會發(fā)生的情況

      16、List, Set, Map是否繼承自Collection接口

      答: List,Set是,Map不是

      17、abstract class和interface有什么區(qū)別

      答:聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實現(xiàn)該類的情況。不能創(chuàng)建abstract 類的實例。然而可以創(chuàng)建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現(xiàn),否則它們也是抽象類為。取而代之,在子類中實現(xiàn)該方法。知道其行為的其它類可以在類中實現(xiàn)這些方法接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof 運算符可以用來決定某對象的類是否實現(xiàn)了接口

      18、abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized

      答:都不能

      19、接口是否可繼承接口? 抽象類是否可實現(xiàn)(implements)接口? 抽象類是否可繼承實體類(concrete class)

      答:接口可以繼承接口。抽象類可以實現(xiàn)(implements)接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構(gòu)造函數(shù)

      20、構(gòu)造器Constructor是否可被override

      答:構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading

      21、是否可以繼承String類

      答:String類是final類故不可以繼承

      22、try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后

      答:會執(zhí)行,在return前執(zhí)行

      23、用最有效率的方法算出2乘以8等於幾 答:2 << 3

      24、兩個對象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對不對

      答:不對,有相同的hash code

      25、當(dāng)一個對象被當(dāng)作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞

      答:是值傳遞。Java 編程語言只有值傳遞參數(shù)。當(dāng)一個對象實例作為一個參數(shù)被傳遞到方法中時,參數(shù)的值就是對該對象的引用。對象的內(nèi)容可以在被調(diào)用的方法中改變,但對象的引用是永遠(yuǎn)不會改變的

      26、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上

      答:witch(expr1)中,expr1是一個整數(shù)表達(dá)式。因此傳遞給 switch 和 case 語句的參數(shù)應(yīng)該是 int、short、char 或者 byte。long,string 都不能作用于swtich

      27、ArrayList和Vector的區(qū)別,HashMap和Hashtable的區(qū)別

      答:就ArrayList與Vector主要從二方面來說.一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的二.數(shù)據(jù)增長:當(dāng)需要增長時,Vector默認(rèn)增長為原來一培,而ArrayList卻是原來的一半就HashMap與HashTable主要從三方面來說。一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進(jìn)的Map接口的一個實現(xiàn)二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value

      28、char型變量中能不能存貯一個中文漢字?為什么? 答:是能夠定義成為一個中文的,因為java中以unicode編碼,一個char占16個字節(jié),所以放一個中文是沒問題的

      29、GC是什么? 為什么要有GC

      答:GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯誤的內(nèi)存回收會導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動監(jiān)測對象是否超過作用域從而達(dá)到自動回收內(nèi)存的目的,Java語言沒有提供釋放已分配內(nèi)存的顯示操作方法。

      30、float型float f=3.4是否正確?

      答:不正確。精度不準(zhǔn)確,應(yīng)該用強制類型轉(zhuǎn)換,如下所示:float f=(float)3.4

      31、介紹JAVA中的Collection FrameWork(包括如何寫自己的數(shù)據(jù)結(jié)構(gòu))?

      答:Collection FrameWork如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)Map提供key到value的映射

      32、抽象類與接口?

      答:抽象類與接口都用于抽象,但是抽象類(JAVA中)可以有自己的部分實現(xiàn),而接口則完全是一個標(biāo)識(同時有多重繼承的功能)。JAVA類實現(xiàn)序例化的方法是實現(xiàn)java.io.Serializable接口 Collection框架中實現(xiàn)比較要實現(xiàn)Comparable 接口和 Comparator 接口

      33、String與StringBuffer的區(qū)別。

      答:STRING的長度是不可變的,STRINGBUFFER的長度是可變的。如果你對字符串中的內(nèi)容經(jīng)常進(jìn)行操作,特別是內(nèi)容要修改時,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法

      34、談?wù)刦inal, finally, finalize的區(qū)別

      答:final—修飾符(關(guān)鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載 finally—再異常處理時提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執(zhí)行,然后控制就會進(jìn)入 finally 塊(如果有的話)finalize—方法名。Java 技術(shù)允許使用 finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的

      35、面向?qū)ο蟮奶卣饔心男┓矫?/p>

      答:主要有以下四方面:

      1.抽象:抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細(xì)節(jié)。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。

      2.繼承:繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。

      3.封裝:封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥嬎闶加谶@個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護(hù)的接口訪問其他對象。4.多態(tài)性:多態(tài)性是指允許不同類的對象對同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。

      36、String是最基本的數(shù)據(jù)類型嗎

      答:基本數(shù)據(jù)類型包括byte、int、char、long、float、double、boolean和short。java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節(jié)省空間,我們應(yīng)該用StringBuffer類

      37、int 和 Integer 有什么區(qū)別

      答:Java 提供兩種不同的類型:引用類型和原始類型(或內(nèi)置類型)。Int是java的原始數(shù)據(jù)類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。原始類型封裝類

      booleanBoolean,charCharacter,byteByte,shortShort,intInteger,longLong,floatFloat,doubleDouble 引用類型和原始類型的行為完全不同,并且它們具有不同的語義。引用類型和原始類型具有不同的特征和用法,它們包括:大小和速度問題,這種類型以哪種類型的數(shù)據(jù)結(jié)構(gòu)存儲,當(dāng)引用類型和原始類型用作某個類的實例數(shù)據(jù)時所指定的缺省值。對象引用實例變量的缺省值為 null,而原始類型實例變量的缺省值與它們的類型有關(guān)

      38、運行時異常與一般異常有何異同

      答:異常表示程序運行過程中可能出現(xiàn)的非正常狀態(tài),運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發(fā)生的非運行時異常,但是并不要求必須聲明拋出未被捕獲的運行時異常。

      39、說出ArrayList,Vector, LinkedList的存儲性能和特性

      答:ArrayList和Vector都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素數(shù)大于實際存儲的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現(xiàn)存儲,按序號索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時只需要記錄本項的前后項即可,所以插入速度較快。

      40、HashMap和Hashtable的區(qū)別

      答:HashMap是Hashtable的輕量級實現(xiàn)(非線程安全的實現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable。HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。Hashtable繼承自Dictionary類,而HashMap是Java1.2引進(jìn)的Map interface的一個實現(xiàn)。最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現(xiàn)同步,而HashMap 就必須為之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。

      41、heap和stack有什么區(qū)別

      答:棧是一種線形集合,其添加和刪除元素的操作應(yīng)在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。堆是棧的一個組成元素

      42、Java的接口和C++的虛類的相同和不同處

      答:由于Java不支持多繼承,而有可能某個類或?qū)ο笠褂梅謩e在幾個類或?qū)ο罄锩娴姆椒ɑ驅(qū)傩?,現(xiàn)有的單繼承機制就不能滿足要求。與繼承相比,接口有更高的靈活性,因為接口中沒有任何實現(xiàn)代碼。當(dāng)一個類實現(xiàn)了接口以后,該類要實現(xiàn)接口里面所有的方法和屬性,并且接口里面的屬性在默認(rèn)狀態(tài)下面都是public static,所有方法默認(rèn)情況下是public.一個類可以實現(xiàn)多個接口。

      43、Java中的異常處理機制的簡單原理和應(yīng)用

      答:當(dāng)JAVA程序違反了JAVA的語義規(guī)則時,JAVA虛擬機就會將發(fā)生的錯誤表示為一個異常。違反語義規(guī)則包括2種情況。一種是JAVA類庫內(nèi)置的語義檢查。例如數(shù)組下標(biāo)越界,會引發(fā)IndexOutOfBoundsException;訪問null的對象時會引發(fā)NullPointerException。另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時用throw關(guān)鍵字引發(fā)異常。所有的異常都是java.lang.Thowable的子類。

      43、垃圾回收的優(yōu)點和原理。并考慮2種回收機制

      答:Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程序員最頭疼的內(nèi)存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內(nèi)存管理。由于有個垃圾回收機制,Java中的對象不再有“作用域”的概念,只有對象的引用才有“作用域”。垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個單獨的低級別的線程運行,不可預(yù)知的情況下對內(nèi)存堆中已經(jīng)死亡的或者長時間沒有使用的對象進(jìn)行清楚和回收,程序員不能實時的調(diào)用垃圾回收器對某個對象或所有對象進(jìn)行垃圾回收?;厥諜C制有分代復(fù)制垃圾回收和標(biāo)記垃圾回收,增量垃圾回收。

      44、你所知道的集合類都有哪些?主要方法?

      答:最常用的集合類是 List 和 Map。List 的具體實現(xiàn)包括 ArrayList 和 Vector,它們是可變大小的列表,比較適合構(gòu)建、存儲和操作任何類型對象的元素列表。List 適用于按數(shù)值索引訪問元素的情形。Map 提供了一個更通用的元素存儲方法。Map 集合類用于存儲元素對(稱作“鍵”和“值”),其中每個鍵映射到一個值。

      45、描述一下JVM加載class文件的原理機制?

      答:JVM中類的裝載是由ClassLoader和它的子類來實現(xiàn)的,Java ClassLoader 是一個重要的Java運行時系統(tǒng)組件。它負(fù)責(zé)在運行時查找和裝入類文件的類。

      46、排序都有哪幾種方法?請列舉

      答: 排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸并排序,分配排序(箱排序、基數(shù)排序)快速排序的偽代碼。/ /使用快速排序方法對a[ 0 :n-1 ]排序從a[ 0 :n-1 ]中選擇一個元素作為m i d d l e,該元素為支點把余下的元素分割為兩段left 和r i g h t,使得l e f t中的元素都小于等于支點,而right 中的元素都大于等于支點遞歸地使用快速排序方法對left 進(jìn)行排序遞歸地使用快速排序方法對right 進(jìn)行排序所得結(jié)果為l e f t + m i d d l e + r i g h t

      47、JAVA語言如何進(jìn)行異常處理,關(guān)鍵字:throws,throw,try,catch,finally分別代表什么意義?在try塊中可以拋出異常嗎?

      答:Java通過面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類,并提供了良好的接口。在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。當(dāng)一個方法出現(xiàn)異常后便拋出一個異常對象,該對象中包含有異常信息,調(diào)用這個對象的方法可以捕獲到這個異常并進(jìn)行處理。Java的異常處理是通過5個關(guān)鍵詞來實現(xiàn)的:try、catch、throw、throws和finally。一般情況下是用try來執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會拋出(throws)一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最后(finally)由缺省處理器來處理。用try來指定一塊預(yù)防所有“異?!钡某绦?。緊跟在try程序后面,應(yīng)包含一個catch子句來指定你想要捕捉的“異常”的類型。throw語句用來明確地拋出一個“異?!薄hrows用來標(biāo)明一個成員函數(shù)可能拋出的各種“異?!薄inally為確保一段代碼不管發(fā)生什么“異?!倍急粓?zhí)行一段代碼??梢栽谝粋€成員函數(shù)調(diào)用的外面寫一個try語句,在這個成員函數(shù)內(nèi)部寫另一個try語句保護(hù)其他代碼。每當(dāng)遇到一個try語句,“異?!钡目蚣芫头诺蕉褩I厦?,直到所有的try語句都完成。如果下一級的try語句沒有對某種“異?!边M(jìn)行處理,堆棧就會展開,直到遇到有處理這種“異?!钡膖ry語句。

      48、一個“.java”源文件中是否可以包括多個類(不是內(nèi)部類)?有什么限制?

      答:可以。必須只有一個類名與文件名相同。

      49、java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?

      答:字節(jié)流,字符流。字節(jié)流繼承于InputStream OutputStream,字符流繼承于InputStreamReader OutputStreamWriter。在java.io包中還有許多其他的流,主要是為了提高性能和使用方便。

      50、java中會存在內(nèi)存泄漏嗎,請簡單描述。

      答:會。自己實現(xiàn)堆載的數(shù)據(jù)結(jié)構(gòu)時有可能會出現(xiàn)內(nèi)存泄露,可參看effective java.51、java中實現(xiàn)多態(tài)的機制是什么?

      答:方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。

      52、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動通知虛擬機進(jìn)行垃圾回收

      答:對于GC來說,當(dāng)程序員創(chuàng)建對象時,GC就開始監(jiān)控這個對象的地址、大小以及使用情況。通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對象。通過這種方式確定哪些對象是“可達(dá)的”,哪些對象是“不可達(dá)的”。當(dāng)GC確定一些對象為“不可達(dá)”時,GC就有責(zé)任回收這些內(nèi)存空間。可以。程序員可以手動執(zhí)行System.gc(),通知GC運行,但是Java語言規(guī)范并不保證GC一定會執(zhí)行。

      53、靜態(tài)變量和實例變量的區(qū)別? 答:static i = 10;//常量 class A a;a.i =10;//可變

      54、什么是java序列化,如何實現(xiàn)java序列化?

      答:序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內(nèi)容進(jìn)行流化。可以對流化后的對象進(jìn)行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對對象流進(jìn)行讀寫操作時所引發(fā)的問題。序列化的實現(xiàn):將需要被序列化的類實現(xiàn)Serializable接口,該接口沒有需要實現(xiàn)的方法,implements Serializable只是為了標(biāo)注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構(gòu)造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數(shù)為obj的對象寫出(即保存其狀態(tài)),要恢復(fù)的話則用輸入流。

      55、是否可以從一個static方法內(nèi)部發(fā)出對非static方法的調(diào)用?

      答:不可以,如果其中包含對象的method();不能保證對象初始化.56、寫clone()方法時,通常都有一行代碼,是什么?

      答:Clone 有缺省行為,super.clone();他負(fù)責(zé)產(chǎn)生正確大小的空間,并逐位復(fù)制。

      57、在JAVA中,如何跳出當(dāng)前的多重嵌套循環(huán)?

      答:用break;return 方法。

      58、List、Map、Set三個接口,存取元素時,各有什么特點?

      答:List 以特定次序來持有元素,可有重復(fù)元素。Set 無法擁有重復(fù)元素,內(nèi)部排序。Map 保存key-value值,value可多值。

      59、說出一些常用的類,包,接口,請各舉5個

      答:常用的類:BufferedReader BufferedWriter FileReader FileWirter String Integer 常用的包:java.lang java.awt java.io java.util java.sql 常用的接口:Remote List Map Document NodeList

      下載java學(xué)習(xí)總結(jié)(基礎(chǔ)加web)word格式文檔
      下載java學(xué)習(xí)總結(jié)(基礎(chǔ)加web).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        web基礎(chǔ)總結(jié)

        html 小結(jié) html不區(qū)分大小寫 超鏈接的運用:鏈接名稱錨記的運用:錨記名稱 錨記名稱標(biāo)簽的類型與運用: //鏈接 //文檔主體部分 按鈕名 標(biāo)題名//表格標(biāo)題 //屬性居中 //......

        java web郵件學(xué)習(xí)(五篇范文)

        commons-fileupload-1.1.1.jar 上傳文件總結(jié): 1、 驗證是否要處理的是上傳文件 ServletFileUpload.isMultipartContent(request) 2、 創(chuàng)建DiskFileItemFactory 對象并對其初......

        java WEB 學(xué)習(xí)路線 v0.1

        1. J2SE 和Eclipse工具的使用 ? 集合類 * List / Set / Map / Iterator ? Java反射機制 ? 正則表達(dá) 2. 數(shù)據(jù)庫 Mysql ? 什么是數(shù)據(jù)庫 ? 基本語法: 建表刪表、Mysql 字段類型、單......

        java web 流程

        但是現(xiàn)在我想可能不行了,今天公司突然有變,哎說起來我也真夠慘的,不講這些不高興的 事了.說點正經(jīng)的,今天我所寫的內(nèi)容可以對每個有志從事JAVA WEB開發(fā)程序員都有很大的 幫助,今......

        Java Web測試題

        《Java Web》小測驗題 1、 假設(shè)Web服務(wù)目錄為test,其目錄結(jié)構(gòu)有內(nèi)容 A、 testWEB-INFB、testWEB-INFclasses C、testWEB-INFlibD、testWEB-INFweb.xml 分別寫出A......

        Java Web 彈出框總結(jié)

        Java Web 彈出框總結(jié) 在學(xué)習(xí)java web時想對于網(wǎng)頁上的登錄驗證出錯時采用彈窗的形式給于提示,于是走到下列大致7種方式的彈窗形式,有別于Alert彈窗,根據(jù)需求可以選擇性使用 NO1......

        Java基礎(chǔ)學(xué)習(xí)知識點總結(jié)

        黑馬程序員_畢向東_Java基礎(chǔ)視頻教程 Java基礎(chǔ)學(xué)習(xí)知識點總結(jié) 2016年01月06日day01 一、基礎(chǔ)知識:軟件開發(fā) 1、什么是軟件?軟件:一系列按照特定順序組織的計算機數(shù)據(jù)和指令的集......

        JAVA基礎(chǔ)總結(jié)

        JAVA基礎(chǔ)總結(jié) 轉(zhuǎn)眼間,已經(jīng)來到這里學(xué)習(xí)半年了,而現(xiàn)在我們對于JAVA學(xué)習(xí)才算是真正的開始。一開始接觸的時候我發(fā)現(xiàn)這個和C語言的基本語法幾乎一模一樣的,老師說:JAVA語言本來就是......