Java基本元素詳解
生活呆以是甜的,也可以是苦的,但不能是沒味的。你可以勝利,也可以失敗,但你不能屈服,以下是小編為大家搜索整理了Java基本元素詳解,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
第二章 基本元素
第一章總結:
一平台&JDK&JRE&JVM&API
Java平台:運行在其他平台之上的純軟件平台。Java程序是藉助與Java平台去和硬件平台交互的。
Java語言的工作方式: 源文件文件 運行 JDK:包含Java運行的基本類庫和開發命令,安裝JDK可以進行完整的Java開發。 et:創建Java小程序
:輸入/輸出
:Java的網絡開發
:Java的工具包
:Java的語言包(不需要導包)
g & :Java圖形化界面的開發
JRE:Java Runtime Environment 包含Java運行的基本類庫和一些運行命令,安裝JRE可以運行編譯好的Java程序。
JVM:包括類裝載器、class文件檢驗器、解釋器。Java語言內部運行的核心。 JDK中包含JRE,JRE中又包含JVM,JVM不能單獨下載安裝。
API:Application Program Interface 應用編程接口及Java的類庫 二.環境變量
JAVA_HOME: 指向JDK的安裝路徑 jdk的路徑
classpath:Java在編譯和運行時要找的class所在的路徑 jdk下lib及lib下tools,jar的路徑
系統找字節碼的作用:1.先在當前包下找 2. jdk1.6.0_01jrelib 包下找
3.在classpath中所指向的路徑下找。
path:系統執行命令時要搜尋的路徑 jdk下bin包的路徑
三程序的兩種類型: Application:Java應用程序 可以獨立運行。
保存 —
編譯 — javac
javac 產生s 文件
解釋執行 — java
java HelloWorld (不要再寫上s)
Applet:Java小程序 被嵌入到Web頁中,由Java兼容瀏覽器控制執行
編寫applet類源代碼
編譯applet類所在的源文件 javac
編寫嵌入applet的網頁文件 appletviewer
作業:當java文件帶包時怎麼用命令?
c命令: 就像是沒有包一樣 進到源文件在的那個目錄下,然後用javac 編譯
命令:在源文件目錄下,建立一個和包名一樣的文件夾,把編譯好的class文件放入該文件夾中,然後用 java 包名s文件名
doc命令:和沒有包一樣 進到源文件在的那個目錄下,然後用javadoc -d help 將文檔生成到指定的文件夾下
命令: 編寫文本文件(Main-Class:包名.文件名) 然後用jar -cvmf 文本文件名.後綴 要生成jar包的名
學習目標: 同ppt
Java其實和英語或漢語的一樣,都是由基本元素構成(字母,單詞,短語,句子,文章)。Java中標識符、關鍵字、運算符、數據類型是英語中的字母;變量、常量是單詞;表達式是短語;語句是句子;程序是文章。
注意:編程的時候所有的標點符號必須在英文狀態下輸入。
Java文檔及jar包的生成:
Java文檔的生成
doc 源文件 生成的文檔在當前路徑下
doc –d 生成文檔的路徑(可以不存在) 源文件 生成的文檔在指定的路徑下
jar包
1.編寫一個文本文件 內容:Main-Class:
–cvmf
包下的類使用時不用導入也不用完整包名。其他包下的類使用時要麼導入要麼使用完整包名。
標識符: 概念:標識符就是用來標識類名、變量名、方法名、類型名、數組名、文件名的有效字符序列,並且標識符不能是關鍵字。
標識符的組成:
1.由字母、數字、下劃線和$組成
2.第一個字符不能是數字
3.區分大小寫
4.不能是關鍵字
5.字母包含英語字符和漢字(Java中採用unicode編碼)
6.標識符的長度沒有明顯規定
練習:3boy _hello $a dog Dog he&test a*b a@#%b length a b 貓貓 (可以使用,但是不推薦,以後不要用)
代碼習慣:
1. 類名每個單詞以大寫字母開始,其他字母小寫
2. 接口名同類名
3. 方法名第一個單詞小寫,其他單詞首字母大寫,其他字母小寫
4. 變量名同方法名
5. 常量所有單詞的所有字母大寫,而且單詞與單詞間用下劃線連接。
6. 包名所有字母都小寫。
關鍵字:Java已經使用並且有特殊含義。
基本數據類型:
unicode: 兩個字節保留一個字符。Java中採用unicode編碼(對漢字編碼) ASCII: 一個字節保留一個字符。 ASCII碼的取值範圍小與unicode碼。 兩種分類:
1. 按類型分:
整型: byte short int long
浮點型: float double
布爾類型:boolean
字符型: char(可以存一個漢字)
2. 按有效位分:
1位: boolean
8位: byte
16位:short char
32位:int float
64位: long double
詳細解析:
boolean: 值只有true或false兩種 ,與C++中的布爾類型不同
byte: 8位整形 取值範圍:
注意:byte b = 122; 涉不涉及122為int類型再強轉為byte類型? 不涉及 short:16位整形 取值範圍:
int: 32位整形 取值範圍:
,給任意一個該範圍內的整數都默認為int類型。
注意:
byte b = 128;//錯
short s = 32768;//錯
long: 64位整形 取值範圍:,以“l”或”L”結尾
long l =2147483648; //錯 ,其實等號右邊是int類型,然後賦值給l的時候再進行自動轉換。
long l1 = 2147483648L; //對,等號左邊和右邊都是long類型。
char: 可以看作是無符號16
位整形,漢字佔一個字節,取值範圍:
在進行運算的時候會被自動轉換成int類型再去
運算。
字符的存儲方式:
字符整數編碼二進制
char n = 128;//輸出亂碼;
char a = ‘b’;
char b = 97;
char c = ‘u0060’;
float: 用於存儲小數,取值範圍:,必須以“F”或”f”結尾。
float f = 9.9; //錯 等號右邊的默認為double類型,不能自動轉換為float。
float f = (float)9.9; //對 double強制轉換為float。
double:用於存儲小數,取值範圍:,以“D”或”d”結尾。 給任意一個該範圍內的小數都默認為double類型。
注意: 整型值隱含boolean數組含義 如:
飛機航班的班期: ean數組
s:
對應位上為1表示有班期,為0表示無班期 if(s&2的3次方 != 0)表示週三有航班 if(s&(1 << w)!=0)表示周w有航班
數據類型的存儲方式:
1.精確存儲:存儲的值與其存儲的狀態一一對應
如 整型
2. 近似存儲:所存儲的值和存儲狀態不一定一一對應,有可能一個存儲狀態對應多個值。
如 浮點型(float double)
比較兩個實數是否相同是沒有意義的。
類型轉換:
自動類型轉換:
精度損失:
4. 強制類型轉換也可能會引起數據精度的丟失
強制類型轉換:
float f = (float) 9.9;
long l = (long) 9;
強制類型轉換並不是沒有限制的,要求只有類型的性質相同才能轉換。 強制類型轉換基本用在:
1. 除boolean之外的七種基本類型之間的.相互轉換
2. 父子類之間
3. 接口和實現類之間
基本類型運算規則:
如果兩個參與運算的數都能夠自動轉換為int,則結果為int類型,否則結果根據自動類型轉換規則,結果為高精度類型。
變量和常量
變量是Java語言中的基本存儲單位。變量是在程序運行過程中值可以改變即可以多次賦值。定義一個變量需要一個類型,一個標識符,如果需要,還可以加上一個初值。
編碼習慣:變量名第一個單詞小寫,其他單詞首字母大寫,其他字母小寫
細節:變量的什麼可以改變?什麼不能改變? 值可以改變,類型不能變 舉例:
int i;
int l = 123;
l = 456;
常量:在Java中,使用關鍵字final來表示。與變量不同,常量在程序運行過程中其值不能改變,只能有一次賦值的過程。
規則:
有final修飾
只能賦一次值 定義的時候賦值或定義完之後賦值
編碼習慣:常量所有單詞的所有字母大寫,而且單詞與單詞間用下劃線連接。 舉例: double PI = 3.14;
PI = 3.1415;//錯誤,常量只能賦一次值 int CONSTANT; CONSTANT = 123;//正確,第一次賦值
運算符:
概念:用來表示各種運算的符號叫做運算符。運算符一定有自己的運算對象。
針對一定的運算符,都有規定的數據類型,同時運算結果也有確定的數據類型。每個運算符都有自己特定的運算規則。當表達式中出現運算符時則必須考慮運算符的優先級。同時,運算符還有結合性。
分類:算術運算符,關係運算符,邏輯運算符,遞增遞減運算符,位運算符,賦值運算符和複合賦值運算符,條件運算符。
算術運算符:
常見的算術運算有:加,減,乘,除,取模,取正,取負,對應符號分別為:+,-,*,/,%,+,-,其中只有取正或取負是單目運算符(即只有一個操作數),其他的都是雙目運算符(即一個運算符對應兩個操作數)。
關係運算符:
關係運算符可以用來比較兩個數值型數據的大小,也可以比較兩個字符型數據的大小。關係運算符的處理結果是邏輯值,若為真用true表示,若為假用false表示。
關係運算符主要有:>、>=、<、<=、==、!= 即 大於、大於等於、小於、小於等於、等於、不等於。
== 操作元是對象時判斷地址是否相同,是基本類型時判斷值是否相同。 邏輯運算符:
邏輯運算符運算對象是數值型或字符型等。結果只能是true或false。
&&: 只能是boolean表達式1&&boolean表達式2, 當boolean表達式1為false時,不再執行boolean表達式2,結果為false;當boolean表達式1為true時,執行boolean表達式2,boolean表達式為false,結果為false,否則結果為true。 ||: 只能是boolean表達式1||boolean表達式2,當boolean表達式1為true時,不再執行boolean表達式2,結果為true;當boolean表達式1為false時,執行boolean表達式2,boolean表達式為true,結果為true,否則結果為false。
&: 只能是boolean表達式1&boolean表達式2,不管boolean表達式1的值為true還是false都會執行boolean表達式2,只有當boolean表達式1的值和boolean表達式2的值都為true時結果才為true,否則結果為false。
|: 只能是boolean表達式1&boolean表達式2,不管boolean表達式1的值為true 還是false都會執行boolean表達式2,只有當boolean表達式1的值和boolean表達 式2的值都為false時結果才為false,否則結果為true。
!:只能是!boolean表達式,boolean表達式的值為false,結果為true,boolean表達式為true,結果為false。
自增自減運算符:
自增和自減在前置和後置的時候效果不一樣。
舉例:
前置自增:int a = 3; int b = ++a;相當於:int a = 3;a = a + 1; int b = a;//a = 4 b = 4
後置自增:int a = 3; int b = a++;相當於:int a = 3; int b = a; a = a +
1;// a = 4 b = 3
進行賦值運算,再進行自加運算。
前置自減:int a = 3; int b = --a;相當於:int a = 3;a = a - 1; int b = a;//a
= 2 b = 2
後置自減:int a = 3; int b = a--;相當於:int a = 3; int b = a; a = a -
1;// a = 2 b = 3
前置自減時,先進行自減運算,再進行賦值運算,後置時,剛好相反,即先
進行賦值運算,再進行自減運算。
位運算符:
正負數在內存中的存儲形式:正數:原碼,反碼,補碼都相同
負數:原碼的符號位不變,其他各位取反 則得到反碼
反碼+1 = 補碼
正數在內存中用原碼錶示,負數在內存中用補碼錶示。
概念:位運算符是一種對運算對象按二進制位進行操作的運算。
特點:1.位運算不允許只操作其中的某一位,而是對整個數據按二進制位進行運算。
2.位運算的對象只能是整型數據(包括字符型),運算結果仍是整形數據。 運算符:
1.按位與運算: 雙目運算符 功能:參與運算的兩數各對應的二進位相與。
只有對應的兩個二進位均為1時,結果位才為1,否則為0;
2.按位或運算: 雙目運算符 功能:參與運算的兩數各對應的二進位相或。
只有對應的兩個二進位有一個或兩個為1時,結果位就為1,否則為0;
3.按位異或運算: 雙目運算符 功能:參與運算的兩數各對應的二進位相異
或。
4.求反運算: 單目運算符 功能:對參與運算的數的各二進位按位求反。
5.左移運算: 雙目運算符 功能:把”<<”左邊的運算數的各二進位全部左移
若干位,由“<<”右邊的數指定移動的位數,高位丟棄,低位補0.
如:a << 4 指把a的各二進位向左移動4位。如 a = 00000011(十進制
的3),左移4位後為00110000(十進制48);a左移四位相當於是計算四次a
= a*2;
6. 右移運算: 雙目運算符 功能:把“>>”左邊的運算數的各二進位全部右
移若干位,”>>”右邊的數指定移動的位數。 低位丟棄,高位補移出
位。
byte b = 15; (byte) (b << 1) (byte) (b >> 1)
b: 0000 1111
內存中存儲的形式:0000 1111
先擴充為int類型:0000 0000 0000 0000 0000 0000 0000 1111
左移1位: 0000 0000 0000 0000 0000 0000 0001 1110
截取為byte類型: 0001 1110 30
右移1位: 0000 0000 0000 0000 0000 0000 0000 0111
截取為byte類型: 0000 0111 7
b = -15
b: 1000 1111
內存中存儲的形式:原碼:1000 1111 反碼:1111 0000 補碼: 1111 0001
先擴充為int類型:1111 1111 1111 1111 1111 1111 1111 0001
補碼左移1位:1111 1111 1111 1111 1111 1111 1111 0010
截取為byte類型:1111 0010 反碼: 1111 0001 原碼: 1000 1110 -30
補碼右移1位:1111 1111 1111 1111 1111 1111 1111 1000
截取為byte類型:1111 1000 反碼:1111 0111 原碼:1000 1000 -8
b = 127
b: 0111 1111
內存中存儲的形式:0111 1111
先擴充為int類型:0000 0000 0000 0000 0000 0000 0111 1111
左移1位: 0000 0000 0000 0000 0000 0000 1111 1110
截取為byte類型: 1111 1110 反碼:1111 1101 原碼:1000 0010 -2 右移1位: 0000 0000 0000 0000 0000 0000 0011 1111
截取為byte類型: 0011 1111 63
b = -127
b: 1111 1111
內存中存儲的形式:原碼:1111 1111 反碼:1000 0000 補碼: 1000 0001
先擴充為int類型:1111 1111 1111 1111 1111 1111 1000 0001
補碼左移1位:1111 1111 1111 1111 1111 1111 0000 0010
截取為byte類型:0000 0010 2
補碼右移1位:1111 1111 1111 1111 1111 1111 1100 0000
截取為byte類型:1100 0000 反碼:1011 1111 原碼:1100 0000 -64
7. 無符號右移:>>> 移出去的不管,移進來的補0;
注意:移位運算不能把有效位均移出去 。int a<< 33 相當於 a<<(33%32)
賦值運算符:
=
複合賦值運算符:
+= ,-=,*= ,/= ,%=,|=, &=,^=
區分:
== 關係運算符
= 賦值運算符
條件運算符:
唯一的一個三目運算符。
格式:
boolean表達式1?表達式2:表達式3
含義:
先判斷boolean表達式1的值,為true時執行表達式2,為false
時執行表達式3。
注意:
boolean表達式1一定會執行,表達式2和表達式3一定並且只能執
行其中的一個。
條件表達式在作非此即彼的條件判斷時非常地簡潔有效,條件表達式完全可以用以後學的if?else語句替代,但是,這一點是if?else語句所不能及的。
表達式和語句:
表達式是運算符、操作數以及方法調用的序列,用來説明某個計算過程並計算結果,有一個唯一類型的值。如:1+1
Java語言中的語句用於向計算機發出操作指令。一個為實現特定目的的程序應該包含若干語句。
語句 = 表達式+“;”
例如: int area = length * width;
語句:
1. 方法調用語句
input();
2. 表達式語句
i = 3;(賦值語句)
3. 複合語句。
{i= 3;
tln(i);}
4. 控制語句
包括分支、循環、跳轉
5. pakage 和 import語句
類:類的全限定名: 包名.類名
package 定義當前類所在的包
import 導入用到API中的類
導入的是類 import om;
import .* 表示導入包中的所有類
註釋:
a) 單行註釋: //
b) 多行註釋: /* */
c) 文檔註釋: /** */
總結: 1.本章講述了Java標識符與關鍵字概念,學習的重點是要了解Java的四類八種基
本數據類型使用,以及變量和常量的定義。
2.熟悉幾種運算符的使用,熟練運用Java表達式和語句的書寫規範。
3.特別需要重點對待的註釋,同學們在學習的過程中一定要養成寫註釋的好習慣。
編程:
1:輸入兩個數字,輸出最大的數字。
2:輸入一個年份,判斷這年是平年還是閏年,並且輸出。
String judge = year%400 == 0 ? "閏年":year % 4 == 0 && year % 100 !=0?"閏年":"
平年";
-
關於java實驗報告模板
1.掌握JavaApplet的程序結構和開發過程。2.學會編寫Applet對應的HTML文件,掌握從HTML文件向Applet傳遞參數的方法。3.掌握文本框對象的使用方法。4.掌握按鈕類對象的使用方法。5.掌握佈局管理器的用法。6.理解ActionEvent事件的`含義。7.掌握事件源、監視器、處理事...
-
如何在Javascript中為String對象添加trim,ltrim,rtrim方法
如何在Javascript中為String對象添加trim,ltrim,rtrim方法呢?下面是小編給大家提供的實現代碼,大家可以參考閲讀,更多詳情請關注應屆畢業生考試網。利用Javascript中每個對象(Object)的prototype屬性我們可以為Javascript中的內置對象添加我們自己的方法和屬性。j...
-
經典Java基礎面試題
Java技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、遊戲控制枱、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社羣。下面小編給大家介紹經典Java基礎面試題,歡迎閲讀!經典Java基礎面試題1、如果main方法被聲明為...
-
Java中的對象與引用知識詳解
在Java中,有一組名詞經常一起出現,它們就是“對象和對象引用”,很多朋友在初學Java的時候可能經常會混淆這2個概念,覺得它們是一回事,事實上則不然。今天我們就來一起了解一下對象和對象引用之間的區別和聯繫。以下僅供參考!1.何謂對象?在Java中有一句比較流行的話,叫...