您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java基礎知識點有哪些”,在日常操作中,相信很多人在Java基礎知識點有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java基礎知識點有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
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
項目的生命周期
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開源大全 www.open-open.com(獲取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虛擬機來進行跨平臺操作,它可以進行自動垃圾回收的【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 它是因特網 <http://baike.baidu.com/view/1706.htm>電子郵件 <http://baike.baidu.com/view/1524.htm>的第一個離線 <http://baike.baidu.com/view/113466.htm>協議標準
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(){});
另外,需要注意一點,由于在$(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基礎知識點有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。