色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Java開發環境搭建與Java基礎知識

Java開發環境搭建與Java基礎知識 時間:2018-09-25      來源:未知

一、簡史

Java 誕生于 SUN (Stanford University Network) Microsystems Inc. Sun 公司從1995 年 Java 語言誕生,1996年發布 JDK 1.0 版本,隨后又發布了 JDK1.1, JDK1.2,JDK1.3, JDK1.4, JDK5.0,JDK6 等幾個版本, 2009 年4 月被Oracle 收購, 從此 java 納入了 Oracle 旗下,也進入了 JDK7 時代 JDK---Java Development Kits 。

Java 技術體系架構

一種技術體系架構的誕生,源于他要解決現實生活中的某一類問題。Java 有三個技 術架構:

Java SE(Java Standard Edition)標準版

這個版本是 Java 平臺的核心, 它提供了非常豐富的 API 來開發一般個人計算機上的應用 程序,為開發普通桌面和商務應用程序提供的解決方案。

Java EE(Java Enterprise Edition)企業版

是基于 J2SE 基礎擴展的,增加了用于服務器開發的類庫。為開發企業環境下的應用程 序提供的一套解決方案 ,如金融領域,政府政務領域。

Java ME(Java Micro Edition)小型版 (K-Java)

是 J2SE的內伸,包含 J2SE的一部分核心類,也有自己的擴展類,增加了適合微小裝置的 類庫:javax.microedition.io.*等。是為開發電子消費產品和嵌入式設備提供的解決方案。該 技術體系主要應用于小型電子消費類產品,如手機中的應用程序等。

三個概念 JVM JRE JDK

JVM---Java Virtual Machine 在一臺計算機上由軟件或硬件模擬出來的計算機。

JAVA 在設計時就很注重移植和跨平臺性。比如:JAVA int 永遠都是 32 位。不像 c++可能是 16,32位,可能是根據編譯器廠商規定的變化。這樣話程序的移植就會非常麻煩。Java 針對不同的操作系統有不同的虛擬機。Java 虛擬機機 屏蔽了底層運行平臺的差別,實現了“一次編譯,隨處運行”。

JRE --- Java Runtime Environment = JVM + 運行時所用到的類庫

JDK --- Java Development Kits = 開發工具 + JRE

二、Java 開發環境搭建

1.在www.oracle.com官方網站Downloads->Java for Developers->Java SE Downloads->JDK

2.安裝JDK(Java SE Development Kit)開發工具軟件

3.安裝好后,在指定的安裝路徑下可以看到如下兩個文件夾

例如:

我的安裝路徑為其默認安裝路徑,為:C:\Program Files\Java,這個目錄下有兩個子目錄,分別是 jdk1.8.0_45 和 jre1.8.0_45

注意:

[1]JDK(Java Development Kit ) =JRE+開發工具集(例如javac編譯工具等)

[2]JRE(Java runtime environment)=JVM+java SE標準類庫

4.設置系統Path環境變量,讓javac等工具可以在任何目錄運行

設置方法如下:

[1]新建環境變量 JDK_TOOLS,其內容為C:\Program Files\Java\jdk1.8.0_45\bin

[2]在Path環境變量原有內容前面加上%JDK_TOOLS%;

注意:這里的%JDK_TOOLS%表示引用JDK_TOOLS變量內容

三、 HelloWord.java程序編寫、編譯、運行

[1]編寫:新建HelloWord.java文件,編寫內容如下

注意:這里面class后面的類名需要與文件名相同,否則編譯會報錯

[2]編譯:用cd命令切換到HelloWord.java所在的目錄,用javac編譯

如:javac HelloWord.java

編譯成功后生成對應的字節碼文件HelloWord.class

[3]運行:用java命令解釋字節碼文件即運行Java程序

如:java HelloWord

注意:生成的字節碼文件為HelloWord.class,這種寫法是錯誤的:java HelloWord.class, Java 會 根據傳遞的HelloWord在當前目錄下去尋找對應的HelloWord.class文件

四、Java數據類型

1.基本數據類型

(1)數值型

[1]整數類型 byte[占8bit] ,short[占16bit], int[占32bit], long[占64位]

[2]浮點類型 float[占32bit] , double[占64bit]

(2)字符型 char [占16bit 整個Unicode字符集]

(3)布爾類型 boolean [1bit true 或 false]

注意:

[1]float f = 9.9 這種寫法有問題,因為編譯器默認認為9.9是一個double類型,這樣會丟失精度報錯

正確的寫法:float f = 9.9f

[2]long b = 11111111111 這樣寫有問題,因為編譯器默認認為數字都是int類型,報錯為過大的整數

正確寫法:long b = 11111111111L

[3]boolean類型的變量結果只能是true或false,當輸出boolean類型變量時候,輸出的結果為true或false

[4]java中null表示什么都沒有

2.引用數據類型

(1)類 class

(2)接口 interface

(3)數組

五、 Java數據類型間轉換

[1] boolean類型不能強制轉換成任何其它數據類型

[2]自動類型轉換:容量小的類型自動轉換成容量大的數據類型 byte->short->int->long->float->double

即一個小數據類型的變量或數據可以直接賦值給大數據類型變量

注意:對于byte、short、int類型的變量在計算時自動轉換為int

編譯器給出的錯誤信息:

[3]強制類型轉換:容量大的類型轉換成容量小的數據類型時,要加上強制轉換符

long a = 100L (數字默認是int型,100L是告訴編譯器100是一個long類型數據)

int i = (int)a

這樣做可能造成精度降低或數據溢出,使用時要小心

上面的錯誤解決方案:

六、Java與C語言不同

1、與C語言不同,JAVA里沒有無符號(unsigned)整型。

JAVA的8種基本類型(boolean,byte,short,char,int,long,float,double)都是有符號的。

2、與C語言不同,JAVA里的char類型,占2個字節,專為存放Unicode字符所設計;

3、與C語言不同,JAVA里的boolean只能賦值為true或false,不能直接賦值0或1;

4、與C語言不同,JAVA里的long類型,不是占4字節,而是占8字節。

5、JAVA與C的不同之處,還有很多:

JAVA中沒有指針,其實引用就是指針,但不能進行加減,也沒有取值(*)和取地址(&)。

JAVA中有垃圾回收機制,不需要自己釋放空間;只管new,不需要delete。

JAVA中的基本類型所占內存寬度是固定的,而C里可能跟平臺相關。

JAVA中沒有預處理指令。(如C中的#define , #include , #ifdef等)。

JAVA中沒有GOTO,但可以break或continue到指定的標簽。

JAVA中沒有const關鍵字,而是用static final來定義常量。

JAVA中沒有全局變量,卻有靜態(static)變量。

JAVA中不支持struct和union的類型。

JAVA中不支持可變參數列表。

JAVA中沒有BitField的功能。

JAVA中沒有typedef的功能。

七、Java關鍵字

對比C語言,Java關鍵字要多很多。上表中紅顏色標示的關鍵字,為java中的保留關鍵字,保留即不能使用的意思。

我們也可以把關鍵字做一個分類:

這些關鍵字大家現在沒必要記住,后面我們在用到的時候,在一個個講解。

八、Java中常量和變量

(I)常量

(1)常量表示的是在程序中不能被修改的數據。

(2)聲明常量必須用final關鍵字。

(3)常量分為:整型,浮點型,字符型,布爾型,字符串型常量。

例如,語法:final <數據類型> variable = 值;

(II)變量

(1)變量與常量的相同點是在聲明之前都指定變量的數據類型,變量無final關鍵字聲明。

(2)聲明變量語法:<數據類型> variable;

(3)命名規則:與C語言類似。

注意:

在Java中定義一個常量用關鍵字"final",在C語言中用的是"const"。"final"意為終的,用它的修飾的變量只能賦一次值。也就是說

final修飾的變量在賦值后是不能修改的。

九、Java中的轉義字符與運算符

1.常用的轉義字符

2.運算符

可以看出,java中的運算符和C語言中我們學的運算符差不多,這里就不做過多講解了。

注意:

在字符串中,使用"+"運算符,表示連接兩個字符串。

運行結果如下:

helloword

hellowordok

helloword23

helloword5

注意:

在Java中任何類型與字符串相加都轉成字符串拼接,還要注意優先級哦!

十、Java中的控制語句

(1) if 語句

用法和C語言一樣,只有一個地方需要注意,如下:

(2)switch ....case .... 語句

用法和C語言一樣,只有一個地方需要注意,如下:

(3)for 語句

用法和C語言一樣,只有一個地方需要注意,如下:

(4) while與do...while語句

用法和C語言一樣,只有一個地方需要注意,如下:

(5)break 和 continue

用法和C語言一樣,不做過多講解。

十一、Java中的數組

1.數組的定義

在C語言中,我們定義數組的方式如下:

數據類型 數組名[數組元素的個數];

例如:

int a[ 3 ];

int b[ ];//這種定義由于沒有指定數組元素個數,在C語言中是不允許的。

而且我們知道,當一個數組定義好后,它的空間大小也就固定了,一般在棧上開辟空間。

那在Java中,如何定義數組呢?

(1)數據類型[] 數組名;

例如:

int[] a;

(2)數據類型 數組名[];

例如:

int a[];

以上兩種方法在 java中都可以用來定義數組,我們建議大家使用第一種。

注意:

(1)在java中定義數組時,不能指定數組長度。" int[3] a"這種寫法是錯誤的。

(2)數組的大小,需要在靜態初始化 或 用"new"關鍵字在堆區申請內存。

(3)在C語言中,數組名是一個地址常量不能修改,在Java中,數組名是一個引用類型變量,可以修改的。

個人認為,Java中的數據名實際上類似于C語言的指針變量,不過這個指針變量只用來保存數組空間的首地址,所以在Java中,他是用數組類型定義的。

2.數組初始化與空間開辟

(1)靜態初始化

數據類型[ ] 引用類型變量名 = {數據1,數據2,數據3,....};

例如:

int[] a = {1,2,3,4,5};

這種寫法和C語言類似,不同的是在C語言中,此時數組的空間一般是在棧中開辟,而在Java中,數組的空間一定是在堆區分配。

(2)動態初始化

數據類型[ ] 引用類型變量名;

引用類型變量名 = new 數據類型[數組元素個數];

此時數組中的每個成員值默認為0。

引用類型變量名 = new 數據類型[ ]{數據1,數據2,數據3....}; 此時數組中的每個成員值為指定的數據。

例如:

int[] a;

a = new int[3];

a = new int[ ] {1,2,3};

這種寫法是錯誤的,需要注意:

a = new int[3]{1,2,3};

注意:這里的"new"類似于C語言中的"malloc",不同的是在C語言中我們手動申請的內存,需要自己手動釋放。在Java中我們申請的

內存由Java內部的回收機制自動釋放。一般在這一塊內存沒有人引用的時候,釋放。

(3)理解java 中的數組名與數組的關系

  

總結:

數組引用變量(數組名)是存放在棧內存(stack)中,數組元素是存放在堆內存(heap)中。

3.數組元素個數與數組元素訪問

在C語言中,數組元素個數可以通過 sizeof(數組名) / 數組元素大小得到。在Java中是沒有sizeof這個關鍵字的,在Java中數組元素個數的獲得可以使用數組的屬性成員"length"獲取。

例如:

可以看出在Java中訪問數組元素與C語言中并無區別,但是在Java中,有一種更簡單的方法(For each循環,也叫增強型for循環)遍歷數組。

注意:

Java SE 5.0增加了一種功能很強的循環結構,可以用來依次處理數組中的每個元素(其他類型的元素集合亦可)而不必為指定數組下標值而分心。

這種增強的for循環格式如下:

for(數據類型 變量名 : 集合){

java語句。

}

集合必須是一個數組或一個實現了Iterable接口的類對象。有關Iterable接口的內容我們在后面再討論。

例如:

4. 數組間的拷貝

我們先來看一個例子:

雖然看似digits的數組長度看似由4變成3,其實只是numbers和digits指向同一個數組而已,而digits本身失去引用而變成垃圾,等待垃圾回收來回收(但其長度仍然為4),但其內部運行機制如下圖所示。

可以看出,上面的代碼并沒有真正意義上做到數組的拷貝。那如何實現數組的拷貝呢,我們有兩種方法:

第一種:自己寫代碼將A數組中的每個成員挨個賦值給B數組。

第二種:調用java中提供的函數完成拷貝—

4. 數組的排序

(1)自己用排序算法實現

(2)調用Java實現好的排序算法

十二、Java中的二維數組

Java中的二維數組可以看成是數組的數組,說白了就是二維數組中存放的是多個一維數組,二維數組中的每個元素都是一維數組的數組名。

1.二維數組的定義方式1

type[][] array(推薦) 或 type array[][] 或 type[] array[];

例如:

int array[][];

array = new int[3][4];//這個二維數組中有三個一維數組,每個一維數組有4個成員

array[0][1] //第0個數組中的第1個元素

array[1][2] //第1個數組中的第2個元素

array[2][2] //第2個數組中的第2個元素

注意:

array[0],array[1],array[2]是三個一維數組的數組名。

2.二維數組定義方式2

type[ ][ ] array(推薦) 或 type array[ ][ ] 或 type[ ] array[ ];

例如:

int array[ ][ ];

array = new int[3][ ];

請注意和c語言的不同,在c語言中,二維數組的行可以省略,但是列絕對是不能省略的,之所以這樣規定是因為在c語言中,二維數組的

每一行元素個數必須是相等的。

在Java中,二維數組的行不能被省略,但是列可以省略,在Java中,二維數組的每一行數組元素的個數可以不相等,即每行是可變的。

3.二維數組的定義方式3

type[][] array = {{數據1,數據2,...},{數據1,數據2,...},{數據1,數據2,...} ...};

上一篇:JAVA EE 開發環境的搭建

下一篇:QT 5.3開發及移植(1)

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 国产精品国一国二在线 | 水蜜桃视频免费 | 狠狠躁夜夜躁青青草原软件 | 老司机免费福利在线观看 | 色婷婷婷亚洲综合丁香五月 | 久久婷婷激情综合色综合俺也去 | 日日碰狠狠躁久久躁9 | 亚洲日本va午夜中文字幕 | 一二三四视频免费社区5 | 日韩人妻中文无码一区二区 | 国产一区二区三区大片 | 亚洲国产欧美国产综合久久 | 天堂在线www天堂在线 | 免费观看欧美猛交视频黑人 | 白丝尤物小仙女自慰网站 | 国产精品扒开腿做爽爽爽A片小说 | 四虎WWW成人影院观看 | 欧美怡红院免费全部视频 | 感官之火在线观看 | 免费在线观看黄色 | 成人av一区二区三区 | 久久久久久精品无码午夜按摩师 | 日本无码精品一二三四区视频 | 国产亚洲日韩一区二区三区 | 狠狠干中文字幕 | 日本WV一本一道久久香蕉 | 无码三级香港经典三级在线视频 | 亚洲AV无码成人精品区在线观看 | free性video另类重口 | 男男自慰GAY片免费观看 | 久久综合精品无码AV一区二区三区 | 亚洲AV无码片在线观看 | 奇米在线观看视频 | 日韩人妻无码精品一专区 | 亚洲另类无码专区丝袜 | 真实国产乱子伦视频对白 | freesex性中国熟妇 | 开妇小嫩苞调教HHH嗯啊MTV | 九九99精品视频 | 曰的好深好爽好紧的视频 | 美女视频黄频大全免费 |