溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java基礎(chǔ)知識點有哪些

發(fā)布時間:2022-01-05 15:14:46 來源:億速云 閱讀:112 作者:iii 欄目:編程語言

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

JDK常用的包

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

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

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

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

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

Get和Post的區(qū)別

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

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

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

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

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

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

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

1. 接口和接口的繼承。

2. 類和類的繼承。

3. 重載。

4. 重寫。

其中重載和重寫為核心。

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

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

載了。

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

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

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

StringBuffer StringBuilder String區(qū)別√

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

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

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

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

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

高于 StringBuffer.

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

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

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

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

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

Hashtable與HashMap的區(qū)別√

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

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

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

Map

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

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

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

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

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

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

九大隱式對象

輸入/輸出對象:  request   response   out

作用域通信對象:session  application  pageContext

Servlet對象:   page   config

錯誤對象:exception

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

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

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

Redirect開啟一個新的請求,不可以共享request的數(shù)據(jù)

2、從地址欄

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

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

八、JQurey總結(jié) 

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

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

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

XML和Json的特點

Xml特點:

  1、有且只有一個根節(jié)點;

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

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

  4、是純文本文件

Json(JavaScript Object Notation)特點:

  json分為兩種格式:

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

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

json數(shù)組(就是[]中存儲多個json對象,json對象之間用逗號分隔)

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

區(qū)別:

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

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

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

共同點:

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

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

getSession()/getSession(true):當session存在時返回該session,否則新建一個     session并返回該對象

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

Page和PageContext的區(qū)別

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

PageContext是作用域通信對象;通常使用setAttribute()和getAttribute()來設置和獲取存放對象的值。

Ajax總結(jié)

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

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

Ajax的優(yōu)點:

    提高用戶體驗度(UE)

    提高應用程序的性能

    進行局部刷新

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

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

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

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

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

JSP9大隱視對象中四個作用域的大小與作用范圍

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

application:全局作用范圍,整個應用程序共享.生命周期為:應用程序啟動到停止。

session:會話作用域,當用戶首次訪問時,產(chǎn)生一個新的會話,以后服務器就可以記              住這個會話狀態(tài)。

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

page:一個JSP頁面。

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

List,Set,Collection,Collections√

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

2.List接口實現(xiàn)類有ArrayList,LinkedList,Vector。ArrayList和Vector是基于數(shù)組實現(xiàn)的,所以查詢的時候速度快,而在進行增加和刪除的時候速度較慢LinkedList是基于鏈式存儲結(jié)構(gòu),所以在進行查詢的時候速度較慢但在進行增加和刪除的時候速度較快。又因為Vector是線程安全的,所以他和ArrayList相比而言,查詢效率要低。

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

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

Collection是集合的頂層接口  , collections是封裝可眾多集合的操作的靜態(tài)的工具類  因為他是私有化的所以他不可以實例化

List的接口實現(xiàn)類分為arraylist vertor linkedlist arraylist 和 verson是基于數(shù)組實現(xiàn)的,說以查詢的時候較快  ,但是增加 與刪除 的速度較慢。  Linkelist是基于鏈式存儲 ,所以查詢的時候較慢, 增加與刪除數(shù)獨較快, 又因為vertor線程安全  所以arraylist相比 效率

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

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

數(shù)據(jù)類型 大小

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

shot(短整型) 2(16位)

int(整型) 4(32位)

long(長整型) 8(32位)

float(浮點型) 4(32位)

double(雙精度) 8(64位)

char(字符型) 2(16位)

boolean(布爾型) 1位

附加:

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

String的長度是多少,有限制?(長度受內(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("請輸入10個排序的數(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("排列后的順序為:");

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

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

}

}

public static void main(String[] args) {

sort();

}

}


二分查找法

十八、時間類型轉(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("請輸入大于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是用戶體驗度

UI界面原型(用戶界面)(相當于買房時用的模型)

設計UI的作用:

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

2、提前讓用戶對項目有個宏觀的了解,知道效果是什么樣子。

osi七層模型

第一層:物理層

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

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

第四層:傳輸層

第五層:會話層

第六層:表示層

第七層:應用層

線程和進程的區(qū)別

1.線程(Thread)與進程(Process)

進程定義的是應用程序與應用程序之間的邊界,通常來說一個進程就代表一個與之對應的應用程序。不同的進程之間不能共享代碼和數(shù)據(jù)空間,而同一進程的不同線程可以共享代碼和數(shù)據(jù)空間。

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

1、一個進程可以包括若干個線程,同時創(chuàng)建多個線程來完成某項任務,便是多線程。

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

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

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

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

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

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

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

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

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

內(nèi)存溢出(out of memory)是指應用程序在申請內(nèi)存時,

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

如我們在項目中對于大批量數(shù)據(jù)的導入,采用分段批量提交的方式。

單例

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

單例所具備的特點:

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;

  }

}

參考:

通過雙重判斷來保證單列設計模式在多線程中的安全性,

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

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

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

synchronized(同步鎖)

使用synchronized如何解決線程安全的問題?

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是一個Java的XML API,類似于jdom,用來讀寫XML文件的。dom4j是一個非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強大和極端易用使用的特點,同時它也是一個開放源代碼的軟件。

 2.sax

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

  3.jaxb

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

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

dom4j不適合大文件的解析,因為它是一下子將文件加載到內(nèi)存中,所以有可能出現(xiàn)內(nèi)存溢出,

sax是基于事件來對xml進行解析的,所以他可以解析大文件的xml

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

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

項目的生命周期

    1.需求分析

2.概要設計

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

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

5.代碼開發(fā)(編寫)

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

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

7.集成測試 (黑盒測試,loadrunner(編寫測試腳本)(高級測試))

8.上線試運行 (用戶自己體驗)

9.壓力測試(loadrunner)

10.正式上線

11.維護

OSCache的判斷

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

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

if (null == obj)  {

obj = brandDao.getBrandList();

//如果為空再從數(shù)據(jù)庫獲取數(shù)據(jù)

//獲取之后放入緩存中

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

}

return (List<OaBrand>)obj;

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

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

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

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

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

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

項目團隊中交流的工具

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

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

平時瀏覽的書籍

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

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

  ***深入淺出

  ***入門指南

思想基礎(chǔ):

  大話設計模式 重構(gòu)

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

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

1、Error與Exception

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

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

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

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

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

ArithmeticException:數(shù)學計算異常

NullPointerException:空指針異常

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

ClassNotFoundException:類文件未找到異常

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

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

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

IOException、文件讀寫異常

FileNotFoundException:文件未找到異常

  EOFException:讀寫文件尾異常

MalformedURLException:URL格式錯誤異常

SocketException:Socket異常

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

session和cookie的區(qū)別

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

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

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

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

實際使用通常差不多。

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

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

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

Final是一個修飾符:

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

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

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

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

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

Final不能修飾接口,因為接口中有需要其實現(xiàn)類來實現(xiàn)的方法

Finally:

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

finalize:

Finalize是一個方法,屬于java.lang.Object類,finalize()方法是GC(garbage collector垃圾回收)運行機制的一部分,finalize()方法是在GC清理它所從屬的對象時被調(diào)用的

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

從流的方向

輸入流 輸出流

從流的類型上

字符流字節(jié)流

inputstream和outputstream都是抽象類

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

FileInputStream,BufferedInputStream

FileOutputStream,BufferedOutputStream

reader和 writer

FileReader,BufferedReader,StringReader

FileWriter,BufferedWriter,StringWriter,PrintWriter

Java基礎(chǔ)知識點有哪些

JAVA:

Java是面向?qū)ο蟮模缙脚_的,它通過java虛擬機來進行跨平臺操作,它可以進行自動垃圾回收的【c語言是通過人工進行垃圾回收】,java還會進行自動分配內(nèi)存?!綾語言是通過指定進行分配內(nèi)存的】,只需要new一個對象,這個對象占用了多少空間,不需要我們來管,java虛擬機負責管這些,用完之后也不需要我們來釋放,java虛擬機會自動釋放

JavaSE JavaEE JavaME區(qū)別

是什么:

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

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

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

特點:

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

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

用于企業(yè)級軟件開發(fā),網(wǎng)絡開發(fā),web開發(fā)。

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

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

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

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

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

JDK  JRE  JVM的區(qū)別:

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

JDK有以下三種版本:

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

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

J2ME,micro edtion,主要用于移動設備、嵌入式設備上的java應用程序

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

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

Jre里邊包含jvm

Jvm:【Java Virtual Mechinal】因為jre是java運行時環(huán)境,java運行靠什么運行,而底層就是依賴于jvm,即java虛擬機,java虛擬機用來加載類文件,java中之所以有跨平臺的作用,就是因為我們的jvm

關(guān)系:

 J2se是基于jdk和jre,

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

 Jre里邊包含jvm

報錯的狀態(tài)碼:

 301 永久重定向

 302 臨時重定向

 304 服務端 未改變

 403 訪問無權(quán)限

 200 正常

 404 路徑

 500 內(nèi)部錯誤

協(xié)議以及默認的端口號

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

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

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

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

oracle 默認端口號1521

mysql默認端口號 3306

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

1.一個類只能進行單繼承,但可以實現(xiàn)多個接口。

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

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

         關(guān)系:

接口和接口繼承

接口和抽象類抽象類實現(xiàn)接口

類和抽象類類繼承抽象類

類和類繼承

修飾符的作用

修飾符的作用范圍:

private  default  protected public

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

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

不同包的子類中       可以      可以

不同包的類中        可以

onready和onload的區(qū)別

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

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

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

參考:

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

Java基礎(chǔ)知識點有哪些

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

switch默認接受的幾種數(shù)據(jù)類型

Short, int, byte, char

request 跟session的區(qū)別

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

request對應的是一次請求,

session對應的是一次會話

2.request占用資源比較少,相對來說缺乏持續(xù)性,

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

找到解決svn沖突方法

對于svn沖突,可以采用手工處理將沖突的部分進行整合,

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

沖突之后,再把最新整合后的文件進行提交。

到此,關(guān)于“Java基礎(chǔ)知識點有哪些”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI