芯靈思SinlinxA33開發板安卓開發-java語言基礎

Java基礎語法

1.計算機語言和java 簡介

2.Jdk安裝與環境搭建、編寫HelloWorld

3.標識符與關鍵字

4.Java的數據類型

5.變量和常量

6.運算符與表達式

7.流程控制(條件語句、循環語句、流程控制中的Break和continue)

8.數組

9.枚舉

Java進階

封裝

1.從抽象到類

2.構造方法與對象的創建

3.參數傳值

4.實例成員和類成員

5.方法重載

6.this關鍵字

7.包

8.import語句

9.訪問權限

繼承

1.子類與父類

2.子類的繼承性

3.成員變量的隱藏和方法重寫

4.super關鍵字

5.對象的上轉型對象

6.繼承與多態

7.abstract類和abstract方法

多態

1.接口的聲明與使用

2.接口變量與回調機制

3.接口與多態

4.abstact類與接口的比較

Jave深入

1.內部類與異常類

2.Java常用實用類

3.輸入輸出流

4.集合與泛型

5.Java多線程機制

初識java

Java誕生

在Java誕生之前已經出現了許多優秀的編程語言,如大家所熟悉的C語言和C++語言等,那么是什么原因導致了Java的誕生呢?Java語言相對于其他語言來說到底又有著怎樣的特殊優勢呢?

Java語言相對于其他語言的最大優勢就是所謂的平臺無關性,即跨平臺性,這也是Java最初風靡全球的主要原因。

無論哪種變編程語言編寫的應用程序都需要經過操作系統和處理器來完成程序的運行,因此這里所指的平臺是由操作系統(OS)和處理器(CPU)所構成。與平臺無關是指軟件的運行不因操作系統、處理器的變化導致發生無法運行或者出現運行錯誤。

平臺最終識別并且執行的是一種由0和1組成的序列代碼,我們稱之為機器指令。相同的CPU和不同的操作系統所形成的平臺的機器指令可能也是不同的,因此,每種平臺都會形成自己獨特的機器指令。例如,某個平臺可能用8位序列代碼10001111表示一次加法操作,以10100000表示一次減法操作,而另外一個平臺可能用8位序列代碼10101010表示一次加法操作,以10010011表示一次減法操作。

c+

+


Java

Java語言和其他語言相比,最大的優勢就是它的平臺無關性,這是因為Java可以在平臺之上再提供一個Java運行環境,該Java運行環境由Java虛擬機(JVM)、類庫以及一些核心文件組成。Java虛擬機的核心是所謂的字節碼指令,即可以被Java虛擬機直接識別、執行的一種由0和1組成的序列代碼。字節碼并不是機器指令,因為它不和特定的平臺相關,不能被任何平臺直接識別和執行。Java針對不同平臺提供的Java虛擬機的字節碼指令都是相同的,如所有的虛擬機都將11110000識別、執行為加法操作。


JDK的安裝和配置

1、下載并且安裝JDK

2、配置系統環境變量

Hello world

簡單:如果同學們學過C++語言,就會感覺Java眼熟,因為Java中許多基本語句的語法和C++是一樣的,像常用的循環語句、控制語句等和C++幾乎相同。需要注意的是,Java和C++時兩種完全不同的語言,各有各的優勢,將會長期并存下去。如果從語言的簡單性方面來看,Java要逼C++簡單,C++中許多容易混淆的感念,或者被Java棄之不用了,或者以一種更清楚更容易理解的方法實現,例如Java中不再有指針的概念。

面向對象:基于對象的編程更加符合人的思維模式,使人們更容易解決復雜的問題,Java就是一種面向對象的編程語言

多線程:Java的特點之一就是內置對多線程的支持。多線程允許同時完成多個任務。實際上多線程使人產生多個任務在同時執行的錯覺,因為目前的計算機的處理器在同一時刻只能執行一個線程,但處理器可以在不同的線程之間快速的切換,由于處理器的速度非常快,遠遠超過了人接收信息的速度,所以給人的感覺好像是多個線程在同時執行。C++沒有內置的多線程機制,因此必須調用操作系統的多線程功能來進行多線程程序的設計。

安全:當準備從網絡上下載一個程序時,最大的擔心是程序中含有惡意的代碼,會試圖讀取或者刪除本地計算機上的一些重要文件。當使用支持Java的瀏覽器時,可以放心的運行Java Applet程序,不必擔心病毒的感染。Java Applet程序由瀏覽器內置的Java運行環境負責解釋執行,瀏覽器內置的Java運行環境不允許Java Applet程序訪問當前瀏覽器上下文環境以外的其他部分。

動態:在通過了后面的學習之后,同學們就會發現Java程序的基本組成單元就是類,有些類是自己編寫的,有些是從類庫中引入的,而類又是運行時動態裝載的,這就使得Java可以在分布式環境中動態的維護程序以及類庫。而C/C++編譯時就將函數庫或者類庫中被使用的函數、類同時生成機器碼,那么每當類庫升級以后,如果想要具有類庫提供的新功能,程序就必須重新修改和編譯

標識符和關鍵字

標識符:用來標識類名、變量名、方法名、類型名、數組名、文件名等等的有效字符序列稱之為標識符。簡單的說,標識符就是一個名字。以下是Java關于標識符的語法規則:

1、標識符由字母、下劃線、美元符號和數字組成,長度不受限制。

2、標識符的第一個字符不能是數字字符。

3、標識符不能是關鍵字。

4、標識符不能是true、false和null(盡管true、false和null不是Java的關鍵字)

例如:Hello_java、Hello_12$、$23Boy

需要特別注意的是,標識符中的字母是區分大小寫的,hello和Hello是不同的標識符。

Java語言使用Unicode標準字符集,Unicode字符集由UNICODE協會管理并接受其技術上的修改,最多可以識別65563個字符,Unicode字符集的前128個字符剛好是ASCII碼表。Unicode字符集還不能覆蓋全部歷史上的文字,但大部分國家的“字母表”的字母都是Unicode字符集中的一個字符,如漢字中的“你”字就是Unicode字符集中的第20320個字符。Java所謂的字母包括了世界上大部分語言中的“字母表”,因此Java所使用的字母不僅包括通常的拉丁字母a,b,c等,也包括漢語中的漢字、日文的片假名和平假名、朝鮮文、俄文、希臘字母以及其他許多語言中的文字。

關鍵字:關鍵字就是Java語言中已經被賦予了特定意義的一些單詞。不可以把關鍵字作為標識符來用,以下就是Java的關鍵字:

訪問控制

private 私有的???protected 受保護的???public 公共的

類、方法和變量修飾符:

abstract 聲明抽象?????class 類??????????extends 擴允,繼承?final 終極,不可改變的????implements 實現

interface 接口??????????native 本地?????new 創建??????????????static 靜態???????????????????strictfp 嚴格,精準

synchronized 線程,同步?????????????????transient 短暫???????volatile 易失

程序控制語句:

break 跳出循環?????continue 繼續???????return 返回????do 運行??????while 循環?????if 如果

else 反之???????????????for 循環????????????????instanceof 實例???????????????switch 開關

case 返回開關里的結果??????????????????????default 默認

錯誤處理:

try 捕獲異常??????catch 處理異常??????finally 有沒有異常都執行??????throw 拋出一個異常對象

throws 聲明一個異常可能被拋出?????assert 斷言

包相關:

import 引入???????package 包

基本類型:

boolean 布爾型?????byte 字節型???????char 字符型???????double 雙精度???????float 浮點

int 整型????????????????long 長整型???????short 短整型??????null 空??????????????????true 真

false 假?????????????????enum 枚舉

變量引用:

super 父類,超類?????this 本類????void 無返回值

關鍵字(51)+保留字(const,goto)共53個

基本數據類型

邏輯類型:常量:true,false。

變量:使用關鍵字boolean來聲明邏輯變量,聲明時也可以賦給初值,

例如:boolean x,ok=true,關閉=false;

整數類型:1.int 型

常量:123,6000(十進制),077(八進制),0x3ABC(十六進制)。

變量:使用關鍵字int來聲明int型變量,聲明時也可以賦給初值,

例如:int x= 12,平均=9898,jiafei;

對于int型變量,內存分配給4個字節(byte),占32位。

2.byte型

常量:Java中不存在byte型常量的表示法,但可以把一定范圍內的int型常量賦值給byte型變量。

變量:使用關鍵字byte來聲明byte 型變量

例如:byte x= -12,tom=28,漂亮9;

對于byte型內存分配給1個字節,占8位。

3 .short 型

常量:和byte型類似,Java中也不存在short型常量的表示法,但可以把一定范圍內的int型常量賦值給short型變量。

變量:使用關鍵字short來聲明short型變量

例如:short x=12,y=1234;

對于short型變量,內存分配給2個字節,占16位。

4. long 型

常量:long型常量用后綴L來表示,例如108L(十進制),07123L(八進制)、0x3ABCL(十六進制) 。

變量:使用關鍵字long來聲明long型變量,

例如:long width=12L,height=2005L,length;

對于long型變量,內存分配給8個字節,占64位。


字符類型:1. 常量:‘A’,‘b’,‘?’,‘!’,‘9’,‘好’,‘\t’,‘き’,‘モ’等,即用單引號擴起的Unicode表中的一個字符。?

2. 變量:使用關鍵字char來聲明char型變量,

例如:char ch=‘A’,home=‘家’,handsome=‘酷’;

對于char型變量,內存分配給2個字節,占16位。

3. 轉意字符常量:有些字符(如回車符)不能通過鍵盤輸入到字符串或程序中,就需要使用轉意字符常量,

例如:\n(換行),\b(退格),\t(水平制表),?\‘(單引號),\“(雙引號),\(反斜線)等。

4. 要觀察一個字符在Unicode表中的順序位置,可以使用int型顯示轉換,如(int)'a'或int p='a'。

5. 如果要得到一個0~65536之間的數所代表的Unicode表中相應位置上的字符必須使用char型顯示轉換。

浮點類型:1. float型

常量:453.5439f,21379.987F,231.0f(小數表示法),2e40f(2乘10的40次方,指數表示法)。需要特別注意的是:常量后面必須要有后綴“f”或“F”。

變量:使用關鍵字float來聲明float型變量,

例如:float x=22.76f,tom=1234.987f,weight=1e-12F;

精度:float變量在存儲float型數據時保留8位有效數字,實際精度取決于具體數值。

對于float型變量,內存分配給4個字節,占32位。

?2. double 型

常量:2389.539d,2318908.987,0.05(小數表示法),1e-90(1乘10的-90次方,指數表示法)。對于double常量,后面可以有后綴“d”或“D”,但允許省略該后綴。

變量:使用關鍵字double來聲明double型變量,

例如:double height=23.345,width=34.56D,length=1e12;

對于double型變量,內存分配給8個字節,占64位。

精度:double變量在存儲double型數據時保留16位有效數字,實際精度取決于具體數值。

數據轉換:Java中數據的基本類型(不包括邏輯類型)按精度從“低”到“高”排列:

byte? short? char int? long? float? double?


★當把級別低的變量的值賦給級別高的變量時,系統自動完成數據類型的轉換。例如:

??? float x=100;?


★當把級別高的變量的值賦給級別低的變量時,必須使用顯示類型轉換運算。顯示轉換的格式:(類型名)要轉換的值;

? 例如

????int x=(int)34.89;?


★當把一個int型常量賦值給一個byte和short型變量時,不可以超出這些變量的取值范圍,否則必須進行類型轉換運算;例如,常量128的屬于int型常量,超出byte變量的取值范圍,如果賦值給byte型變量,必須進行byte類型轉換運算(將導致精度的損失),如下所示:

?????byte a=(byte)128;?


★另外一個常見的錯誤就是把一個double型常量賦值給一個float型變量時沒有進行強制轉換,如下所示:

?????float x=12.4;?

輸入和輸出數據:Java中數據的基本類型(不包括邏輯類型)按精度從“低”到“高”排列:

byte? short? char int? long? float? double?


★當把級別低的變量的值賦給級別高的變量時,系統自動完成數據類型的轉換。例如:

??? float x=100;?


★當把級別高的變量的值賦給級別低的變量時,必須使用顯示類型轉換運算。顯示轉換的格式:(類型名)要轉換的值;

? 例如

????int x=(int)34.89;?


★當把一個int型常量賦值給一個byte和short型變量時,不可以超出這些變量的取值范圍,否則必須進行類型轉換運算;例如,常量128的屬于int型常量,超出byte變量的取值范圍,如果賦值給byte型變量,必須進行byte類型轉換運算(將導致精度的損失),如下所示:

?????byte a=(byte)128;?


★另外一個常見的錯誤就是把一個double型常量賦值給一個float型變量時沒有進行強制轉換,如下所示:

?????float x=12.4;?

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容