天天學JAVA-JAVA基礎(1)

如果覺得我寫的還行,請關注我的博客並且點個贊喲。本文主要介紹JAVA基礎相關問題,通過閱讀本文,你將掌握以下10點

  1. java語言是什麼?
  2. Java 語言有哪些特點?
  3. 面向對象和麪向過程的區別
  4. Java和C++的區別
  5. Java 應用程序與小程序之間有哪些差別
  6. 字符型常量和字符串常量的區別
  7. 構造器 Constructor 是否可被 override
  8. 重載和重寫的區別
  9. Java 面向對象編程三大特性
  10. 接口和抽象類的區別是什麼

.接口和抽象類的區別是什麼

1. java語言是什麼?

Java是一門面向對象的程序設計語言,它自問世以來,受到了前所未有的關注,併成爲計算機移動電話、家用電器等領域中最受歡迎的開發語言之一。

2. Java 語言有哪些特點?

1.簡單易學;
2.面向對象(封裝,繼承,多態);
3.平臺無關性( Java 虛擬機實現平臺無關性);
4.可靠性;
5.安全性;
6.支持多線程( C++ 語言沒有內置的多線程機制,因此必須調用操作系統的多線程功能來進行多線程程序設計,而 Java 語言卻提供了多線程支持);
7.支持網絡編程並且很方便( Java 語言誕生本身就是爲簡化網絡編程設計的,因此 Java語言不僅支持網絡編程而且很方便);
8.編譯與解釋並存;

3. 面向對象和麪向過程的區別

面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了; 面向過程性能比面向對象高。 因爲類調用時需要實例化,開銷比較大,比較消耗資源,所以當性能是最重要的考量因素的時候,比如單片機、嵌入式開發、Linux/Unix等一般採用面向過程開發。但是,面向過程沒有面向對象易維護、易複用、易擴展。

面向對象是把構成問題事務分解成各個對象,建立對象的目的不是爲了完成一個步驟,而是爲了描敘某個事物在整個解決問題的步驟中的行爲。面向對象易維護、易複用、易擴展。 因爲面向對象有封裝、繼承、多態性的特性,所以可以設計出低耦合的系統,使系統更加靈活、更加易於維護。但是,面向對象性能比面向過程低。

4. Java和C++的區別

都是面向對象的語言,都支持封裝、繼承和多態、
Java 不提供指針來直接訪問內存,程序內存更加安全
Java 的類是單繼承的,C++支持多重繼承;雖然 Java 的類不可以多繼承,但是接口可以多繼承。
Java 有自動內存管理機制,不需要程序員手動釋放無用內存

5. Java 應用程序與小程序之間有哪些差別

Java 應用程序從主線程啓動(也就是 main() 方法)。
applet 小程序沒有 main()方法,主要是嵌在瀏覽器頁面上運行(調用init()或者run()來啓動),嵌入瀏覽器這點跟 flash 的小遊戲類似。

6. 字符型常量和字符串常量的區別

形式上: 字符型常量是單引號引起的一個字符; 字符串常量是雙引號引起的若干個字符 、
含義上: 字符型常量相當於一個整型值( ASCII值),可以參加表達式運算; 字符串常量代表一個地址值(該字符串在內存中存放位置)
佔內存大小 字符常量只佔2個字節;字符串常量佔若干個字節(至少一個字符結束標誌) (注意: char在Java中佔兩個字節)

7. 構造器 Constructor 是否可被 override

構造器Constructor 不能被 override(重寫),但是可以 overload(重載),所以你可以看到一個類中有多個構造函數的情況。(在講繼承的時候我們就知道父類的私有屬性和構造方法並不能被繼承\)

8. 重載和重寫的區別

重載: 發生在同一個類中,方法名必須相同,參數類型不同、個數不同、順序不同,方法返回值和訪問修飾符可以不同,發生在編譯時。   
重寫:發生在父子類中,方法名、參數列表必須相同,返回值範圍小於等於父類,拋出的異常範圍小於等於父類,訪問修飾符範圍大於等於父類;如果父類方法訪問修飾符爲
private 則子類就不能重寫該方法。

9. Java 面向對象編程三大特性

封裝
封裝把一個對象的屬性私有化,同時提供一些可以被外界訪問的屬性的方法,如果屬性不想被外界訪問,我們大可不必提供方法給外界訪問。但是如果一個類沒有提供給外界訪問的方法,那麼這個類也沒有什麼意義了。

繼承
繼承是使用已存在的類的定義作爲基礎建立新類的技術,新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。通過使用繼承我們能夠非常方便地複用以前的代碼。

關於繼承如下 3 點請記住:

子類擁有父類對象所有的屬性和方法(包括私有屬性和私有方法),但是父類中的私有屬性和方法子類是無法訪問,只是擁有。
子類可以擁有自己屬性和方法,即子類可以對父類進行擴展。 子類可以用自己的方式實現父類的方法。(以後介紹)。

多態
所謂多態就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發出的方法調用在編程時並不確定,而是在程序運行期間才確定,即一個引用變量到底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定。 在Java中有兩種形式可以實現多態:繼承(多個子類對同一方法的重寫)和接口(實現接口並覆蓋接口中同一方法)。

10.接口和抽象類的區別是什麼?

接口的方法默認是 public,所有方法在接口中不能有實現(Java 8 開始接口方法可以有默認實現),而抽象類可以有非抽象的方法。
接口中除了static、final變量,不能有其他變量,而抽象類中則不一定。
一個類可以實現多個接口,但只能實現一個抽象類。接口自己本身可以通過extends關鍵字擴展多個接口。
接口方法默認修飾符是public,抽象方法可以有public、protected和default這些修飾符(抽象方法就是爲了被重寫所以不能使用private關鍵字修飾!)。
從設計層面來說,抽象是對類的抽象,是一種模板設計,而接口是對行爲的抽象,是一種行爲的規範。
備註:在JDK8中,接口也可以定義靜態方法,可以直接用接口名調用。實現類和實現是不可以調用的。如果同時實現兩個接口,接口中定義了一樣的默認方法,則必須重寫,不然會報錯。

如果你覺得我寫的還行,請關注我的博客並且點個贊喲,也請關注我的公衆號,每天會定時推送乾貨.
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章