版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1 關鍵字1.1 關鍵字的概述關鍵字:關鍵字就是在 java 程序中具備特殊含義的標識符。關鍵字一般用于描述一個程序的結構或者表示數(shù)據(jù)類型,關鍵字不能用作變量名、方法名、類名、包名。1.1.1 常見的關鍵字備注:不必死記硬背,如果使用關鍵字作為標識符,編譯器能提示錯誤。goto 是 java 的保留關鍵字,意思是 java 并沒有使用 goto,以后是否使用未定。2標識符2.1標識符就是程序員在定義 java 程序時,自定義的一些名字,例如oworld 程序里關鍵字 class 后跟的 Demo,就是定義的類名。類名就屬于標識符的一種。標識符除了應用在類名上,還可以用在變量、函數(shù)名、包名上。(
2、要求以后會詳細見到這些)。先記住,2.2 標識符必須遵循以下規(guī)則標識符由 26 個英文字符大小寫(azAZ)、數(shù)字(09)、下劃線(_)和組成。符號($)1.2.3.4.不能以數(shù)字開頭,不能是關鍵字嚴格區(qū)分大小寫標識符的可以為任意長度1i =1I =0;0;2.3標識符案例2.3.1 合法的標識符ComputeArea,radius,area $daniu_daniu gz_daniu注意:由于 Java 嚴格區(qū)分大小寫,daniu 和 Daniu 是完全不同的標識符2.3.2標識符1.2.3.class (關鍵字) 100java(不能以數(shù)字開頭)o java (空格不是組成標識符的元素)2
3、.3.3 Java 中的標識符命名規(guī)范包名多個單詞組成時所有字母小寫(例:package com.daniu)類名和接口多個單詞組成時所有單詞的首字母大寫(例:3. 變量名和函數(shù)名oWorld)多個單詞組成時第一個單詞首字母小寫,其他單詞首字母大寫(例:lastAc getTime)。sTime、4. 常量名多個單詞組成時,字母全部大寫,多個單詞之間使用_分隔(例:EGER_CACHE)注意:只是為了增加規(guī)范性、可讀性而做的一種約定,標識符在定義的時候最好見名知意,提高代碼閱讀性。3 3.注釋3.1 注釋的作用通過注釋提高程序的可讀性,是 java 程序的條理更加清晰,易于區(qū)分代碼行與注釋行。
4、另外通常在程序開頭加入作者,時間,版本,要實現(xiàn)的功能等內容注釋,方便后來的以及程序員的交流。3.2 注釋的種類單行注釋(line comment)用/表示,編譯器看到/會忽略該行/后的所文本多行注釋(block comment)用/*/表示,編譯器看到/*時會搜索接下來的*/,忽略掉/*/之間的文本。文檔注釋用/* */表示,是 java 特有的注釋,其中注釋內容可以被 JDK 提供的工具 javadoc 所,生成一套以網(wǎng)頁文件形式體現(xiàn)的該程序的說明文檔。注意:多行注釋中可以嵌套單行注釋,多行注釋不能嵌套多行注釋。錯誤!class Demo/*這是主函數(shù),是程序的它的出現(xiàn)可以保證程序的獨立運行
5、/*注意:多行注釋嵌套多行注釋是的。*/public sic void main(String args) / 第一步: 獲取半徑?并將半徑保存在程序中double radius = 5;/ 第二步:計算面積,并將面積保存在程序中/*double area = radius * radius * 3.1415;/ 第三步:在控制臺現(xiàn)實面積System.out.prln(半徑為 + radius + 的圓的面積為: + area);*/文檔注釋1.2.(編寫說明書)需要使用 sum 給提供的 javadoc 工具生成一個 html 的說明文檔。只能抽取 public 的屬性或者方法內容。格式:a
6、uthor 作者ver版本 param 方法的參數(shù) return 返回值注釋的使用細節(jié):三種注釋可以出現(xiàn)在程序的任何地方,但是不找任意位置。1. 編程:給那條語句進行說明,注釋應該寫在該語句的旁邊。單行注釋一般寫在語句的后面多行注釋和文檔注釋一般寫在語句的上面注意:文檔注釋只能出現(xiàn)在類、屬性、方法的上面。Javadoc d 指定文檔的路徑 -verauthor(可選) 目標文件javadoc -d d:oWorld_JavaDocd:oWorld.java*/public sic void main(String args)/這是輸出語句用于將括號內的數(shù)據(jù)打印到控制臺。 System.out.
7、prln(o java);2注釋的嵌套單行注釋可以在單行注釋里面。多行注釋不能嵌套在多行注釋里面。3注釋的調試作用:1.2.可以作為初學者的調試方式??梢詭徒M初學者確定代碼的錯誤之處。4 常量4.1 常量的概述常量是指在程序運行過程中其值不能改變的量。4.2 常量類型3.char 類型char 類型表示的是單個字符類型,任何數(shù)據(jù)使用單引號括起來的都是表示字符。字符只能有一個字符,比如:普通的 注意:特殊字符的轉義序列:轉義字符轉義字符的概述:穿上軍裝就是。特殊字符使用”把其轉化成字符的本身輸出,那么使用”的字符稱作為轉移字符。需求:使用輸出語句,打印出帶引號的信息例如輸出。ln(teacher
8、 saidjava is fun);編譯是無法正常通System.out.pr過的。語法有錯誤,編譯器讀到第二個引號就認為是字符串的結束,剩余的不知道怎么處理。如何解決這個問題:java 中使用轉義字符來表示特殊的字符。一個轉義字符以反斜杠()開始。問題:想要打印帶引號的字符串怎么辦,就可以使用反斜杠()后跟字符,這個反斜杠就是轉義字符。表示接受鍵盤輸入,相當于按下回車。表示換行。制表符,相當于 Tab 鍵退格鍵,相當于 Back Space單引號rntb 雙引號 表示一個斜跨上述問問題解決:System.out.prln(teacher saidjava is fun);注意:換行符就是另起
9、一行,回車符就是回到一行的開頭,所以應該確切來說叫做回車換行符平時編寫文件的回車符轉義字符名稱UnicodebBackspace (退格鍵)u0008tTab(Tab鍵盤)u0009nLinefeed (換行)u000ArCarriage Return(回車)u000DBackslash (反斜杠)u005CSingle Quote (單引號)u0027Double Quote (雙引號)u0022Java 中常量的分類:整數(shù)常量 : 所有整數(shù)小數(shù)常量 : 所有小數(shù)常量(常量) : 只有true 和 false字符常量 :使用引起來的單個字符字符串常量 :使用“”引起來的字符序列,“” 、“a
10、” 、” ”null 常量 : 只有一個值 null類型4.由數(shù)學家 Geogore Boole 發(fā)明類型用來值,在 java 中值只有 2 個,true 和 false。Java 中這 8 中基本數(shù)據(jù)類型都是小寫的。5 進制的轉換進制:進制是一種記數(shù)方式 ,可以用有限的數(shù)字符號代表所有的數(shù)值。由特定的數(shù)值組成。5.1 整型的表現(xiàn)形式1.2.3.4.十進制: 都是以0-9這九個數(shù)字組成,不能以0開頭。二進制: 由0和1兩個數(shù)字組成。八進制: 由0-7數(shù)字組成,為了區(qū)分與其他進制的數(shù)字區(qū)別,開頭都是以0開始。十六進制:由0-9和 A-F 組成。為了區(qū)分于其他數(shù)字的區(qū)別,開頭都是以 ox 開始。5
11、.2 進制的由來幾乎每個民族最早都使用都十進制的是十個手指。 但是這不等于說只有十進制,這是因為人類計數(shù)時自然而然地首先使用一種計數(shù)方法。例如,世界各國在計算年月日時不約而同地使用“十二進制”12 個月為一年又如:我國過去 16 兩才算為一斤,這就”,一個是“十六進七天,這個就是”七進制計算法”。 計算機是由邏輯電路組成,邏輯電路通常只有兩個狀態(tài),開關的接通與斷開,這兩種狀態(tài)正好可以用“1”和“0”表示。如果要在計算機里面保存十進制的 7.5.2.1 十進制與二進制之間的轉換十進制轉二進制的轉換原理:除以 2,反向取余數(shù),直到商為 0 終止。flag=true;flag=false;二進制轉十
12、進制的轉換原理:就是用二進制的每一個乘以 2 的 n 次方,n 從 0 開始,每次遞增1。然后得出來的每個數(shù)相加1*2(0)+1*2(3)0*2(0)+1*2(1)+0*2(2)+1*2(3) = 10存在問題:書寫特別長,不方便。5.2.2 十進制與八進制之間轉換1.八進制的由來二進位制在計算機是再自然不過的。但在人機交流上,二進位制有致命的弱點數(shù)字的書寫特別冗長。例如,十進位制的 100000 寫成二進位制成為11000011010100000。為了解決這個問題,在計算機的理論和應用中還使用兩種輔助的進位制八進位制和十六進位制。二進位制的三個數(shù)位正好記為八進位制的一個數(shù)位,這樣,數(shù)字長度就
13、只有二進位制的三分之一,與十進位制記的數(shù)長度相差不多。例如,十進位制的 100000 寫成八進位制就是 303240。十六進位制的一個數(shù)位可以代表二進位制的四個數(shù)位,這樣,一個字節(jié)正好是十六進位制的兩個數(shù)位。十六進位制要求使用十六個不同的符號,除了 09 十個符號外,常用 A、B、C、D、E、F 六個符號分別代表(十進位制的)10、11、12、13、14、15。這樣,十進位制的 100000 寫成十六進位制就是 186A0。2.八進制的特點由數(shù)字 0-7 組成。即使用三個開關表示一個八進制數(shù)。10 進制轉換 8 進制原理:就是用十進制的數(shù)字不斷除于 8,取余數(shù)。八進制轉十進制原理: 用把進制的
14、數(shù)不斷乘以 8 的n 次方,n 從 0 開始,每次遞增 1。除了這種方法之外,還有另法,因為三個開關表示一個八進制數(shù)。5.2.3 十進制與十六進制之間的轉換十六進制特點:由 09 a(10) b(11) c(12) d(13) e(14) f(15)組成。十進制轉十六進制原理:就是不斷除以 16,取余數(shù)。代碼體現(xiàn):人使用的十進制 、 計算機底層處理的數(shù)據(jù)是二進制、八進制、十六進制,那么如果給計算機輸入不同的進制數(shù)據(jù)呢?6 變量6.1 變量的概述為什么學習變量 :在現(xiàn)實生活中會發(fā)生變化的?1.變量的概述用于可變數(shù)據(jù)的容器。2.變量存在的意義計算機主要用于處理生活中的數(shù)據(jù),由于生活中存在大量的可變
15、數(shù)據(jù),那么計算機就必須具備可變數(shù)據(jù)的能力。比如:時間每一秒都在發(fā)生變化,根據(jù)不同的時間要有不同的處理方式。氣象站會根據(jù)溫度發(fā)布天氣預報信號。變量的特點正常情況下牛奶盒裝的都是牛奶,而且會根據(jù)牛奶的多少去決定要多大的容量的牛奶盒,A 和 B 兩位同學同時把牛奶盒放進籃子里面,但是需要區(qū)分兩個牛奶盒是誰的,都需要在牛奶盒上做一個標志。特點:必須要有大小2.一定格式的可變數(shù)據(jù)3. 必須要有名字6.2 變量的根據(jù)上述變量的特點,所以型、名字三個特點:一個變量的時候需要確定變量的大小,類錯誤: 1024bytetemp = 1000000;錯誤原因,java 有自己的變量類型。6.2.1 變量的數(shù)據(jù)類型
16、1. 整型byte short8bit 16bit 32bit64bit2(8)2(16)2(32)2(64)-128127-2(15)2(15)-1-2(31)2(31)-1-2(63)2(63)-1256代表一個字節(jié)的大小代表兩個字節(jié)的大小代表節(jié)的大小long代表八個字節(jié)的大小如果一個數(shù)值沒有采取特殊的處理,那么該整數(shù)默認的類型是可以使用數(shù)值后面添加 L 或小寫 L 改變默認的整數(shù)類型。浮點型。2.float代表節(jié)的大小 32bitdouble 代表八個字節(jié)的大小 64bitjava 程序中所有的小數(shù)默認的類型是 double 類型,所以需要使用特殊的符號改變默認的小數(shù)類型。字符型3.ch
17、ar代表兩個字節(jié)的大小 16bit2(16)charm = a原理:將字符型為碼表中對應的十進制數(shù)據(jù)加以。4.占一個字節(jié)。只有 true 與 false 兩個值。a = true; b = false;6.2.2 變量的案例:i double dfloatf了一個整形的變量。了一個 double 數(shù)據(jù)類型的變量了一個 float 數(shù)據(jù)類型的變量。備注:變量名的首字母都一般都是以小寫字母開始。6.2.3 變量的初始化6.2.4 變量的初始化方式初始化方式 1:初始化方式 2:案例:方式 1:方式 2:變量名字 = 數(shù)值。變量名字 , 變量名字 = 數(shù)值。數(shù)據(jù)類型數(shù)據(jù)類型double d = 3.
18、14;double d ;d = 3.14 ;7 java 數(shù)據(jù)類型的轉換Java 中可以進行不同數(shù)據(jù)類型的加減乘除運算嗎?是可以的。在算術運算符中已經(jīng)體驗過如果兩個整數(shù)()相除會去掉小數(shù)部分。如果需要保留小數(shù)部分,可以讓除數(shù)或者被除數(shù)變?yōu)?double 類型的(5 變?yōu)?5.0)。其實 Java 是自動的將的那個數(shù)變?yōu)榱?double 類型了也就是 Java 自動的將整數(shù)變?yōu)榱烁↑c數(shù)。例如 5/2.0 其實是 5.0/2.0Double a = 0Doubu= a+1;1、自動類型轉換(也叫隱式類型轉換)可以將一個數(shù)賦值給更大數(shù)值范圍的變量,例如可以經(jīng) byte 變量賦值給 short 變量
19、可以將 short 變量賦值給變量可以將變量賦值給 long 變量。Java其實做了工作就是自動將數(shù)值進行了類型,就叫做自動類型轉換(也叫隱式類型轉換)自動類型轉換(也叫隱式類型轉換)byte b = 1; /00000001short s = b; /00000000 00000001 i = s;long lon = i;double d = lon; /1.0格式: 數(shù)據(jù)類型 變量名字 1 , 變量名字 2 ,變量名字 n ,;要實現(xiàn)自動類型的轉換,需要滿足兩個條件,第一兩種類型彼此兼容,第二目標類型取值范圍必須大于源類型。所有的數(shù)字類型,包括整形和浮點型彼此都可以進行轉換。例如:2、強
20、制類型轉換(也叫顯式類型轉換)不可以將一個數(shù)值賦給范圍更小數(shù)值范圍的變量,除非進行類型轉換。上述例子發(fā)生了什么,發(fā)生了類型轉換。b+2 遇到了加法運算,2 默認是類型,byte 類型 b 變量的值自動類型為了類型。執(zhí)行完加法運算后的結果就是類型,想要將的類型值放入到 byte類型變量 b 中,無法放入,編譯報錯。當兩種類型彼此不兼容,或者目標類型取值范圍小于源類型(目標是 byte 源是無法自動轉換,此時就需要進行強制類型轉換。)強制類型轉換需要注意:損失精度!byte再次分析此行代碼編譯:提示如下錯誤。byte b = 100; b = b + 2;System.out.prln(b);10
21、00000000000000000000000000000010000000a=128;byte b=(byte)a; System.out.prln(b);/-128/* 此時的強轉已經(jīng)造成了數(shù)值的確*/byte b=1;b=(byte)(b+2);byte b = 100; b = b + 2;System.out.prln(b);byte b=100; x=b;System.out.prln(x);/程序把 b 結果自動轉換為 類型。3、類型轉換的原理可以把 byte 理解為 1 兩的碗,short 2 兩的碗,4 兩的碗,long 8 兩的碗。1兩碗的滿碗酒可以倒入 2 兩 4 兩 8
22、 兩的碗中。但是 4 兩碗的酒倒入 1 兩碗的酒就有一些問題。1、什么時候要用強制類型轉換比如小數(shù)部分只想保留整數(shù)部分.一定要清楚要轉換的數(shù)據(jù)在轉換后數(shù)據(jù)的范圍內否則會損失精度.2、表達式的數(shù)據(jù)類型自動算術表達式,邏輯表達式所有的 byte 型、short 型和 char 的值將被到型。如果一個操作數(shù)是 long 型,計算結果就是 long 型; 如果一個操作數(shù)是 float 型,計算結果就是 float 型;如果一個操作數(shù)是 double 型,計算結果就是 double 型。分析 System.out.pr自動類型ln(a+1)結果?強制類型轉換byte b = 2;/* 強制類型轉換,強制
23、將b+2強制轉換為byte類型,再賦值給b*/byte b = 3;x = 4;x = x + b;/ b會自動為類型參與運算。System.out.prln(x);/ 7public sic void main(String args) byte b = 100;b = (byte) (b + 2); System.out.prln(b); / 102/舍棄小數(shù)部分double d=5.5;num=()d;思考 1byte b=126;問:既然數(shù)據(jù)默認的有數(shù)據(jù)類型,那么 126 默認是類型時不會報錯呢。類型的,為什么到 byte126 是常量 java 在編譯時期會檢查該常量(每個常量)是否
24、超出 byte 類型的范圍。如果沒有可以賦值。思考 2:byte b=128;能否正常的編譯和運行。該語句會出現(xiàn)編譯錯誤,128 超出了 byte 變量的范圍,所以出現(xiàn)編譯錯誤。思考 2byte b1=3,b2=4,b; b=b1+b2;b=3+4;哪一句編譯失???為什么?b =3+4, 3 和 4 都是常量,所以 java 在編譯時期會檢查該常量(每個常量)是否超出 byte 類型的范圍。如果沒有可以賦值。例如 b=128+1 就無法編譯通過。b=127+1;也是無法通過。b =b1+b2 不可以,因為 b1 和 b2 是變量,表達式求值時,變量值會自動為型,表達式結果也就成了了。型,這是要
25、賦值給 byte 型的 b,必須進行強制類型轉換6、System.out.prln(a+1)結果人為了讓計算機識別他們生活中的文字,讓二進制表示生活中的文字.所以一個字母代表了一個二進制.,二進制也有十進制的表現(xiàn)形式.,把生活中的字母都用數(shù)字來標識,例如 97 代表 a ,98 代表 b。打印a就把 a 作為輸出顯示,沒有疑問。但是a+1 據(jù) java 自動 有加號涉及到了運算。根類型規(guī)則,同樣道理 char為。就把a代表的數(shù)字體現(xiàn)了出來。a 表示的是 97 97+1 就是 98; 那么 想要查看 98 表示的 char 是什么 怎么實現(xiàn)呢 ? 就要用到剛才介紹的強制類型轉換了System.o
26、ut.prln(char(a+1);就取到了 98 在 ASCII 碼表中表示的字符。大寫 A 和小寫 a 在 ASCII 有不同的表現(xiàn)。還有一個概念字符1 在 ASCII 中 不是數(shù)字 1,可以運行代碼查看,到此就可以明白了 char 類型,char 類型也是可以參與運算的,為什么可以參與運算呢。因為字符在 ASCII 表中都有對應的數(shù)字體現(xiàn)。所有的計算機兼容 ASCII。System.out.pr System.out.pr補充問題:ln(a+1); /98ln(char)(a+1); /b總結:所有數(shù)值運算符都可以用在 char 型數(shù)據(jù)上,如果另一個操作數(shù)是一個數(shù)字或者字符,那么 cha
27、r 會自動為型,如果另一個操作數(shù)是字符串,那么字符就會和字符串i=a+b;System.out.prln(i);/結果? System.out.prln(o+j); /結果?b = (byte) (b + 2);System.out.prln(b);/ 4相連。8 java 運算符8.1.算術運算符正負號(+,-)除法%取模求余數(shù)取模的正負取決與被除數(shù):1 自增(+)前自增:先自增完畢,再運算整個表達式,語句分號前面的都是運算表達式;后自增,先運算完整個表達式(分號前面的都是表達式),再進行自增;備注:參與自增運算的操作數(shù)據(jù)每次會加 1.結論:如果運算符在變量的前面,則該變量自增 1 或者自減
28、 1,然后返回的是變量的新值,如果運算符在變量的后面,則變量也會自增或者自減 1,但是返回的是變量原來的值。+就是先運算,再取值,+在后就是先取值,再運算。自增自減運算符案例:完成如下運算:一;i = 10;newNum = 10 * i+; System.out.prln(newNum);/?二:i = 10;newNum = 10 * +i;/?System.out.prln(newNum); /?一可以理解為練習:1.2.3.使用程序判斷一個整數(shù)是偶數(shù)還是奇數(shù)使用程序判斷假設今天是4,那么問 10 天后的今天是幾?將數(shù)值表達式使用 java 程序翻譯,并通過程序求出運算結果其中x=1;y
29、=2,a=3,b=4,c=5;案例一:方案二 使用判斷該數(shù)結果是否是奇數(shù)。(但是該算法有問題,如果被判斷的整數(shù)為負數(shù)是否有效?)public sic void main(String args) / 判斷一個整數(shù)一奇數(shù)還是偶數(shù)x = 1;/ 奇數(shù)是,1,3,5.偶數(shù)是2,4,6.顯然奇數(shù)%的結果為1. result = x % 2;System.out.prln(result);/ 使用判斷語句進行判斷。if (result = 1) System.out.prln(x + 是奇數(shù)); else System.out.prln(x + 是偶數(shù));public sic void main(Str
30、ing args) / 判斷一個整數(shù)一奇數(shù)還是偶數(shù)x = -100;/ 奇數(shù)是,1,3,5.偶數(shù)是2,4,6.顯然整數(shù)除2能整除,也就%(取模)結果為0就是偶數(shù)。result = x % 2; System.out.prln(result);/ 使用判斷語句進行判斷。if (result = 0) System.out.prln(x + 是偶數(shù)); else System.out.prln(x + 是奇數(shù));i = 10;newNum = 10 * i; i = i + 1;二可以理解為i = 10;i = i + 1;newNum = 10 * i;改進案例三:判斷案例 4:8.1 賦值運算
31、符= , +=, -=,*=, /=, %=x = 1;y = 2;a = 3;b = 4;c = 5;result = (3 + 4 * x) / 5 - 10 * (y - 5) * (a + b + c) / x + 9* (4 / x + (9 + x) / y);System.out.prln(result); / 442public sic void main(String args) / 設定今天是1,用1表示一,0表示天today = 1;/ 十天后是幾?,一個是7天,7天之后又是1,可以用? future = (today+10) % 7;if (future = 0) Sy
32、stem.out.prln(10天后是天); else System.out.prln(10天后是: + future);public sic void main(String args) / 判斷一個整數(shù)一奇數(shù)還是偶數(shù)x = -1;/ 奇數(shù)是,1,3,5.偶數(shù)是2,4,6.顯然奇數(shù)%的結果為1. result = x % 2;System.out.prln(result);/ 使用判斷語句進行判斷。if (result != 0) System.out.prln(x + 是奇數(shù)); else System.out.prln(x + 是偶數(shù));a+=b 可以想象成 a=a+b;變量完了之后,可
33、以使用賦值語句(assignment sement)給變量賦一個值,Java 中使用等號(=)作為基本的賦值運算符(assignment operator),格式如下:變量已經(jīng)知道如何,表達式具體如何定義?表達式的定義:表達式涉及到值(常量),變量和通過運算符計算出的值,以及他們組合在一起計算出的新值。x =y+1;例如:賦值運算符小問題問題二:問題 1:x;Syst2ln(x = 1);如何理解?答:等價于 x=1;System.out.prln(x);注意:不能 1=x,變量名必須在賦值運算符的左邊。public sic void main(String args) x = 1; /變量x
34、, 賦值1給變量x y = 0; /變量y, 賦值0給變量ydouble area; /double變量areadouble radius = 1.0; /double變量radius,并賦值1.0給變量radius x = 5 * (3 / 2) + 3 * 2; / 將=右半部分表達式的計算結果賦值給變量xx = y + 1; / 將變量y和1的求和的值賦值給變量xarea = radius * radius * 3.14159; / 將計算面積的值賦值給變量areavariable = expres;變量= 表達式;運算符運算范例結果=賦值a=3,b=2a=3,b=2+=加等于a=3,b
35、=3;a+=b;a=5,b=2;-=減等于a=3,b=2,a-=b;a=1,b=2;*=乘等于a=3,b=2,a*=b;a=6,b=2/=除等于a=3,b=2,a/=b;a=1,b=2;%=模等于a=3,b=2,a%=b;a=1,b=28.2 比較運算符如何比較兩個值?使用比較運算符 3 和 5 誰大,在 java 中如何比較?比較運算符比較的兩邊操作數(shù),結果都是的,只有 true 和 false 兩種結果。注意的細節(jié):1.使用比較運算符的時候,要求兩種數(shù)據(jù)類型必須一致。byte、short、char 會自動至。運算符運算例子結果=相等于4= =3false!=不等于4!= 3true小于4
36、大于43true=小于等于4=大于等于4=3trueInstanceof檢查是否是類的對象oinstanceofStringtrue問題三:short s1 = 1;s1= s1+1; s1+=1;問:s1= s1+1; s1+=1; 與不同?對于 short s1 = 1; s1 = s1 + 1; 由于 s1+1 運算時會自動表達式的類型,所以結果是型,再賦值給 short 類型 s1 時,編譯器將需要強制轉換類型的錯誤。對于 short s1 = 1; s1 += 1;由于 += 是 java 語言規(guī)定的運算符,java 編譯器會對它進行特殊處理,因此可以正確編譯。x;y;z;x = y
37、 = z = 100;如何理解?答:等價于x;y;z; z = 100;y = z; x = y;8.3 邏輯運算符邏輯運算符?連接比較運算符的符號稱之為邏輯運算符。那么為什么要連接比較運算符? 舉例:當你去公司應聘,招聘要求,(判斷為真),并且開發(fā)經(jīng)驗 1 年(判斷為假)那么,假)。還適合去面試嗎,不能,因為只滿足了一項,總體是不滿足的(總體結果為邏輯運算符用于對型結果的表達式進行運算,運算的結果都是型。我們的比較運算符只能進行一次判斷,對于對此判斷運算符連接起來。為力,那么邏輯運算符就可以經(jīng)將較邏輯運算符用于連接型表達式,在 Java 中不可以寫成 3x3 & x3 & a3 & a3 &
38、 a3 & a 6; 此時 a 不大于 3 結果為 false 右邊不運算了.即短路.所以& 比& 效率稍微高了一點.public sic void main(String args) x = 0;y = 1;if (x = 0 & y = 1) System.out.prln(x + y);!true = false!false= truetrue true =false; ture false =true; false true= true;false false=flase;true | true =true; ture | false =true; false | true =true
39、; false | false =flase;8.4 位運算符按位操作符用來操作整數(shù)基本數(shù)據(jù)類型中的單個比特(bit),就是二進制,按位操作符會對兩個參數(shù)中對應的位(bit)執(zhí)行C 語言面向底層的操作,Java 設計的初衷是保留了下來。運算,最終生成一個結果。按位操作符來源于電視機機頂盒,所以面向底層的操作也任何信息在計算機中都是以二進制的形式保存的,”&”、“|”、“”除了可以作為邏輯運算符也可以作為位運算符。位運算是直接對二進制進行運算。他們對兩個操作數(shù)中的每一個二進制位都進行運算。例如值的二進制數(shù)進行運算。位(bit)運算符:是由 32 個二進制數(shù)組成,因此使用位運算符可以對整數(shù)規(guī)則:可
40、以把 1 當做 true 0 當做 false只有參與運算的兩位都為 1,&運算的結果才為 1,否則就為 0。只有參加運算的兩位都是 0,| 運算的結果才是 0,否則都是 1。只有參加運算的兩位不同, 運算的結果才為 1,否則就為 0。 1、& 與運算& 參見運算的兩位數(shù)都為 1,&運算符結果才為 1,否則就為 0。6&32、| 或運算| 參與運算的兩位都為 0,|運算的結果才為 0,否則就為 1。3、 異或運算只有參加運算的兩位不同,運算的結果才為 1,否則就為 0。000000000000000000000000000001106000000000000000000000000000000
41、11300000000000000000000000000000101 =500000000000000000000000000000110600000000000000000000000000000011300000000000000000000000000000111| =700000000000000000000000000000110600000000000000000000000000000011300000000000000000000000000000010& =2位運算符運算符含義&與(AND)|或(OR)異或取反1、 反碼就是取反,二進制只有 1 和 0,取反就是如果為 1,
42、取反就是 0,如果是 0,取反就是 1。System.out.prln(6);/-7結論:當參與取反的數(shù)值是正數(shù)時,把對應的值加上負號,再-1;當參與取反的數(shù)值是負數(shù)時,把對應的值加上負號,再-1;負數(shù)的表現(xiàn)形式就是對應的正數(shù)取反,再加 1。負數(shù)的最肯定是 1。4、負數(shù)表示負數(shù)對應的正數(shù)的二進制-1,然后取反。-65、異或特點一個數(shù)異或同一個數(shù)兩次,結果還是那個數(shù). 用處一個簡單的加密633.除了這些位運算操作,還可以對數(shù)據(jù)按二進制位進行移位操作,Java 的移位運算符有三種。練習:取出一個二進制的某一段。使用異或()數(shù)據(jù)對數(shù)據(jù)加00000000-00000000
43、-011060000-00000000-00000000-00000000-001130000-00000000-00000000-00000000-01010000-00000000-00000000-00000000-001130000-00000000-00000000-00000000-0110結果是 60000-00000000-00000000-00000000-011061111-11111111-11111111-11111111-1001取反1111-11111111-11111111-11111111-1010加 10000-00000000-00000000-00000000-011061111-11111111-11111111-11111111-1001取反 -7對兩個變量的值進行互換。方式 1:對兩個變量進行值交換(不能使用第三個變量)方式 2:兩個數(shù)相加的時候,值有可能超出表示范圍,不方式 3:。該方式雖然效率高,而且避免了超出值,但是可讀性較差。三種方式都可以對兩個變量的值進行交換,但是使用第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度能源項目合同財產保全擔保書范本3篇
- 2025年度個人裝修貸款協(xié)議書3篇
- 二零二五年度60歲以上人員社區(qū)教育輔導勞動合同模板3篇
- 2024-2025學年新教材高中政治第3單元就業(yè)與創(chuàng)業(yè)單元綜合提升教案新人教版選擇性必修2
- 2025版智能交通管理系統(tǒng)建設運營履約擔保合同4篇
- 2025年度噴灌系統(tǒng)節(jié)能改造技術合同4篇
- 2025年度在線教育平臺兼職外教遠程教學合同4篇
- 2025年度宿舍管理員職業(yè)發(fā)展規(guī)劃聘用合同
- 二零二五年度駕校教練員職業(yè)發(fā)展承包合同3篇
- 2025年度馬賽克材料研發(fā)與應用采購合同4篇
- C及C++程序設計課件
- 帶狀皰疹護理查房
- 公路路基路面現(xiàn)場測試隨機選點記錄
- 平衡計分卡-化戰(zhàn)略為行動
- 國家自然科學基金(NSFC)申請書樣本
- 幼兒教師干預幼兒同伴沖突的行為研究 論文
- 湖南省省級溫室氣體排放清單土地利用變化和林業(yè)部分
- 材料設備驗收管理流程圖
- 培訓機構消防安全承諾書范文(通用5篇)
- (完整版)建筑業(yè)10項新技術(2017年最新版)
- 第8期監(jiān)理月報(江蘇版)
評論
0/150
提交評論