Java基礎(chǔ)知識(shí)點(diǎn)有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹“Java基礎(chǔ)知識(shí)點(diǎn)有哪些”,在日常操作中,相信很多人在Java基礎(chǔ)知識(shí)點(diǎn)有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java基礎(chǔ)知識(shí)點(diǎn)有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來(lái)巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),成都創(chuàng)新互聯(lián)面向各種領(lǐng)域:成都主動(dòng)防護(hù)網(wǎng)成都網(wǎng)站設(shè)計(jì)公司全網(wǎng)整合營(yíng)銷(xiāo)推廣解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。

JDK常用的包

 java.lang:這個(gè)是系統(tǒng)的基礎(chǔ)類(lèi),比如String、Math、Integer、System和Thread, 提供常用功能。

 java.io:這里面是所有輸入輸出有關(guān)的類(lèi),比如文件操作等

 java.net:這里面是與網(wǎng)絡(luò)有關(guān)的類(lèi),比如URL,URLConnection等。

 java.util:這個(gè)是系統(tǒng)輔助類(lèi),特別是集合類(lèi)Collection,List,Map等。

 java.sql:這個(gè)是數(shù)據(jù)庫(kù)操作的類(lèi),Connection, Statememt,ResultSet等

Get和Post的區(qū)別

1.get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù),

2.get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。

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

4.在進(jìn)行文件上傳時(shí)只能使用post而不能是get。

Java多態(tài)的具體體現(xiàn) 

面向?qū)ο缶幊逃兴膫€(gè)特征:抽象,封裝,繼承,多態(tài)。

多態(tài)有四種體現(xiàn)形式:

1. 接口和接口的繼承。

2. 類(lèi)和類(lèi)的繼承。

3. 重載。

4. 重寫(xiě)。

其中重載和重寫(xiě)為核心。

重載:重載發(fā)生在同一個(gè)類(lèi)中,在該類(lèi)中如果存在多個(gè)同名方

法,但是方法的參數(shù)類(lèi)型和個(gè)數(shù)不一樣,那么說(shuō)明該方法被重

載了。

重寫(xiě):重寫(xiě)發(fā)生在子類(lèi)繼承父類(lèi)的關(guān)系中,父類(lèi)中的方法被子

類(lèi)繼承,方法名,返回值類(lèi)型,參數(shù)完全一樣,但是方法體不

一樣,那么說(shuō)明父類(lèi)中的該方法被子類(lèi)重寫(xiě)了。

StringBuffer StringBuilder String區(qū)別√

String字符串常量   不可變  使用字符串拼接時(shí)是不同的2個(gè)空間

StringBuffer字符串變量   可變   線程安全  字符串拼接直接在字符串后追加

StringBuilder字符串變量   可變   非線程安全  字符串拼接直接在字符串后追加

1.StringBuilder執(zhí)行效率高于StringBuffer高于String.

2.String是一個(gè)常量,是不可變的,所以對(duì)于每一次+=賦值都會(huì)創(chuàng)建一個(gè)新的對(duì)象, StringBuffer和StringBuilder都是可變的,當(dāng)進(jìn)行字符串拼接時(shí)采用append方 法,在原來(lái)的基礎(chǔ)上進(jìn)行追加,所以性能比String要高,又因?yàn)镾tringBuffer  是 線程安全的而StringBuilder是線程非安全的,所以StringBuilder的效率

高于 StringBuffer.

3.對(duì)于大數(shù)據(jù)量的字符串的拼接,采用StringBuffer,StringBuilder.

Stringbuilder 執(zhí)行效率要高于stringbuffer更高于string

String是變量 是不可變的 所以在在+ = 賦值的時(shí)候創(chuàng)建新的對(duì)象

Stringbuffer stringbuilder倆個(gè)都是可變的,當(dāng)在字符串拼接的時(shí)候可以采用appent方法,在原有的基礎(chǔ)上追加,所以性能比string 更高  ,又因?yàn)閟tringbuffer是現(xiàn)成安全的   but     stringbuilder是線程非安全的  所以  stringbuilder比stringbuffer效率更低   

對(duì)于大數(shù)據(jù)字符串拼接可以采用stringbuffter或是 stringbuilder

Hashtable與HashMap的區(qū)別√

     HashMap不是線程安全的,HashTable是線程安全。

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

     HashMap性能優(yōu)于Hashtable。

Map

1.Map是一個(gè)以鍵值對(duì)存儲(chǔ)的接口。Map下有兩個(gè)具體的實(shí)現(xiàn),分別是HashMap和HashTable.

2.HashMap是線程非安全的,HashTable是線程安全的,所以HashMap的效率高于HashTable.

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

Map是一個(gè)鍵值的存儲(chǔ)接口  ,  map下還有倆個(gè)實(shí)現(xiàn)分別是 hashmap  和 hashtable

Hashmap線程非安全的   hashtable是線程安全的  所以hashmap要比hashtable效率要高

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

九大隱式對(duì)象

輸入/輸出對(duì)象:  request   response   out

作用域通信對(duì)象:session  application  pageContext

Servlet對(duì)象:   page   config

錯(cuò)誤對(duì)象:exception

Forword(請(qǐng)求轉(zhuǎn)發(fā))與Redirect(重定向)

1、從數(shù)據(jù)共享上

Forword是一個(gè)請(qǐng)求的延續(xù),可以共享request的數(shù)據(jù)

Redirect開(kāi)啟一個(gè)新的請(qǐng)求,不可以共享request的數(shù)據(jù)

2、從地址欄

Forword轉(zhuǎn)發(fā)地址欄不發(fā)生變化

Redirect轉(zhuǎn)發(fā)地址欄發(fā)生變化

八、JQurey總結(jié) 

 jquery是一個(gè)輕量級(jí)的js框架,具有跨瀏覽器的特性,兼容性好,

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

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

XML和Json的特點(diǎn)

Xml特點(diǎn):

  1、有且只有一個(gè)根節(jié)點(diǎn);

  2、數(shù)據(jù)傳輸?shù)妮d體

  3、所有的標(biāo)簽都需要自定義

  4、是純文本文件

Json(JavaScript Object Notation)特點(diǎn):

  json分為兩種格式:

json對(duì)象(就是在{}中存儲(chǔ)鍵值對(duì),鍵和值之間用冒號(hào)分隔,

鍵值對(duì)之間用逗號(hào)分隔);

json數(shù)組(就是[]中存儲(chǔ)多個(gè)json對(duì)象,json對(duì)象之間用逗號(hào)分隔)

(兩者間可以進(jìn)行相互嵌套)數(shù)據(jù)傳輸?shù)妮d體之一

區(qū)別:

  傳輸同樣格式的數(shù)據(jù),xml需要使用更多的字符進(jìn)行描述,

流行的是基于json的數(shù)據(jù)傳輸。

xml的層次結(jié)構(gòu)比json更清晰。

共同點(diǎn):

xml和json都是數(shù)據(jù)傳輸?shù)妮d體,并且具有跨平臺(tái)跨語(yǔ)言的特性。

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

getSession()/getSession(true):當(dāng)session存在時(shí)返回該session,否則新建一個(gè)     session并返回該對(duì)象

getSession(false):當(dāng)session存在時(shí)返回該session,否則返回null

Page和PageContext的區(qū)別

    Page是servlet對(duì)象;使用this關(guān)鍵字,它的作用范圍是在同一頁(yè)面。

PageContext是作用域通信對(duì)象;通常使用setAttribute()和getAttribute()來(lái)設(shè)置和獲取存放對(duì)象的值。

Ajax總結(jié)

    AJAX全稱(chēng): 異步JavaScript及 XML(Asynchronous JavaScript And XML)

Ajax的核心是JavaScript對(duì)象XmlHttpRequest(XHR)。

Ajax的優(yōu)點(diǎn):

    提高用戶(hù)體驗(yàn)度(UE)

    提高應(yīng)用程序的性能

    進(jìn)行局部刷新

AJAX不是一種新的編程語(yǔ)言,而是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的 Web 應(yīng)用程序的技術(shù)。

2.通過(guò) AJAX,我們的 JavaScript 可使用JavaScript的XMLHttpRequest對(duì)象來(lái)直接與服務(wù)器進(jìn)行通信。通過(guò)這個(gè)對(duì)象,我們的 JavaScript 可在不重載頁(yè)面的情況與Web服務(wù)器交換數(shù)據(jù),即可局部刷新。

3.  AJAX在瀏覽器與 Web 服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP 請(qǐng)求),這樣就可使網(wǎng)頁(yè)從服務(wù)器請(qǐng)求少量的信息,而不是整個(gè)頁(yè)面,減輕服務(wù)器的負(fù)擔(dān),提升站點(diǎn)的性能。

AJAX可使因特網(wǎng)應(yīng)用程序更小、更快,更友好,用戶(hù)體驗(yàn)(UE)好。

5.  Ajax是基于標(biāo)準(zhǔn)化并被廣泛支持的技術(shù),并且不需要插件和下載小程序

JSP9大隱視對(duì)象中四個(gè)作用域的大小與作用范圍

   四個(gè)作用域從大到?。篴ppliaction>session>request>page

application:全局作用范圍,整個(gè)應(yīng)用程序共享.生命周期為:應(yīng)用程序啟動(dòng)到停止。

session:會(huì)話作用域,當(dāng)用戶(hù)首次訪問(wèn)時(shí),產(chǎn)生一個(gè)新的會(huì)話,以后服務(wù)器就可以記              住這個(gè)會(huì)話狀態(tài)。

request:請(qǐng)求作用域,就是客戶(hù)端的一次請(qǐng)求。

page:一個(gè)JSP頁(yè)面。

以上作用范圍使越來(lái)越小,request和page的生命周期都是短暫的,他們之間的區(qū)別就是:一個(gè)request可以包含多個(gè)page頁(yè)(include,forward)。

List,Set,Collection,Collections√

[if !supportLists]1.[endif]List和Set都是接口,他們都繼承于接口Collection,List是一個(gè)有序的可重復(fù)的集合,而Set的無(wú)序的不可重復(fù)的集合。Collection是集合的頂層接口,Collections是一個(gè)封裝了眾多關(guān)于集合操作的靜態(tài)方法的工具類(lèi),因?yàn)闃?gòu)造方法是私有的,所以不能實(shí)例化。

2.List接口實(shí)現(xiàn)類(lèi)有ArrayList,LinkedList,Vector。ArrayList和Vector是基于數(shù)組實(shí)現(xiàn)的,所以查詢(xún)的時(shí)候速度快,而在進(jìn)行增加和刪除的時(shí)候速度較慢LinkedList是基于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),所以在進(jìn)行查詢(xún)的時(shí)候速度較慢但在進(jìn)行增加和刪除的時(shí)候速度較快。又因?yàn)閂ector是線程安全的,所以他和ArrayList相比而言,查詢(xún)效率要低。

List和set都屬于接口   他們都繼承于collection  

List是一個(gè)有序的   可重復(fù)的   set是無(wú)序得到不可重復(fù)的

Collection是集合的頂層接口  , collections是封裝可眾多集合的操作的靜態(tài)的工具類(lèi)  因?yàn)樗撬接谢乃运豢梢詫?shí)例化

List的接口實(shí)現(xiàn)類(lèi)分為arraylist vertor linkedlist arraylist 和 verson是基于數(shù)組實(shí)現(xiàn)的,說(shuō)以查詢(xún)的時(shí)候較快  ,但是增加 與刪除 的速度較慢。  Linkelist是基于鏈?zhǔn)酱鎯?chǔ) ,所以查詢(xún)的時(shí)候較慢, 增加與刪除數(shù)獨(dú)較快, 又因?yàn)関ertor線程安全  所以arraylist相比 效率

如果你依然覺(jué)得有些茫然,不如加入我的Java架構(gòu)師之路:766529531 跟有多年Java開(kāi)發(fā)經(jīng)驗(yàn)的資深工程師聊一聊。也可獲取免費(fèi)的視頻學(xué)習(xí)資料以及電子書(shū)學(xué)習(xí)資料喔!

java的基本數(shù)據(jù)類(lèi)型

數(shù)據(jù)類(lèi)型 大小

byte(字節(jié)) 1(8位)

shot(短整型) 2(16位)

int(整型) 4(32位)

long(長(zhǎng)整型) 8(32位)

float(浮點(diǎn)型) 4(32位)

double(雙精度) 8(64位)

char(字符型) 2(16位)

boolean(布爾型) 1位

附加:

String是基本數(shù)據(jù)類(lèi)型嗎?(String不是基本數(shù)據(jù)類(lèi)型)

String的長(zhǎng)度是多少,有限制?(長(zhǎng)度受內(nèi)存大小的影響)

冒泡排序

public class Sort {

public static void sort() {

Scanner input = new Scanner(System.in);

int sort[] = new int[10];

int temp;

System.out.println("請(qǐng)輸入10個(gè)排序的數(shù)據(jù):");

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("排列后的順序?yàn)椋?quot;);

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

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

}

}

public static void main(String[] args) {

sort();

}

}

二分查找法

十八、時(shí)間類(lèi)型轉(zhuǎn)換

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("請(qǐng)輸入大于0的數(shù)!");

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的區(qū)別

UE是用戶(hù)體驗(yàn)度

UI界面原型(用戶(hù)界面)(相當(dāng)于買(mǎi)房時(shí)用的模型)

設(shè)計(jì)UI的作用:

1、幫助程序員工作(界面已由美工設(shè)計(jì)完成)

2、提前讓用戶(hù)對(duì)項(xiàng)目有個(gè)宏觀的了解,知道效果是什么樣子。

osi七層模型

第一層:物理層

第二層:數(shù)據(jù)鏈路層

第三層:網(wǎng)絡(luò)層

第四層:傳輸層

第五層:會(huì)話層

第六層:表示層

第七層:應(yīng)用層

線程和進(jìn)程的區(qū)別

1.線程(Thread)與進(jìn)程(Process)

進(jìn)程定義的是應(yīng)用程序與應(yīng)用程序之間的邊界,通常來(lái)說(shuō)一個(gè)進(jìn)程就代表一個(gè)與之對(duì)應(yīng)的應(yīng)用程序。不同的進(jìn)程之間不能共享代碼和數(shù)據(jù)空間,而同一進(jìn)程的不同線程可以共享代碼和數(shù)據(jù)空間。

如果你依然覺(jué)得有些茫然,不如加入我的Java架構(gòu)師之路:766529531 跟有多年Java開(kāi)發(fā)經(jīng)驗(yàn)的資深工程師聊一聊。也可獲取免費(fèi)的視頻學(xué)習(xí)資料以及電子書(shū)學(xué)習(xí)資料喔!

1、一個(gè)進(jìn)程可以包括若干個(gè)線程,同時(shí)創(chuàng)建多個(gè)線程來(lái)完成某項(xiàng)任務(wù),便是多線程。

2、實(shí)現(xiàn)線程的兩種方式:繼承Thread類(lèi),實(shí)現(xiàn)Runable接口

jvm的內(nèi)存結(jié)構(gòu)

1、java虛擬機(jī)的內(nèi)存結(jié)構(gòu)分為堆(heap)和棧(stack),堆里面存放是對(duì)象實(shí)例也就是new出來(lái)的對(duì)象。棧里面存放的是基本數(shù)據(jù)類(lèi)型以及引用數(shù)據(jù)類(lèi)型的地址。

2、對(duì)于所謂的常量是存儲(chǔ)在方法區(qū)的常量池里面。

內(nèi)存泄露和內(nèi)存溢出

內(nèi)存泄露(memory leak),是指應(yīng)用程序在申請(qǐng)內(nèi)存后,

無(wú)法釋放已經(jīng)申請(qǐng)的內(nèi)存空間.一次內(nèi)存泄露危害可以忽略,

但如果任其發(fā)展最終會(huì)導(dǎo)致內(nèi)存溢出(out of memory).

如讀取文件后流要進(jìn)行及時(shí)的關(guān)閉以及對(duì)數(shù)據(jù)庫(kù)連接的釋放。

內(nèi)存溢出(out of memory)是指應(yīng)用程序在申請(qǐng)內(nèi)存時(shí),

沒(méi)有足夠的內(nèi)存空間供其使用。

如我們?cè)陧?xiàng)目中對(duì)于大批量數(shù)據(jù)的導(dǎo)入,采用分段批量提交的方式。

單例

單例就是該類(lèi)只能返回一個(gè)實(shí)例。

單例所具備的特點(diǎn):

1.私有化的構(gòu)造函數(shù)

2.私有的靜態(tài)的全局變量

3.公有的靜態(tài)的方法

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

餓漢式:

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;

  }

}

參考:

通過(guò)雙重判斷來(lái)保證單列設(shè)計(jì)模式在多線程中的安全性,

并且它在性能方面提高了很多。

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

synchronized在代碼塊內(nèi)部加鎖 (同步代碼塊)

synchronized(同步鎖)

使用synchronized如何解決線程安全的問(wèn)題?

1.synchronized在方法上加鎖

2.synchronized在代碼塊內(nèi)部加鎖

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

解析xml文件的幾種技術(shù)

1、 解析xml的幾種技術(shù)

        1.dom4j

        2.sax

        3.jaxb

        4.jdom

        5.dom

1.dom4j        

  dom4j是一個(gè)Java的XML API,類(lèi)似于jdom,用來(lái)讀寫(xiě)XML文件的。dom4j是一個(gè)非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強(qiáng)大和極端易用使用的特點(diǎn),同時(shí)它也是一個(gè)開(kāi)放源代碼的軟件。

 2.sax

SAX(simple API for XML)是一種XML解析的替代方法。相比于DOM,SAX是一種速度更快,更有效的方法。它逐行掃描文檔,一邊掃描一邊解析。而且相比于DOM,SAX可以在解析文檔的任意時(shí)刻停止解析,但任何事物都有其相反的一面,對(duì)于SAX來(lái)說(shuō)就是操作復(fù)雜。

  3.jaxb

JAXB(Java Architecture for XML Binding) 是一個(gè)業(yè)界的標(biāo)準(zhǔn),是一項(xiàng)可以根據(jù)XML Schema產(chǎn)生Java類(lèi)的技術(shù)。該過(guò)程中,JAXB也提供了將XML實(shí)例文檔反向生成Java對(duì)象樹(shù)的方法,并能將Java對(duì)象樹(shù)的內(nèi)容重新寫(xiě)到XML實(shí)例文檔。從另一方面來(lái)講,JAXB提供了快速而簡(jiǎn)便的方法將XML模式綁定到Java表示,從而使得Java開(kāi)發(fā)者在Java應(yīng)用程序中能方便地結(jié)合XML數(shù)據(jù)和處理函數(shù)。

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

dom4j不適合大文件的解析,因?yàn)樗且幌伦訉⑽募虞d到內(nèi)存中,所以有可能出現(xiàn)內(nèi)存溢出,

sax是基于事件來(lái)對(duì)xml進(jìn)行解析的,所以他可以解析大文件的xml

也正是因?yàn)槿绱?,所以dom4j可以對(duì)xml進(jìn)行靈活的增刪改查和導(dǎo)航,而sax沒(méi)有這么強(qiáng)的靈活性

所以sax經(jīng)常是用來(lái)解析大型xml文件,而要對(duì)xml文件進(jìn)行一些靈活(crud)操作就用dom4j

項(xiàng)目的生命周期

    1.需求分析

2.概要設(shè)計(jì)

3.詳細(xì)設(shè)計(jì)(用例圖,流程圖,類(lèi)圖)

4.數(shù)據(jù)庫(kù)設(shè)計(jì)(powerdesigner)

5.代碼開(kāi)發(fā)(編寫(xiě))

6.單元測(cè)試(junit 白盒測(cè)試)(開(kāi)發(fā)人員)

svn版本管理工具(提交,更新代碼,文檔)

7.集成測(cè)試 (黑盒測(cè)試,loadrunner(編寫(xiě)測(cè)試腳本)(高級(jí)測(cè)試))

8.上線試運(yùn)行 (用戶(hù)自己體驗(yàn))

9.壓力測(cè)試(loadrunner)

10.正式上線

11.維護(hù)

OSCache的判斷

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

//從緩存中取數(shù)據(jù)

if (null == obj)  {

obj = brandDao.getBrandList();

//如果為空再?gòu)臄?shù)據(jù)庫(kù)獲取數(shù)據(jù)

//獲取之后放入緩存中

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

}

return (List<OaBrand>)obj;

經(jīng)常訪問(wèn)的技術(shù)網(wǎng)站

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

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

3.oschina(開(kāi)源中國(guó)獲取java開(kāi)源方面的信息技術(shù))

4.java開(kāi)源大全 www.open-open.com(獲取java開(kāi)源方面的信息技術(shù))

5.infoq(對(duì)java,php,.net等這些語(yǔ)言的一些最新消息的報(bào)道)

項(xiàng)目團(tuán)隊(duì)中交流的工具

飛秋(局域網(wǎng)) qq(局域網(wǎng),外網(wǎng))

RTX(局域網(wǎng),外網(wǎng)) 郵箱(局域網(wǎng),外網(wǎng))

平時(shí)瀏覽的書(shū)籍

實(shí)戰(zhàn)經(jīng)驗(yàn):

  *** in action(實(shí)戰(zhàn))

  ***深入淺出

  ***入門(mén)指南

思想基礎(chǔ):

  大話設(shè)計(jì)模式 重構(gòu)

java Exception體系結(jié)構(gòu)

java異常是程序運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤。Java把異常當(dāng)作對(duì)象來(lái)處理,并定義一個(gè)基類(lèi)java.lang.Throwable作為所有異常的超類(lèi)。在Java API中定義了許多異常類(lèi),分為兩大類(lèi),錯(cuò)誤Error和異常Exception。其中異常類(lèi)Exception又分為運(yùn)行時(shí)異常(RuntimeException)和非運(yùn)行時(shí)異常(非runtimeException),也稱(chēng)之為不檢查異常(Unchecked Exception)和檢查異常(Checked Exception)。

1、Error與Exception

Error是程序無(wú)法處理的錯(cuò)誤,比如OutOfMemoryError、ThreadDeath等。

這些異常發(fā)生時(shí),Java虛擬機(jī)(JVM)一般會(huì)選擇線程終止。

Exception是程序本身可以處理的異常,這種異常分兩大類(lèi)運(yùn)行時(shí)異常和非運(yùn)行時(shí)異常。程序中應(yīng)當(dāng)盡可能去處理這些異常。

2、運(yùn)行時(shí)異常和非運(yùn)行時(shí)異常      

運(yùn)行時(shí)異常:都是RuntimeException類(lèi)及其子類(lèi)異常:     IndexOutOfBoundsException索引越界異常

ArithmeticException:數(shù)學(xué)計(jì)算異常

NullPointerException:空指針異常

ArrayOutOfBoundsException:數(shù)組索引越界異常

ClassNotFoundException:類(lèi)文件未找到異常

ClassCastException:造型異常(類(lèi)型轉(zhuǎn)換異常)

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

非運(yùn)行時(shí)異常:是RuntimeException以外的異常,類(lèi)型上都屬于Exception類(lèi)及其子類(lèi)。從程序語(yǔ)法角度講是必須進(jìn)行處理的異常,如果不處理,程序就不能編譯通過(guò)。如:

IOException、文件讀寫(xiě)異常

FileNotFoundException:文件未找到異常

  EOFException:讀寫(xiě)文件尾異常

MalformedURLException:URL格式錯(cuò)誤異常

SocketException:Socket異常

SQLException:SQL數(shù)據(jù)庫(kù)異常

session和cookie的區(qū)別

session是存儲(chǔ)在服務(wù)器端,cookie是存儲(chǔ)在客戶(hù)端的,所以安全來(lái)講session的安全性要比cookie高,然后我們獲取session里的信息是通過(guò)存放在會(huì)話cookie里的sessionid獲取的。又由于session是存放在服務(wù)器的內(nèi)存中,所以session里的東西不斷增加會(huì)造成服務(wù)器的負(fù)擔(dān),所以會(huì)把很重要的信息存儲(chǔ)在session中,而把一些次要東西存儲(chǔ)在客戶(hù)端的cookie里,然后cookie確切的說(shuō)分為兩大類(lèi)分為會(huì)話cookie和持久化cookie,會(huì)話cookie確切的說(shuō)是存放在客戶(hù)端瀏覽器的內(nèi)存中,所以說(shuō)他的生命周期和瀏覽器是一致的,瀏覽器關(guān)了會(huì)話cookie也就消失了,然而持久化cookie是存放在客戶(hù)端硬盤(pán)中,而持久化cookie的生命周期就是我們?cè)谠O(shè)置cookie時(shí)候設(shè)置的那個(gè)保存時(shí)間,然后我們考慮一問(wèn)題當(dāng)瀏覽器關(guān)閉時(shí)session會(huì)不會(huì)丟失,從上面敘述分析session的信息是通過(guò)sessionid獲取的,而sessionid是存放在會(huì)話cookie當(dāng)中的,當(dāng)瀏覽器關(guān)閉的時(shí)候會(huì)話cookie消失所以我們的sessionid也就消失了,但是session的信息還存在服務(wù)器端,這時(shí)我們只是查不到所謂的session但它并不是不存在。那么,session在什么情況下丟失,就是在服務(wù)器關(guān)閉的時(shí)候,或者是sessio過(guò)期,再或者調(diào)用了invalidate()的或者是我們想要session中的某一條數(shù)據(jù)消失調(diào)用session.removeAttribute()方法,然后session在什么時(shí)候被創(chuàng)建呢,確切的說(shuō)是通過(guò)調(diào)用session.getsession來(lái)創(chuàng)建,這就是session與cookie的區(qū)別

字節(jié)流與字符流的區(qū)別

stream結(jié)尾都是字節(jié)流,reader和writer結(jié)尾都是字符流

兩者的區(qū)別就是讀寫(xiě)的時(shí)候一個(gè)是按字節(jié)讀寫(xiě),一個(gè)是按字符。

實(shí)際使用通常差不多。

在讀寫(xiě)文件需要對(duì)內(nèi)容按行處理,比如比較特定字符,處理某一行數(shù)據(jù)的時(shí)候一般會(huì)選擇字符流。

只是讀寫(xiě)文件,和文件內(nèi)容無(wú)關(guān)的,一般選擇字節(jié)流。

final,finally,finalize三者區(qū)別

Final是一個(gè)修飾符:

當(dāng)final修飾一個(gè)變量的時(shí)候,變量變成一個(gè)常量,它不能被二次賦值

當(dāng)final修飾的變量為靜態(tài)變量(即由static修飾)時(shí),必須在聲明這個(gè)變 量的時(shí)候給它賦值

當(dāng)final修飾方法時(shí),該方法不能被重寫(xiě)

當(dāng)final修飾類(lèi)時(shí),該類(lèi)不能被繼承

Final不能修飾抽象類(lèi),因?yàn)槌橄箢?lèi)中會(huì)有需要子類(lèi)實(shí)現(xiàn)的抽象方法,(抽 象類(lèi)中可以有抽象方法,也可以有普通方法,當(dāng)一個(gè)抽象類(lèi)中沒(méi)有抽象方 法時(shí),這個(gè)抽象類(lèi)也就沒(méi)有了它存在的必要)

Final不能修飾接口,因?yàn)榻涌谥杏行枰鋵?shí)現(xiàn)類(lèi)來(lái)實(shí)現(xiàn)的方法

Finally:

Finally只能與try/catch語(yǔ)句結(jié)合使用,finally語(yǔ)句塊中的語(yǔ)句一定會(huì)執(zhí)行,并且會(huì)在return,continue,break關(guān)鍵字之前執(zhí)行

finalize:

Finalize是一個(gè)方法,屬于java.lang.Object類(lèi),finalize()方法是GC(garbage collector垃圾回收)運(yùn)行機(jī)制的一部分,finalize()方法是在GC清理它所從屬的對(duì)象時(shí)被調(diào)用的

Io流的層次結(jié)構(gòu)

從流的方向

輸入流 輸出流

從流的類(lèi)型上

字符流字節(jié)流

inputstream和outputstream都是抽象類(lèi)

它們下面的實(shí)現(xiàn)包括

FileInputStream,BufferedInputStream

FileOutputStream,BufferedOutputStream

reader和 writer

FileReader,BufferedReader,StringReader

FileWriter,BufferedWriter,StringWriter,PrintWriter

Java基礎(chǔ)知識(shí)點(diǎn)有哪些

JAVA:

Java是面向?qū)ο蟮?,跨平臺(tái)的,它通過(guò)java虛擬機(jī)來(lái)進(jìn)行跨平臺(tái)操作,它可以進(jìn)行自動(dòng)垃圾回收的【c語(yǔ)言是通過(guò)人工進(jìn)行垃圾回收】,java還會(huì)進(jìn)行自動(dòng)分配內(nèi)存?!綾語(yǔ)言是通過(guò)指定進(jìn)行分配內(nèi)存的】,只需要new一個(gè)對(duì)象,這個(gè)對(duì)象占用了多少空間,不需要我們來(lái)管,java虛擬機(jī)負(fù)責(zé)管這些,用完之后也不需要我們來(lái)釋放,java虛擬機(jī)會(huì)自動(dòng)釋放

JavaSE JavaEE JavaME區(qū)別

是什么:

Java SE=Java Standard Edition=j2se = java 標(biāo)準(zhǔn)版

Java EE=Java Enterprise Edition=j2ee= java 企業(yè)版

Java ME=Java Mobile Edition=j2me = java移動(dòng)版

特點(diǎn):

SE主要用于桌面程序(swing),控制臺(tái)開(kāi)發(fā)(main程序)。

EE企業(yè)級(jí)開(kāi)發(fā)(JSP,EJB,Spring MVC,Struts,hibernate,ibatis等),

用于企業(yè)級(jí)軟件開(kāi)發(fā),網(wǎng)絡(luò)開(kāi)發(fā),web開(kāi)發(fā)。

ME嵌入式開(kāi)發(fā)(手機(jī),小家電,PDA)。[蘋(píng)果的ios,黑莓]

三者之間的關(guān)系:

Java SE(Java Platform, Standard Edition,Java標(biāo)準(zhǔn)版)就是基于JDK和JRE的。

Java SE為Java EE提供了基礎(chǔ)。

Java EE除了基于我們這個(gè)所謂的Java SE外,還新加了企業(yè)應(yīng)用所需的類(lèi)庫(kù)

JDK  JRE  JVM的區(qū)別:

Jdk【Java Development ToolKit】就是java開(kāi)發(fā)工具箱, JDK是整個(gè)JAVA的核心里邊包含了jre,它除了包含jre之外還包含了一些javac的工具類(lèi),把java源文件編譯成class文件,java文件是用來(lái)運(yùn)行這個(gè)程序的,除此之外,里邊還包含了java源生的API,java.lang.integer在rt的jar包里邊【可以在項(xiàng)目中看到】,通過(guò)rt這個(gè)jar包來(lái)調(diào)用我們的這些io流寫(xiě)入寫(xiě)出等

JDK有以下三種版本:

J2SE,standard edition,標(biāo)準(zhǔn)版,是我們通常用的一個(gè)版本

J2EE,enterpsise edtion,企業(yè)版,使用這種JDK開(kāi)發(fā)J2EE應(yīng)用程序

J2ME,micro edtion,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序

Jre【Java  Runtime  Enviromental】是java運(yùn)行時(shí)環(huán)境,那么所謂的java運(yùn)行時(shí)環(huán)境,就是為了保證java程序能夠運(yùn)行時(shí),所必備的一基礎(chǔ)環(huán)境,也就是它只是保證java程序運(yùn)行的,不能用來(lái)開(kāi)發(fā),而jdk才是用來(lái)開(kāi)發(fā)的,所有的Java程序都要在JRE下才能運(yùn)行。

包括JVM和JAVA核心類(lèi)庫(kù)和支持文件。與JDK相比,它不包含開(kāi)發(fā)工具——編譯器、調(diào)試器和其它工具。

Jre里邊包含jvm

Jvm:【Java Virtual Mechinal】因?yàn)閖re是java運(yùn)行時(shí)環(huán)境,java運(yùn)行靠什么運(yùn)行,而底層就是依賴(lài)于jvm,即java虛擬機(jī),java虛擬機(jī)用來(lái)加載類(lèi)文件,java中之所以有跨平臺(tái)的作用,就是因?yàn)槲覀兊膉vm

關(guān)系:

 J2se是基于jdk和jre,

 JDK是整個(gè)JAVA的核心里邊包含了jre,

 Jre里邊包含jvm

報(bào)錯(cuò)的狀態(tài)碼:

 301 永久重定向

 302 臨時(shí)重定向

 304 服務(wù)端 未改變

 403 訪問(wèn)無(wú)權(quán)限

 200 正常

 404 路徑

 500 內(nèi)部錯(cuò)誤

協(xié)議以及默認(rèn)的端口號(hào)

ftp   21    文件傳輸協(xié)議

Pop3 110  它是因特網(wǎng) <http://baike.baidu.com/view/1706.htm>電子郵件 <http://baike.baidu.com/view/1524.htm>的第一個(gè)離線 <http://baike.baidu.com/view/113466.htm>協(xié)議標(biāo)準(zhǔn)

Smtp  25   簡(jiǎn)單郵件傳輸協(xié)議

http   80   超文本傳輸協(xié)議

oracle 默認(rèn)端口號(hào)1521

mysql默認(rèn)端口號(hào) 3306

抽象類(lèi)與接口的區(qū)別

1.一個(gè)類(lèi)只能進(jìn)行單繼承,但可以實(shí)現(xiàn)多個(gè)接口。

2.有抽象方法的類(lèi)一定是抽象類(lèi),但是抽象類(lèi)里面不一定有抽象方法;

接口里面所有的方法的默認(rèn)修飾符為public abstract,接口里的成員變量默認(rèn)的修飾符為pulbic static final。

         關(guān)系:

接口和接口繼承

接口和抽象類(lèi)抽象類(lèi)實(shí)現(xiàn)接口

類(lèi)和抽象類(lèi)類(lèi)繼承抽象類(lèi)

類(lèi)和類(lèi)繼承

修飾符的作用

修飾符的作用范圍:

private  default  protected public

同一個(gè)類(lèi)中可以  可以   可以    可以

同一個(gè)包的類(lèi)中 可以      可以    可以

不同包的子類(lèi)中       可以      可以

不同包的類(lèi)中        可以

onready和onload的區(qū)別

1.onready比onload先執(zhí)行

2.onready是在頁(yè)面解析完成之后執(zhí)行,而onload是在頁(yè)面所有元素加載后執(zhí)行

3.onload只執(zhí)行最后一個(gè)而onready可以執(zhí)行多個(gè)。

參考:

[if !supportLists]1.[endif]執(zhí)行時(shí)間window.onload必須等到頁(yè)面內(nèi)包括圖片的所有元素加載完畢后才能執(zhí)行。 $(document).ready()是DOM結(jié)構(gòu)繪制完畢后就執(zhí)行,不必等到加載完畢。 2.編寫(xiě)個(gè)數(shù)不同 window.onload不能同時(shí)編寫(xiě)多個(gè),如果有多個(gè)window.onload方法,只會(huì)執(zhí)行一個(gè) $(document).ready()可以同時(shí)編寫(xiě)多個(gè),并且都可以得到執(zhí)行 3.簡(jiǎn)化寫(xiě)法 window.onload沒(méi)有簡(jiǎn)化寫(xiě)法 $(document).ready(function(){})可以簡(jiǎn)寫(xiě)成$(function(){});

Java基礎(chǔ)知識(shí)點(diǎn)有哪些

另外,需要注意一點(diǎn),由于在$(document).ready() 方法內(nèi)注冊(cè)的事件,只要DOM 就緒就會(huì)被執(zhí)行,因此可能此時(shí)元素的關(guān)聯(lián)文件未下載完。例如與圖片有關(guān)的html 下載完畢,并且已經(jīng)解析為DOM 樹(shù)了,但很有可能圖片還沒(méi)有加載完畢,所以例如圖片的高度和寬度這樣的屬性此時(shí)不一定有效。要解決這個(gè)問(wèn)題,可以使用Jquery 中另一個(gè)關(guān)于頁(yè)面加載的方法---load() 方法。Load() 方法會(huì)在元素的onload 事件中綁定一個(gè)處理函數(shù)。如果處理函數(shù)綁定給window 對(duì)象,則會(huì)在所有內(nèi)容( 包括窗口、框架、對(duì)象和圖像等) 加載完畢后觸發(fā),如果處理函數(shù)綁定在元素上,則會(huì)在元素的內(nèi)容加載完畢后觸發(fā)。 Jquery 代碼如下: $(window).load(function (){ // 編寫(xiě)代碼 });等價(jià)于JavaScript 中的以下代碼 Window.onload = function (){ // 編寫(xiě)代碼 }

switch默認(rèn)接受的幾種數(shù)據(jù)類(lèi)型

Short, int, byte, char

request 跟session的區(qū)別

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

request對(duì)應(yīng)的是一次請(qǐng)求,

session對(duì)應(yīng)的是一次會(huì)話

2.request占用資源比較少,相對(duì)來(lái)說(shuō)缺乏持續(xù)性,

而session資源消耗比較大,所以通常使用request來(lái)保存信息

找到解決svn沖突方法

對(duì)于svn沖突,可以采用手工處理將沖突的部分進(jìn)行整合,

之后備份最新整合后的文件,采用覆蓋更新的方式處理完

沖突之后,再把最新整合后的文件進(jìn)行提交。

到此,關(guān)于“Java基礎(chǔ)知識(shí)點(diǎn)有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

網(wǎng)頁(yè)名稱(chēng):Java基礎(chǔ)知識(shí)點(diǎn)有哪些-創(chuàng)新互聯(lián)
鏈接地址:http://muchs.cn/article8/dgidop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)、響應(yīng)式網(wǎng)站網(wǎng)站內(nèi)鏈、企業(yè)建站品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)