構造方法是一種特殊的方法,具備如下特色。
(1) 構造方法的方法名必須與類名相同。
(2) 構造方法沒有返回類型,也不能定義爲void,在方法名前面不聲明方法類型。
(3) 構造方法的主要做用是完成對象的初始化工做,它可以把定義對象時的參數傳給對象的域。
(4) 一個類能夠定義多個構造方法,若是在定義類時沒有定義構造方法,則編譯系統會自動插入一個無參數的默認構造器,這個構造器不執行任何代碼。
(5) 構造方法能夠重載,以參數的個數,類型,順序。前端
(1) Web容器:給處於其中的應用程序組件(JSP,SERVLET)提供一個環境,使JSP, SERVLET直接和容器中的環境變量接接口互,沒必要關注其它系統問題。主要有WEB服務器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵照J2EE規範中的WEB APPLICATION 標準。咱們把遵照以上標準的WEB服務器就叫作J2EE中的WEB容器。
(2) EJB容器:Enterprise java bean 容器。更具備行業領域特點。他提供給運行在其中的組件EJB各類管理功能。只要知足J2EE規範的EJB放入該容器,立刻就會被容器進行高效率的管理。而且能夠經過現成的接口來得到系統級別的服務。例如郵件服務、事務管理。一個實現了J2EE體系結構中EJB組件規範的容器。 這個規範指定了一個Enterprise bean的運行時環境,包括安全,一致性,生命週期,事務, 配置,和其餘的服務。
(3) JNDI:(Java Naming & Directory Interface)JAVA命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下本身的索引,從而知足快速查找和定位分佈式應用程序的功能。
(4) JMS:(Java Message Service)JAVA消息服務。主要實現各個應用程序之間的通信。包括點對點和廣播。
(5) JTA:(Java Transaction API)JAVA事務服務。提供各類分佈式事務服務。應用程序只需調用其提供的接口便可。
(6) JAF:(Java Action FrameWork)JAVA安全認證框架。提供一些安全控制方面的框架。讓開發者經過各類部署和自定義實現本身的個性安全控制策略。
(7) RMI/IIOP:(Remote Method Invocation /internet對象請求中介協議)他們主要用於經過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,咱們能夠在本地計算機上實現對其直接調用。固然這是要經過必定的規範才能在異構的系統之間進行通訊。RMI是JAVA特有的。RMI-IIOP出現之前,只有RMI和CORBA兩種選擇來進行分佈式程序設計。RMI-IIOP綜合了RMI和CORBA的優勢,克服了他們的缺點,使得程序員能更方便的編寫分佈式程序設計,實現分佈式計算。首先,RMI-IIOP綜合了RMI的簡單性和CORBA的多語言性(兼容性),其次RMI-IIOP克服了RMI只能用於Java的缺點和CORBA的複雜性(能夠不用掌握IDL)。java
Linux連接分兩種,一種被稱爲硬連接(Hard Link),另外一種被稱爲符號連接(Symbolic Link)。默認狀況下,ln命令產生硬連接。
● 硬鏈接
硬鏈接指經過索引節點來進行鏈接。在Linux的文件系統中,保存在磁盤分區中的文件不論是什麼類型都給它分配一個編號,稱爲索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。通常這種鏈接就是硬鏈接。硬鏈接的做用是容許一個文件擁有多個有效路徑名,這樣用戶就能夠創建硬鏈接到重要文件,以防止「誤刪」的功能。其緣由如上所述,由於對應該目錄的索引節點有一個以上的鏈接。只刪除一個鏈接並不影響索引節點自己和其它的鏈接,只有當最後一個鏈接被刪除後,文件的數據塊及目錄的鏈接纔會被釋放。也就是說,文件真正刪除的條件是與之相關的全部硬鏈接文件均被刪除。
● 軟鏈接
另一種鏈接稱之爲符號鏈接(Symbolic Link),也叫軟鏈接。軟連接文件有相似於Windows的快捷方式。它其實是一個特殊的文件。在符號鏈接中,文件其實是一個文本文件,其中包含的有另外一文件的位置信息。node
有四種方法能夠實現會話跟蹤技術:URL重寫、隱藏表單域、Cookie、Session。
(1) 隱藏表單域: <input type="hidden">,很是適合步須要大量數據存儲的會話應用。
(2) URL 重寫: URL 能夠在後面附加參數,和服務器的請求一塊兒發送,這些參數爲名字/值對。
(3) Cookie: 一個 Cookie 是一個小的, 已命名數據元素。服務器使用 SET-Cookie 頭標將它做爲 HTTP響應的一部分傳送到客戶端,客戶端被請求保存 Cookie 值,在對同一服務器的後續請求使用一個Cookie 頭標將之返回到服務器。與其它技術比較,Cookie 的一個優勢是在瀏覽器會話結束後,甚至在客戶端計算機重啓後它仍能夠保留其值。
(4) Session: 使用 setAttribute(String str,Object obj)方法將對象捆綁到一個會話。程序員
(1) 繼承不一樣,Hashtable繼承自Dictionary, HashMap繼承自AbstractMap。web
public class Hashtable extends Dictionary implements Map public class HashMap extends AbstractMap implements Map
(2) Hashtable 中的方法是同步的,而HashMap中的方法在缺省狀況下是非同步的。在多線程併發的環境下,能夠直接使用Hashtable,可是要使用HashMap的話就要本身增長同步處理了。
(3) Hashtable中,key和value都不容許出現null值。
在HashMap中,null能夠做爲鍵,這樣的鍵只有一個;能夠有一個或多個鍵所對應的值爲null。當get()方法返回null值時,便可以表示 HashMap中沒有該鍵,也能夠表示該鍵所對應的值爲null。所以,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵, 而應該用containsKey()方法來判斷。
(4) 兩個遍歷方式的內部實現上不一樣。
Hashtable、HashMap都使用了 Iterator。而因爲歷史緣由,Hashtable還使用了Enumeration的方式 。
(5) 哈希值的使用不一樣,HashTable直接使用對象的hashCode。而HashMap從新計算hash值。
(6) Hashtable和HashMap它們兩個內部實現方式的數組的初始大小和擴容的方式。HashTable中hash數組默認大小是11,增長的方式是 old*2+1。HashMap中hash數組的默認大小是16,並且必定是2的指數。編程
(1) public Method[] getDeclaredMethods()返回類或接口聲明的全部方法,包括public, protected, default (package) 訪問和private方法的Method對象,但不包括繼承的方法。固然也包括它所實現接口的方法。設計模式
(2) public Method[] getMethods()返回某個類的全部public方法,包括其繼承類的公用方法,固然也包括它所實現接口的方法。數組
SpringMVC是Spring中的模塊,它實現了mvc設計模式的web框架,首先用戶發出請求,請求到達SpringMVC的前端控制器(DispatcherServlet), 前端控制器根據用戶的url請求處理器映射器查找匹配該url的handler,並返回一個執行鏈,前端控制器再請求處理器適配器調用相應的handler進行處理並返回給前端控制器一個modelAndView,前端控制器再請求視圖解析器對返回的邏輯視圖進行解析,最後前端控制器將返回的視圖進行渲染並把數據裝入到request域,返回給用戶。
DispatcherServlet是前端控制器設計模式的實現,提供Spring Web MVC的集中訪問點,並且負責職責的分派,並且與Spring IoC容器無縫集成,從而能夠得到Spring的全部好處。
DispatcherServlet主要用做職責調度工做,自己主要用於控制流程,主要職責以下:
(1) 文件上傳解析,若是請求類型是multipart將經過MultipartResolver進行文件上傳解析;
(2) 經過HandlerMapping,將請求映射處處理器(返回一個HandlerExecutionChain,它包括一個處理器、多個HandlerInterceptor攔截器);
(3) 經過HandlerAdapter支持多種類型的處理器(HandlerExecutionChain中的處理器);
(4) 經過ViewResolver解析邏輯視圖名到具體視圖實現;
(5) 本地化解析;
(6) 渲染具體的視圖等;
(7) 若是執行過程當中遇到異常將交給HandlerExceptionResolver來解析。瀏覽器
接口(interface)能夠說成是抽象類的一種特例,接口中的全部方法都必須是抽象的。接口中的方法定義默認爲public abstract類型,接口中的成員變量類型默認爲public static final。另外,接口和抽象類在方法上有區別: 安全
(1) 抽象類能夠有構造方法,接口中不能有構造方法。
(2) 抽象類中能夠包含非抽象的普通方法,接口中的全部方法必須都是抽象的,不能有非抽象的普通方法。Java 8裏的接口能夠有default方法。
(3) 抽象類中能夠有普通成員變量,接口中沒有普通成員變量。
(4) 抽象類中的抽象方法的訪問類型能夠是public,protected和默認類型。
(5) 抽象類中能夠包含靜態方法,接口中不能包含靜態方法。
(6) 抽象類和接口中均可以包含靜態成員變量,抽象類中的靜態成員變量的訪問類型能夠任意,但接口中定義的變量只能是public static final類型,而且默認即爲public static final類型。
(7) 一個類能夠實現多個接口,但只能繼承一個抽象類。兩者在應用方面也有必定的區別:接口更多的是在系統架構設計方法發揮做用,主要用於定義模塊之間的通訊契約。而抽象類在代碼實現方面發揮做用,能夠實現代碼的重用,例如,模板方法設計模式是抽象類的一個典型應用,假設某個項目的全部Servlet類都要用相同的方式進行權限判斷、記錄訪問日誌和處理異常,那麼就能夠定義一個抽象的基類,讓全部的Servlet都繼承這個抽象基類,在抽象基類的service方法中完成權限判斷、記錄訪問日誌和處理異常的代碼,在各個子類中只是完成各自的業務邏輯代碼。
(1) java.awt: 包含構成抽象窗口工具集的多個類,用來構建和管理應用程序的圖形用戶界面,主要用於編寫GUI程序,包括按鈕、標籤等經常使用組件以及相應的事件類。
(2) java.lang: 提供java編成語言的程序設計的基礎類,是一個核心包,系統自動將這個包引入到用戶程序,該包中主要的類:object類,它是全部類的父類,其中定義的方法其它類均可以使用。數據類型包裝類,數學類,字符串類,系統和運行時類,操做類,線程類,錯誤和異常處理類,過程類。System提供一個獨立於具體計算機資源的編程界面,Runtime類可用於直接訪問運行時資源。
(3) java.io:包含提供多種輸出輸入功能的類。
(4) java.net:包含執行與網絡有關的類,如URL,SCOKET,SEVERSOCKET。
(5) java.applet: 包含java小應用程序的類。
(6) java.util:包含一些實用性的類,實用包提供了各類實用功能的類,主要包括日期類、數據結構類和隨機數類等。
(1) final關鍵字可用於修飾類、變量和方法。final修飾的類不能被繼承,final修飾的方法不能被重寫,final修飾的變量不可被修改,一旦得到初始值,該變量就不能被從新賦值。
(2) public:訪問控制修飾符,用於修飾類、類的方法、屬性或者構造器。
(3) abstract:用於修飾抽象類或者抽象方法。
(4) static:用於修飾類、方法或者成員變量,代表該類是靜態類或者方法、成員變量屬於當前類。