這篇文章主要介紹“Java基礎(chǔ)知識點有哪些”,在日常操作中,相信很多人在Java基礎(chǔ)知識點有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java基礎(chǔ)知識點有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴展宣傳的重要窗口,一個合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,成都創(chuàng)新互聯(lián)面向各種領(lǐng)域:成都主動防護網(wǎng)等成都網(wǎng)站設(shè)計公司、全網(wǎng)整合營銷推廣解決方案、網(wǎng)站設(shè)計等建站排名服務(wù)。JDK常用的包
java.lang:這個是系統(tǒng)的基礎(chǔ)類,比如String、Math、Integer、System和Thread, 提供常用功能。
java.io:這里面是所有輸入輸出有關(guān)的類,比如文件操作等
java.net:這里面是與網(wǎng)絡(luò)有關(guān)的類,比如URL,URLConnection等。
java.util:這個是系統(tǒng)輔助類,特別是集合類Collection,List,Map等。
java.sql:這個是數(shù)據(jù)庫操作的類,Connection, Statememt,ResultSet等
Get和Post的區(qū)別
1.get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(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都是可變的,當(dāng)進行字符串拼接時采用append方 法,在原來的基礎(chǔ)上進行追加,所以性能比String要高,又因為StringBuffer 是 線程安全的而StringBuilder是線程非安全的,所以StringBuilder的效率
高于 StringBuffer.
3.對于大數(shù)據(jù)量的字符串的拼接,采用StringBuffer,StringBuilder.
Stringbuilder 執(zhí)行效率要高于stringbuffer更高于string
String是變量 是不可變的 所以在在+ = 賦值的時候創(chuàng)建新的對象
Stringbuffer stringbuilder倆個都是可變的,當(dāng)在字符串拼接的時候可以采用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、所有的標(biāo)簽都需要自定義
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):當(dāng)session存在時返回該session,否則新建一個 session并返回該對象
getSession(false):當(dāng)session存在時返回該session,否則返回null
Page和PageContext的區(qū)別
Page是servlet對象;使用this關(guān)鍵字,它的作用范圍是在同一頁面。
PageContext是作用域通信對象;通常使用setAttribute()和getAttribute()來設(shè)置和獲取存放對象的值。
Ajax總結(jié)
AJAX全稱: 異步JavaScript及 XML(Asynchronous JavaScript And XML)
Ajax的核心是JavaScript對象XmlHttpRequest(XHR)。
Ajax的優(yōu)點:
提高用戶體驗度(UE)
提高應(yīng)用程序的性能
進行局部刷新
AJAX不是一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更強的 Web 應(yīng)用程序的技術(shù)。
2.通過 AJAX,我們的 JavaScript 可使用JavaScript的XMLHttpRequest對象來直接與服務(wù)器進行通信。通過這個對象,我們的 JavaScript 可在不重載頁面的情況與Web服務(wù)器交換數(shù)據(jù),即可局部刷新。
3. AJAX在瀏覽器與 Web 服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP 請求),這樣就可使網(wǎng)頁從服務(wù)器請求少量的信息,而不是整個頁面,減輕服務(wù)器的負擔(dān),提升站點的性能。
AJAX可使因特網(wǎng)應(yīng)用程序更小、更快,更友好,用戶體驗(UE)好。
5. Ajax是基于標(biāo)準(zhǔn)化并被廣泛支持的技術(shù),并且不需要插件和下載小程序
JSP9大隱視對象中四個作用域的大小與作用范圍
四個作用域從大到?。篴ppliaction>session>request>page
application:全局作用范圍,整個應(yīng)用程序共享.生命周期為:應(yīng)用程序啟動到停止。
session:會話作用域,當(dāng)用戶首次訪問時,產(chǎn)生一個新的會話,以后服務(wù)器就可以記 住這個會話狀態(tài)。
request:請求作用域,就是客戶端的一次請求。
page:一個JSP頁面。
以上作用范圍使越來越小,request和page的生命周期都是短暫的,他們之間的區(qū)別就是:一個request可以包含多個page頁(include,forward)。
List,Set,Collection,Collections√
[if !supportLists]1.[endif]List和Set都是接口,他們都繼承于接口Collection,List是一個有序的可重復(fù)的集合,而Set的無序的不可重復(fù)的集合。Collection是集合的頂層接口,Collections是一個封裝了眾多關(guān)于集合操作的靜態(tài)方法的工具類,因為構(gòu)造方法是私有的,所以不能實例化。
2.List接口實現(xiàn)類有ArrayList,LinkedList,Vector。ArrayList和Vector是基于數(shù)組實現(xiàn)的,所以查詢的時候速度快,而在進行增加和刪除的時候速度較慢LinkedList是基于鏈?zhǔn)酱鎯Y(jié)構(gòu),所以在進行查詢的時候速度較慢但在進行增加和刪除的時候速度較快。又因為Vector是線程安全的,所以他和ArrayList相比而言,查詢效率要低。
List和set都屬于接口 他們都繼承于collection
List是一個有序的 可重復(fù)的 set是無序得到不可重復(fù)的
Collection是集合的頂層接口 , collections是封裝可眾多集合的操作的靜態(tài)的工具類 因為他是私有化的所以他不可以實例化
List的接口實現(xiàn)類分為arraylist vertor linkedlist arraylist 和 verson是基于數(shù)組實現(xiàn)的,說以查詢的時候較快 ,但是增加 與刪除 的速度較慢。 Linkelist是基于鏈?zhǔn)酱鎯?,所以查詢的時候較慢, 增加與刪除數(shù)獨較快, 又因為vertor線程安全 所以arraylist相比 效率
如果你依然覺得有些茫然,不如加入我的Java架構(gòu)師之路:766529531 跟有多年Java開發(fā)經(jīng)驗的資深工程師聊一聊。也可獲取免費的視頻學(xué)習(xí)資料以及電子書學(xué)習(xí)資料喔!
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
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界面原型(用戶界面)(相當(dāng)于買房時用的模型)
設(shè)計UI的作用:
1、幫助程序員工作(界面已由美工設(shè)計完成)
2、提前讓用戶對項目有個宏觀的了解,知道效果是什么樣子。
osi七層模型
第一層:物理層
第二層:數(shù)據(jù)鏈路層
第三層:網(wǎng)絡(luò)層
第四層:傳輸層
第五層:會話層
第六層:表示層
第七層:應(yīng)用層
線程和進程的區(qū)別
1.線程(Thread)與進程(Process)
進程定義的是應(yīng)用程序與應(yīng)用程序之間的邊界,通常來說一個進程就代表一個與之對應(yīng)的應(yīng)用程序。不同的進程之間不能共享代碼和數(shù)據(jù)空間,而同一進程的不同線程可以共享代碼和數(shù)據(jù)空間。
如果你依然覺得有些茫然,不如加入我的Java架構(gòu)師之路:766529531 跟有多年Java開發(fā)經(jīng)驗的資深工程師聊一聊。也可獲取免費的視頻學(xué)習(xí)資料以及電子書學(xué)習(xí)資料喔!
1、一個進程可以包括若干個線程,同時創(chuàng)建多個線程來完成某項任務(wù),便是多線程。
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),是指應(yīng)用程序在申請內(nèi)存后,
無法釋放已經(jīng)申請的內(nèi)存空間.一次內(nèi)存泄露危害可以忽略,
但如果任其發(fā)展最終會導(dǎo)致內(nèi)存溢出(out of memory).
如讀取文件后流要進行及時的關(guān)閉以及對數(shù)據(jù)庫連接的釋放。
內(nèi)存溢出(out of memory)是指應(yīng)用程序在申請內(nèi)存時,
沒有足夠的內(nèi)存空間供其使用。
如我們在項目中對于大批量數(shù)據(jù)的導(dǎo)入,采用分段批量提交的方式。
單例
單例就是該類只能返回一個實例。
單例所具備的特點:
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;
}
}
參考:
通過雙重判斷來保證單列設(shè)計模式在多線程中的安全性,
并且它在性能方面提高了很多。
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來說就是操作復(fù)雜。
3.jaxb
JAXB(Java Architecture for XML Binding) 是一個業(yè)界的標(biāo)準(zhǔn),是一項可以根據(jù)XML Schema產(chǎn)生Java類的技術(shù)。該過程中,JAXB也提供了將XML實例文檔反向生成Java對象樹的方法,并能將Java對象樹的內(nèi)容重新寫到XML實例文檔。從另一方面來講,JAXB提供了快速而簡便的方法將XML模式綁定到Java表示,從而使得Java開發(fā)者在Java應(yīng)用程序中能方便地結(jié)合XML數(shù)據(jù)和處理函數(shù)。
2、dom4j 與 sax 之間的對比:【注:必須掌握!】
dom4j不適合大文件的解析,因為它是一下子將文件加載到內(nèi)存中,所以有可能出現(xiàn)內(nèi)存溢出,
sax是基于事件來對xml進行解析的,所以他可以解析大文件的xml
也正是因為如此,所以dom4j可以對xml進行靈活的增刪改查和導(dǎo)航,而sax沒有這么強的靈活性
所以sax經(jīng)常是用來解析大型xml文件,而要對xml文件進行一些靈活(crud)操作就用dom4j
項目的生命周期
1.需求分析
2.概要設(shè)計
3.詳細設(shè)計(用例圖,流程圖,類圖)
4.數(shù)據(jù)庫設(shè)計(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
)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ǔ):
大話設(shè)計模式 重構(gòu)
java Exception體系結(jié)構(gòu)
java異常是程序運行過程中出現(xiàn)的錯誤。Java把異常當(dāng)作對象來處理,并定義一個基類java.lang.Throwable作為所有異常的超類。在Java API中定義了許多異常類,分為兩大類,錯誤Error和異常Exception。其中異常類Exception又分為運行時異常(RuntimeException)和非運行時異常(非runtimeException),也稱之為不檢查異常(Unchecked Exception)和檢查異常(Checked Exception)。
1、Error與Exception
Error是程序無法處理的錯誤,比如OutOfMemoryError、ThreadDeath等。
這些異常發(fā)生時,Java虛擬機(JVM)一般會選擇線程終止。
Exception是程序本身可以處理的異常,這種異常分兩大類運行時異常和非運行時異常。程序中應(yīng)當(dāng)盡可能去處理這些異常。
2、運行時異常和非運行時異常
運行時異常:都是RuntimeException類及其子類異常: IndexOutOfBoundsException索引越界異常
ArithmeticException:數(shù)學(xué)計算異常
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是存儲在服務(wù)器端,cookie是存儲在客戶端的,所以安全來講session的安全性要比cookie高,然后我們獲取session里的信息是通過存放在會話cookie里的sessionid獲取的。又由于session是存放在服務(wù)器的內(nèi)存中,所以session里的東西不斷增加會造成服務(wù)器的負擔(dān),所以會把很重要的信息存儲在session中,而把一些次要東西存儲在客戶端的cookie里,然后cookie確切的說分為兩大類分為會話cookie和持久化cookie,會話cookie確切的說是存放在客戶端瀏覽器的內(nèi)存中,所以說他的生命周期和瀏覽器是一致的,瀏覽器關(guān)了會話cookie也就消失了,然而持久化cookie是存放在客戶端硬盤中,而持久化cookie的生命周期就是我們在設(shè)置cookie時候設(shè)置的那個保存時間,然后我們考慮一問題當(dāng)瀏覽器關(guān)閉時session會不會丟失,從上面敘述分析session的信息是通過sessionid獲取的,而sessionid是存放在會話cookie當(dāng)中的,當(dāng)瀏覽器關(guān)閉的時候會話cookie消失所以我們的sessionid也就消失了,但是session的信息還存在服務(wù)器端,這時我們只是查不到所謂的session但它并不是不存在。那么,session在什么情況下丟失,就是在服務(wù)器關(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是一個修飾符:
當(dāng)final修飾一個變量的時候,變量變成一個常量,它不能被二次賦值
當(dāng)final修飾的變量為靜態(tài)變量(即由static修飾)時,必須在聲明這個變 量的時候給它賦值
當(dāng)final修飾方法時,該方法不能被重寫
當(dāng)final修飾類時,該類不能被繼承
Final不能修飾抽象類,因為抽象類中會有需要子類實現(xiàn)的抽象方法,(抽 象類中可以有抽象方法,也可以有普通方法,當(dāng)一個抽象類中沒有抽象方 法時,這個抽象類也就沒有了它存在的必要)
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:
Java是面向?qū)ο蟮?,跨平臺的,它通過java虛擬機來進行跨平臺操作,它可以進行自動垃圾回收的【c語言是通過人工進行垃圾回收】,java還會進行自動分配內(nèi)存?!綾語言是通過指定進行分配內(nèi)存的】,只需要new一個對象,這個對象占用了多少空間,不需要我們來管,java虛擬機負責(zé)管這些,用完之后也不需要我們來釋放,java虛擬機會自動釋放
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移動版
特點:
SE主要用于桌面程序(swing),控制臺開發(fā)(main程序)。
EE企業(yè)級開發(fā)(JSP,EJB,Spring MVC,Struts,hibernate,ibatis等),
用于企業(yè)級軟件開發(fā),網(wǎng)絡(luò)開發(fā),web開發(fā)。
ME嵌入式開發(fā)(手機,小家電,PDA)。[蘋果的ios,黑莓]
三者之間的關(guān)系:
Java SE(Java Platform, Standard Edition,Java標(biāo)準(zhǔn)版)就是基于JDK和JRE的。
Java SE為Java EE提供了基礎(chǔ)。
Java EE除了基于我們這個所謂的Java SE外,還新加了企業(yè)應(yīng)用所需的類庫
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,標(biāo)準(zhǔn)版,是我們通常用的一個版本
J2EE,enterpsise edtion,企業(yè)版,使用這種JDK開發(fā)J2EE應(yīng)用程序
J2ME,micro edtion,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序
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 服務(wù)端 未改變
403 訪問無權(quán)限
200 正常
404 路徑
500 內(nèi)部錯誤
協(xié)議以及默認的端口號
ftp 21 文件傳輸協(xié)議
Pop3 110 它是因特網(wǎng)
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(){});
另外,需要注意一點,由于在$(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對應(yīng)的是一次請求,
session對應(yīng)的是一次會話
2.request占用資源比較少,相對來說缺乏持續(xù)性,
而session資源消耗比較大,所以通常使用request來保存信息
找到解決svn沖突方法
對于svn沖突,可以采用手工處理將沖突的部分進行整合,
之后備份最新整合后的文件,采用覆蓋更新的方式處理完
沖突之后,再把最新整合后的文件進行提交。
到此,關(guān)于“Java基礎(chǔ)知識點有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
本文名稱:Java基礎(chǔ)知識點有哪些-創(chuàng)新互聯(lián)
文章源于:http://weahome.cn/article/dgidop.html