Java個人知識點總結(基礎篇)

Java知音發表於2018-11-09

基礎篇

JDK常用的包

 java.lang:這個是系統的基礎類,比如String、Math、Integer、System和Thread, 提供常用功能。

 java.io:這裡面是所有輸入輸出有關的類,比如檔案操作等

 java.net:這裡面是與網路有關的類,比如URL,URLConnection等。

 java.util:這個是系統輔助類,特別是集合類Collection,List,Map等。

 java.sql:這個是資料庫操作的類,Connection, Statememt,ResultSet等

Get和Post的區別

1.get是從伺服器上獲取資料,post是向伺服器傳送資料,

2.get傳送的資料量較小,不能大於2KB。post傳送的資料量較大,一般被預設為不受限制。

3.get安全性非常低,post安全性較高。但是執行效率卻比Post方法好。

4.在進行檔案上傳時只能使用post而不能是get。

Java多型的具體體現  

物件導向程式設計有四個特徵:抽象,封裝,繼承,多型。

多型有四種體現形式:

1. 介面和介面的繼承。

2. 類和類的繼承。

3. 過載。

4. 重寫。

其中過載和重寫為核心。

過載 :過載發生在同一個類中,在該類中如果存在多個同名方

法,但是方法的引數型別和個數不一樣,那麼說明該方法被重

載了。

重寫 :重寫發生在子類繼承父類的關係中,父類中的方法被子

類繼承,方法名,返回值型別,引數完全一樣,但是方法體不

一樣,那麼說明父類中的該方法被子類重寫了。

StringBuffer StringBuilder String區別

String字串常量   不可變  使用字串拼接時是不同的2個空間

StringBuffer字串變數   可變   執行緒安全  字串拼接直接在字串後追加

StringBuilder字串變數   可變   非執行緒安全  字串拼接直接在字串後追加

1.StringBuilder執行效率高於StringBuffer高於String.

2.String是一個常量,是不可變的,所以對於每一次+=賦值都會建立一個新的物件, StringBuffer和StringBuilder都是可變的,當進行字串拼接時採用append方 法,在原來的基礎上進行追加,所以效能比String要高,又因為StringBuffer  是 執行緒安全的而StringBuilder是執行緒非安全的,所以StringBuilder的效率

高於 StringBuffer.

3.對於大資料量的字串的拼接,採用StringBuffer,StringBuilder.

Stringbuilder 執行效率要高於stringbuffer更高於string

String是變數 是不可變的 所以在在+ = 賦值的時候建立新的物件

Stringbuffer stringbuilder倆個都是可變的,當在字串拼接的時候可以採用appent方法,在原有的基礎上追加,所以效能比string 更高  ,又因為stringbuffer是現成安全的   but     stringbuilder是執行緒非安全的  所以  stringbuilder比stringbuffer效率更低   

對於大資料字串拼接可以採用stringbuffter或是 stringbuilder

Hashtable與HashMap的區別

     HashMap不是執行緒安全的,HashTable是執行緒安全。

     HashMap允許空(null)的鍵和值(key),HashTable則不允許。

     HashMap效能優於Hashtable。

Map

1.Map是一個以鍵值對儲存的介面。Map下有兩個具體的實現,分別是HashMap和HashTable.

2.HashMap是執行緒非安全的,HashTable是執行緒安全的,所以HashMap的效率高於HashTable.

3.HashMap允許鍵或值為空,而HashTable不允許鍵或值為空.


Map是一個鍵值的儲存介面  ,  map下還有倆個實現分別是 hashmap  和 hashtable

Hashmap執行緒非安全的   hashtable是執行緒安全的  所以hashmap要比hashtable效率要高

Hashmap允許鍵值 為空  但是 hashtable不允許為空

九大隱式物件

輸入/輸出物件:  request   response   out

作用域通訊物件:session  application  pageContext

Servlet物件:   page   config

錯誤物件:exception

Forword(請求轉發)與Redirect(重定向)

1、從資料共享上

Forword是一個請求的延續,可以共享request的資料

Redirect開啟一個新的請求,不可以共享request的資料

2、從位址列

Forword轉發位址列不發生變化

Redirect轉發位址列發生變化

八、 JQurey總結  

 jquery是一個輕量級的js框架,具有跨瀏覽器的特性,相容性好,

 並且封裝了很多工具,方便使用。

 常用的有:選擇器 ,dom操作 ,ajax(ajax不能跨域) ,特效,工具類 

XML和Json的特點

Xml特點:

  1、有且只有一個根節點;

  2、資料傳輸的載體

  3、所有的標籤都需要自定義

  4、是純文字檔案

Json(JavaScript Object Notation)特點:

  json分為兩種格式:

json物件(就是在{}中儲存鍵值對,鍵和值之間用冒號分隔,

鍵值對之間用逗號分隔);

json陣列(就是[]中儲存多個json物件,json物件之間用逗號分隔)

(兩者間可以進行相互巢狀)資料傳輸的載體之一

區別:

  傳輸同樣格式的資料,xml需要使用更多的字元進行描述,

流行的是基於json的資料傳輸。

xml的層次結構比json更清晰。


共同點:

xml和json都是資料傳輸的載體,並且具有跨平臺跨語言的特性。

request.getSession() reqeust.getSession(false)       request.getSession(true)

getSession()/getSession(true):當session存在時返回該session,否則新建一個     session並返回該物件

getSession(false):當session存在時返回該session,否則返回null

Page和PageContext的區別

    Page是servlet物件;使用this關鍵字,它的作用範圍是在同一頁面。

PageContext是作用域通訊物件;通常使用setAttribute()和getAttribute()來設定和獲取存放物件的值。

Ajax總結

    AJAX全稱: 非同步JavaScript及 XML(Asynchronous JavaScript And XML)

Ajax的核心是JavaScript物件XmlHttpRequest(XHR)。

Ajax的優點:

    提高使用者體驗度(UE)

    提高應用程式的效能

    進行區域性重新整理

AJAX不是一種新的程式語言,而是一種用於建立更好更快以及互動性更強的 Web 應用程式的技術。

2.透過 AJAX,我們的 JavaScript 可使用JavaScript的XMLHttpRequest物件來直接與伺服器進行通訊。透過這個物件,我們的 JavaScript 可在不過載頁面的情況與Web伺服器交換資料,即可區域性重新整理。

3.  AJAX在瀏覽器與 Web 伺服器之間使用非同步資料傳輸(HTTP 請求),這樣就可使網頁從伺服器請求少量的資訊,而不是整個頁面,減輕伺服器的負擔,提升站點的效能。

AJAX可使因特網應用程式更小、更快,更友好,使用者體驗(UE)好。

5.  Ajax是基於標準化並被廣泛支援的技術,並且不需要外掛和下載小程式

JSP9大隱視物件中四個作用域的大小與作用範圍

   四個作用域從大到小:appliaction>session>request>page

application:全域性作用範圍,整個應用程式共享.生命週期為:應用程式啟動到停止。

session:會話作用域,當使用者首次訪問時,產生一個新的會話,以後伺服器就可以記              住這個會話狀態。

request:請求作用域,就是客戶端的一次請求。

page:一個JSP頁面。

以上作用範圍使越來越小,request和page的生命週期都是短暫的,他們之間的區別就是:一個request可以包含多個page頁(include,forward)。

List,Set,Collection,Collections

[if !supportLists]1.[endif]List和Set都是介面,他們都繼承於介面Collection,List是一個有序的可重複的集合,而Set的無序的不可重複的集合。Collection是集合的頂層介面,Collections是一個封裝了眾多關於集合操作的靜態方法的工具類,因為構造方法是私有的,所以不能例項化。

2.List介面實現類有ArrayList,LinkedList,Vector。ArrayList和Vector是基於陣列實現的,所以查詢的時候速度快,而在進行增加和刪除的時候速度較慢LinkedList是基於鏈式儲存結構,所以在進行查詢的時候速度較慢但在進行增加和刪除的時候速度較快。又因為Vector是執行緒安全的,所以他和ArrayList相比而言,查詢效率要低。

List和set都屬於介面   他們都繼承於collection  

List是一個有序的   可重複的   set是無序得到不可重複的

Collection是集合的頂層介面  , collections是封裝可眾多集合的操作的靜態的工具類  因為他是私有化的所以他不可以例項化

List的介面實現類分為arraylist vertor linkedlist arraylist 和 verson是基於陣列實現的,說以查詢的時候較快  ,但是增加 與刪除 的速度較慢。  Linkelist是基於鏈式儲存 ,所以查詢的時候較慢, 增加與刪除數獨較快, 又因為vertor執行緒安全  所以arraylist相比 效率

如果你依然覺得有些茫然,不如加入我的Java架構師之路:766529531 跟有多年Java開發經驗的資深工程師聊一聊。也可獲取免費的影片學習資料以及電子書學習資料喔!

java的基本資料型別

資料型別 大小

byte(位元組) 1(8位)

shot(短整型) 2(16位)

int(整型) 4(32位)

long(長整型) 8(32位)

float(浮點型) 4(32位)

double(雙精度) 8(64位)

char(字元型) 2(16位)

boolean(布林型) 1位

附加:

String是基本資料型別嗎?(String不是基本資料型別)

String的長度是多少,有限制?(長度受記憶體大小的影響)

氣泡排序

public class Sort {

public static void sort() {

Scanner input = new Scanner(System.in);

int sort[] = new int[10];

int temp;

System.out.println("請輸入10個排序的資料:");

for (int i = 0; i < sort.length; i++) {

sort[i] = input.nextInt();

}

for (int i = 0; i < sort.length - 1; i++) {

for (int j = 0; j < sort.length - i - 1; j++) {

if (sort[j] < sort[j + 1]) {

temp = sort[j];

sort[j] = sort[j + 1];

sort[j + 1] = temp;

}

}

}

System.out.println("排列後的順序為:");

for(int i=0;i<sort.length;i++){

System.out.print(sort[i]+"   ");

}

}

public static void main(String[] args) {

sort();

}

}


二分查詢法

十八、 時間型別轉換

public class DateFormat {

public static void fun() {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");

String newDate;

try {

newDate = sdf.format(new SimpleDateFormat("yyyyMMdd")

.parse("20121115"));

System.out.println(newDate);

} catch (ParseException e) {

e.printStackTrace();

}

}

public static void main(String args[]) {

fun();

}

}


階乘

public class Multiply {

public static int multiply(int num) {

if (num < 0) {

System.out.println("請輸入大於0的數!");

return -1;

} else if (num == 0 || num == 1) {

return 1;

} else {

return multiply(num - 1) * num;

}

}

public static void main(String[] args) {

System.out.println(multiply(10));

}

}


UE和UI的區別

UE是使用者體驗度

UI介面原型(使用者介面)(相當於買房時用的模型)


設計UI的作用:

1、幫助程式設計師工作(介面已由美工設計完成)

2、提前讓使用者對專案有個宏觀的瞭解,知道效果是什麼樣子。


osi七層模型

第一層:物理層

第二層:資料鏈路層

第三層:網路層

第四層:傳輸層

第五層:會話層

第六層:表示層

第七層:應用層

執行緒和程式的區別

1.執行緒(Thread)與程式(Process)

程式定義的是應用程式與應用程式之間的邊界,通常來說一個程式就代表一個與之對應的應用程式。不同的程式之間不能共享程式碼和資料空間,而同一程式的不同執行緒可以共享程式碼和資料空間。

如果你依然覺得有些茫然,不如加入我的Java架構師之路:766529531 跟有多年Java開發經驗的資深工程師聊一聊。也可獲取免費的影片學習資料以及電子書學習資料喔!

1、一個程式可以包括若干個執行緒,同時建立多個執行緒來完成某項任務,便是多執行緒。

2、實現執行緒的兩種方式:繼承Thread類,實現Runable介面

jvm的記憶體結構

1、java虛擬機器的記憶體結構分為堆(heap)和棧(stack),堆裡面存放是物件例項也就是new出來的物件。棧裡面存放的是基本資料型別以及引用資料型別的地址。

2、對於所謂的常量是儲存在方法區的常量池裡面。


記憶體洩露和記憶體溢位

記憶體洩露(memory leak),是指應用程式在申請記憶體後,

無法釋放已經申請的記憶體空間.一次記憶體洩露危害可以忽略,

但如果任其發展最終會導致記憶體溢位(out of memory).

如讀取檔案後流要進行及時的關閉以及對資料庫連線的釋放。

記憶體溢位(out of memory)是指應用程式在申請記憶體時,

沒有足夠的記憶體空間供其使用。

如我們在專案中對於大批次資料的匯入,採用分段批次提交的方式。


單例

單例就是該類只能返回一個例項。

單例所具備的特點:

1.私有化的建構函式

2.私有的靜態的全域性變數

3.公有的靜態的方法

單例分為懶漢式、餓漢式和雙層鎖式

餓漢式:

public class Singleton1 {

      private Singleton1() {};

      private static Singleton1 single = new Singleton1();

      public static Singleton1 getInstance() {

          return single;

     }

 }


懶漢式:

public class Singleton2 {

      private Singleton2() {}

      private static Singleton2 single=null;

      public tatic Singleton2 getInstance() {

           if (single == null) {  

              single = new Singleton2();

          }  

         return single;

     }

 }

執行緒安全:

public class Singleton3 {

  private Singleton3() {}

  private static Singleton3 single ;

  public static Singleton3 getInstance() {

if(null == single){

synchronized(single ){

if(null == single){

single = new Singleton3();

}

}

}

return single;

  }

}


參考:

透過雙重判斷來保證單列設計模式在多執行緒中的安全性,

並且它在效能方面提高了很多。

synchronized在方法上加鎖 (同步鎖)

synchronized在程式碼塊內部加鎖 (同步程式碼塊)

synchronized(同步鎖)

使用synchronized如何解決執行緒安全的問題?

1.synchronized在方法上加鎖

2.synchronized在程式碼塊內部加鎖

1.懶漢  2.餓漢 3.雙重判斷

解析xml檔案的幾種技術

1、 解析xml的幾種技術

        1.dom4j

        2.sax

        3.jaxb

        4.jdom

        5.dom

1.dom4j        

  dom4j是一個Java的XML API,類似於jdom,用來讀寫XML檔案的。dom4j是一個非常優秀的Java XML API,具有效能優異、功能強大和極端易用使用的特點,同時它也是一個開放原始碼的軟體。

 2.sax

SAX(simple API for XML)是一種XML解析的替代方法。相比於DOM,SAX是一種速度更快,更有效的方法。它逐行掃描文件,一邊掃描一邊解析。而且相比於DOM,SAX可以在解析文件的任意時刻停止解析,但任何事物都有其相反的一面,對於SAX來說就是操作複雜。

  3.jaxb

JAXB(Java Architecture for XML Binding) 是一個業界的標準,是一項可以根據XML Schema產生Java類的技術。該過程中,JAXB也提供了將XML例項文件反向生成Java物件樹的方法,並能將Java物件樹的內容重新寫到XML例項文件。從另一方面來講,JAXB提供了快速而簡便的方法將XML模式繫結到Java表示,從而使得Java開發者在Java應用程式中能方便地結合XML資料和處理函式。

2、dom4j 與 sax 之間的對比:【注:必須掌握!】

dom4j不適合大檔案的解析,因為它是一下子將檔案載入到記憶體中,所以有可能出現記憶體溢位,

sax是基於事件來對xml進行解析的,所以他可以解析大檔案的xml

也正是因為如此,所以dom4j可以對xml進行靈活的增刪改查和導航,而sax沒有這麼強的靈活性

所以sax經常是用來解析大型xml檔案,而要對xml檔案進行一些靈活(crud)操作就用dom4j

如果你依然覺得有些茫然,不如加入我的Java架構師之路:766529531 跟有多年Java開發經驗的資深工程師聊一聊。也可獲取免費的影片學習資料以及電子書學習資料喔!

專案的生命週期

    1.需求分析

2.概要設計

3.詳細設計(用例圖,流程圖,類圖)

4.資料庫設計(powerdesigner)

5.程式碼開發(編寫)

6.單元測試(junit 白盒測試)(開發人員)

svn版本管理工具(提交,更新程式碼,文件)

7.整合測試 (黑盒測試,loadrunner(編寫測試指令碼)(高階測試))

8.上線試執行 (使用者自己體驗)

9.壓力測試(loadrunner)

10.正式上線

11.維護

OSCache的判斷

Object obj = CacheManager.getInstance().getObj("oaBrandList");

//從快取中取資料

if (null == obj)  {

obj = brandDao.getBrandList();

//如果為空再從資料庫獲取資料

//獲取之後放入快取中

CacheManager.getInstance().putObj("oaBrandList", obj);

}

return (List<OaBrand>)obj;

經常訪問的技術網站

1.csdn(詳細步驟的描述)

2.iteye(詳細步驟的描述)

3.oschina(開源中國獲取java開源方面的資訊科技)

4.java開源大全 (獲取java開源方面的資訊科技)

5.infoq(對java,php,.net等這些語言的一些最新訊息的報導)


專案團隊中交流的工具

飛秋(區域網) qq(區域網,外網)

RTX(區域網,外網) 郵箱(區域網,外網)

平時瀏覽的書籍

實戰經驗:

  *** in action(實戰)

  ***深入淺出

  ***入門指南

思想基礎:

  大話設計模式 重構


java Exception體系結構

java異常是程式執行過程中出現的錯誤。Java把異常當作物件來處理,並定義一個基類java.lang.Throwable作為所有異常的超類。在Java API中定義了許多異常類,分為兩大類,錯誤Error和異常Exception。其中異常類Exception又分為執行時異常(RuntimeException)和非執行時異常(非runtimeException),也稱之為不檢查異常(Unchecked Exception)和檢查異常(Checked Exception)。

1、Error與Exception

Error是程式無法處理的錯誤,比如OutOfMemoryError、ThreadDeath等。

這些異常發生時,Java虛擬機器(JVM)一般會選擇執行緒終止。

Exception是程式本身可以處理的異常,這種異常分兩大類執行時異常和非執行時異常。程式中應當儘可能去處理這些異常。

2、執行時異常和非執行時異常      

執行時異常:都是RuntimeException類及其子類異常:     IndexOutOfBoundsException索引越界異常

ArithmeticException:數學計算異常

NullPointerException:空指標異常

ArrayOutOfBoundsException:陣列索引越界異常

ClassNotFoundException:類檔案未找到異常

ClassCastException:造型異常(型別轉換異常)

這些異常是不檢查異常(Unchecked Exception),程式中可以選擇捕獲處理,也可以不處理。這些異常一般是由程式邏輯錯誤引起的。

非執行時異常:是RuntimeException以外的異常,型別上都屬於Exception類及其子類。從程式語法角度講是必須進行處理的異常,如果不處理,程式就不能編譯透過。如:

IOException、檔案讀寫異常

FileNotFoundException:檔案未找到異常

  EOFException:讀寫檔案尾異常

MalformedURLException:URL格式錯誤異常

SocketException:Socket異常

SQLException:SQL資料庫異常


session和cookie的區別

session是儲存在伺服器端,cookie是儲存在客戶端的,所以安全來講session的安全性要比cookie高,然後我們獲取session裡的資訊是透過存放在會話cookie裡的sessionid獲取的。又由於session是存放在伺服器的記憶體中,所以session裡的東西不斷增加會造成伺服器的負擔,所以會把很重要的資訊儲存在session中,而把一些次要東西儲存在客戶端的cookie裡,然後cookie確切的說分為兩大類分為會話cookie和持久化cookie,會話cookie確切的說是存放在客戶端瀏覽器的記憶體中,所以說他的生命週期和瀏覽器是一致的,瀏覽器關了會話cookie也就消失了,然而持久化cookie是存放在客戶端硬碟中,而持久化cookie的生命週期就是我們在設定cookie時候設定的那個儲存時間,然後我們考慮一問題當瀏覽器關閉時session會不會丟失,從上面敘述分析session的資訊是透過sessionid獲取的,而sessionid是存放在會話cookie當中的,當瀏覽器關閉的時候會話cookie消失所以我們的sessionid也就消失了,但是session的資訊還存在伺服器端,這時我們只是查不到所謂的session但它並不是不存在。那麼,session在什麼情況下丟失,就是在伺服器關閉的時候,或者是sessio過期,再或者呼叫了invalidate()的或者是我們想要session中的某一條資料消失呼叫session.removeAttribute()方法,然後session在什麼時候被建立呢,確切的說是透過呼叫session.getsession來建立,這就是session與cookie的區別

位元組流與字元流的區別

stream結尾都是位元組流,reader和writer結尾都是字元流

兩者的區別就是讀寫的時候一個是按位元組讀寫,一個是按字元。

實際使用通常差不多。

在讀寫檔案需要對內容按行處理,比如比較特定字元,處理某一行資料的時候一般會選擇字元流。

只是讀寫檔案,和檔案內容無關的,一般選擇位元組流。


final,finally,finalize三者區別

Final是一個修飾符:

當final修飾一個變數的時候,變數變成一個常量,它不能被二次賦值

當final修飾的變數為靜態變數(即由static修飾)時,必須在宣告這個變 量的時候給它賦值

當final修飾方法時,該方法不能被重寫

當final修飾類時,該類不能被繼承

Final不能修飾抽象類,因為抽象類中會有需要子類實現的抽象方法,(抽 象類中可以有抽象方法,也可以有普通方法,當一個抽象類中沒有抽象方 法時,這個抽象類也就沒有了它存在的必要)

Final不能修飾介面,因為介面中有需要其實現類來實現的方法

Finally:

Finally只能與try/catch語句結合使用,finally語句塊中的語句一定會執行,並且會在return,continue,break關鍵字之前執行

finalize:

Finalize是一個方法,屬於java.lang.Object類,finalize()方法是GC(garbage collector垃圾回收)執行機制的一部分,finalize()方法是在GC清理它所從屬的物件時被呼叫的

Io流的層次結構

從流的方向

輸入流 輸出流

從流的型別上

字元流位元組流

inputstream和outputstream都是抽象類

它們下面的實現包括

FileInputStream,BufferedInputStream

FileOutputStream,BufferedOutputStream

reader和 writer

FileReader,BufferedReader,StringReader

FileWriter,BufferedWriter,StringWriter,PrintWriter


Java個人知識點總結(基礎篇)


JAVA:

Java是物件導向的,跨平臺的,它透過java虛擬機器來進行跨平臺操作,它可以進行自動垃圾回收的【c語言是透過人工進行垃圾回收】,java還會進行自動分配記憶體。【c語言是透過指定進行分配記憶體的】,只需要new一個物件,這個物件佔用了多少空間,不需要我們來管,java虛擬機器負責管這些,用完之後也不需要我們來釋放,java虛擬機器會自動釋放


JavaSE JavaEE JavaME區別

是什麼:

Java SE=Java Standard Edition=j2se = java 標準版

Java EE=Java Enterprise Edition=j2ee= java 企業版

Java ME=Java Mobile Edition=j2me = java移動版

特點:

SE主要用於桌面程式(swing),控制檯開發(main程式)。

EE企業級開發(JSP,EJB,Spring MVC,Struts,hibernate,ibatis等),

用於企業級軟體開發,網路開發,web開發。

ME嵌入式開發(手機,小家電,PDA)。[蘋果的ios,黑莓]

三者之間的關係:

Java SE(Java Platform, Standard Edition,Java標準版)就是基於JDK和JRE的。

Java SE為Java EE提供了基礎。

Java EE除了基於我們這個所謂的Java SE外,還新加了企業應用所需的類庫

JDK  JRE  JVM的區別:

Jdk【Java Development ToolKit】就是java開發工具箱, JDK是整個JAVA的核心裡邊包含了jre,它除了包含jre之外還包含了一些javac的工具類,把java原始檔編譯成class檔案,java檔案是用來執行這個程式的,除此之外,裡邊還包含了java源生的API,java.lang.integer在rt的jar包裡邊【可以在專案中看到】,透過rt這個jar包來呼叫我們的這些io流寫入寫出等

JDK有以下三種版本:

J2SE,standard edition,標準版,是我們通常用的一個版本

J2EE,enterpsise edtion,企業版,使用這種JDK開發J2EE應用程式

J2ME,micro edtion,主要用於移動裝置、嵌入式裝置上的java應用程式

Jre【Java  Runtime  Enviromental】是java執行時環境,那麼所謂的java執行時環境,就是為了保證java程式能夠執行時,所必備的一基礎環境,也就是它只是保證java程式執行的,不能用來開發,而jdk才是用來開發的,所有的Java程式都要在JRE下才能執行。

包括JVM和JAVA核心類庫和支援檔案。與JDK相比,它不包含開發工具——編譯器、偵錯程式和其它工具。

Jre裡邊包含jvm

Jvm:【Java Virtual Mechinal】因為jre是java執行時環境,java執行靠什麼執行,而底層就是依賴於jvm,即java虛擬機器,java虛擬機器用來載入類檔案,java中之所以有跨平臺的作用,就是因為我們的jvm

關係:

 J2se是基於jdk和jre,

 JDK是整個JAVA的核心裡邊包含了jre,

 Jre裡邊包含jvm

報錯的狀態碼:

 301 永久重定向

 302 臨時重定向

 304 服務端 未改變

 403 訪問無許可權

 200 正常

 404 路徑

 500 內部錯誤

協議以及預設的埠號

ftp   21    檔案傳輸協議

Pop3 110  它是因特網 <電子郵件 <的第一個離線 <協議標準

Smtp  25   簡單郵件傳輸協議

http   80   超文字傳輸協議

oracle 預設埠號1521

mysql預設埠號 3306

抽象類與介面的區別

1.一個類只能進行單繼承,但可以實現多個介面。

2.有抽象方法的類一定是抽象類,但是抽象類裡面不一定有抽象方法;

介面裡面所有的方法的預設修飾符為public abstract,介面裡的成員變數預設的修飾符為pulbic static final。

         關係:

介面和介面繼承

介面和抽象類抽象類實現介面

類和抽象類類繼承抽象類

類和類繼承

修飾符的作用

修飾符的作用範圍:

private  default  protected public

同一個類中可以  可以   可以    可以

同一個包的類中 可以      可以    可以

不同包的子類中       可以      可以

不同包的類中        可以

onready和onload的區別

1.onready比onload先執行

2.onready是在頁面解析完成之後執行,而onload是在頁面所有元素載入後執行

3.onload只執行最後一個而onready可以執行多個。

參考:

[if !supportLists]1.[endif]執行時間window.onload必須等到頁面內包括圖片的所有元素載入完畢後才能執行。 $(document).ready()是DOM結構繪製完畢後就執行,不必等到載入完畢。 2.編寫個數不同 window.onload不能同時編寫多個,如果有多個window.onload方法,只會執行一個 $(document).ready()可以同時編寫多個,並且都可以得到執行 3.簡化寫法 window.onload沒有簡化寫法 $(document).ready(function(){})可以簡寫成$(function(){});


Java個人知識點總結(基礎篇)

另外,需要注意一點,由於在$(document).ready() 方法內註冊的事件,只要DOM 就緒就會被執行,因此可能此時元素的關聯檔案未下載完。例如與圖片有關的html 下載完畢,並且已經解析為DOM 樹了,但很有可能圖片還沒有載入完畢,所以例如圖片的高度和寬度這樣的屬性此時不一定有效。要解決這個問題,可以使用Jquery 中另一個關於頁面載入的方法---load() 方法。Load() 方法會在元素的onload 事件中繫結一個處理函式。如果處理函式繫結給window 物件,則會在所有內容( 包括視窗、框架、物件和影像等) 載入完畢後觸發,如果處理函式繫結在元素上,則會在元素的內容載入完畢後觸發。 Jquery 程式碼如下: $(window).load(function (){ // 編寫程式碼 });等價於JavaScript 中的以下程式碼 Window.onload = function (){ // 編寫程式碼 }

switch預設接受 幾種資料型別

Short, int, byte, char

request 跟session的區別

1.他們的生命週期不同,

request對應的是一次請求,

session對應的是一次會話

2.request佔用資源比較少,相對來說缺乏持續性,

而session資源消耗比較大,所以通常使用request來儲存資訊

找到解決svn衝突方法

對於svn衝突,可以採用手工處理將衝突的部分進行整合,

之後備份最新整合後的檔案,採用覆蓋更新的方式處理完

衝突之後,再把最新整合後的檔案進行提交。

如果你依然覺得有些茫然,不如加入我的Java架構師之路:766529531 跟有多年Java開發經驗的資深工程師聊一聊。也可獲取免費的影片學習資料以及電子書學習資料喔!

反射的描述

透過字串可以動態建立java物件,並且可以動態訪問方法,

屬性等。

我們在專案中的時候封裝過資料庫jdbc的持久層,

其中就利用反射這項

技術來達到通用

和靈活的目的。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31555151/viewspace-2219438/,如需轉載,請註明出處,否則將追究法律責任。

相關文章