程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java 關鍵字、標識符、注釋、常量與變量、數據類型,算術、賦值、比較、邏輯、位、三元運算符和流程控制【3】,java運算符

Java 關鍵字、標識符、注釋、常量與變量、數據類型,算術、賦值、比較、邏輯、位、三元運算符和流程控制【3】,java運算符

編輯:JAVA綜合教程

Java 關鍵字、標識符、注釋、常量與變量、數據類型,算術、賦值、比較、邏輯、位、三元運算符和流程控制【3】,java運算符


 

本文原創作者:pipi-changing

 

本文原創出處:http://www.cnblogs.com/pipi-changing/

 

    

 

本文版權歸作者和博客園共有,未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接 ,否則保留追究法律責任的權利。

 

 

關鍵字


 

  關鍵字的定義和特點

定義:被Java語言賦予了特殊含義的單詞

特點:關鍵字中所有字母都為小寫

 

用於定義數據類型的關鍵字

class

interface

byte

short

int

long

float

double

char

boolean

void

       

用於定義數據類型值的關鍵字

true

false

null

   

用於定義流程控制的關鍵字

if

else

switch

case

default

while

do

for

break

continue

return

       

 

用於定義訪問權限修飾符的關鍵字

private

protected

public

   

用於定義類,函數,變量修飾符的關鍵字

abstract

final

static

synchronized

 

用於定義類與類之間關系的關鍵字

extends

implements

     

用於定義建立實例及引用實例,判斷實例的關鍵字

new

this

super

instanceof

 

用於異常處理的關鍵字

try

catch

finally

throw

throws

用於包的關鍵字

package

import

     

其他修飾符關鍵字

native

strictfp

transient

volatile

assert

 

 

 

 

 

 標識符


 

    在程序中自定義的一些名稱。       由26個英文字母大小寫,數字:0-9 符號:_ $ 組成     定義合法標識符規則:

1,數字不可以開頭。

2,不可以使用關鍵字。

Java中嚴格區分大小寫。   注意:在起名字的時,為了提高閱讀性,要盡量有意義。  

Java中的名稱規范:

包名:多單詞組成時所有字母都小寫。   •xxxyyyzzz   類名接口名:多單詞組成時,所有單詞的首字母大寫。   •XxxYyyZzz   變量名和函數名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫。    •xxxYyyZzz   常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接。   •XXX_YYY_ZZZ        注釋

 

用於注解說明解釋程序的文字就是注釋。   提高了代碼的閱讀性。   Java中的注釋格式:   •單行注釋   •格式: //注釋文字   •多行注釋   •格式: /*  注釋文字  */   •文檔注釋   •格式:/** 注釋文字 */

 


 

 

對於單行和多行注釋,被注釋的文字,不會被JVM(java虛擬機)解釋執行   對於文檔注釋,是java特有的注釋,其中注釋內容可以被JDK提供的工具 javadoc 所解析,生成一套以網頁文件形式體現的該程序的說明文檔。

 

注釋是一個程序員必須要具有的良好編程習慣。   初學者編寫程序可以養成習慣:先寫注釋再寫代碼。   將自己的思想通過注釋先整理出來,在用代碼去體現。   因為代碼僅僅是思想的一種體現形式而已。       常量與變量
  常量表示不能改變的數值。   Java中常量的分類:

1,整數常量。所有整數

2,小數常量。所有小數

3,布爾(boolean)型常量。較為特有,只有兩個數值。true false。

4,字符常量。將一個數字字母或者符號用單引號( ' ' )標識。

5,字符串常量。將一個或者多個字符用雙引號(“ ”)標識。

6,null常量。只有一個數值就是:null.

對於整數:有四種表現形式。   •二進制:0,1 ,滿2進1.   •八進制:0-7 ,滿8進1. 用0開頭表示。   •十進制:0-9 ,滿10進1.   •十六進制:0-9,A-F,滿16進1. 用0x開頭表示。  
  進制的基本轉換   •十進制  二進制 互轉   •十進制轉成二進制  除以2取余數   •二進制轉成十進制  乘以2的冪數   •十進制 八進制 互轉   •十進制 十六進制 互轉   •負數的二進制表現形式     對應的正數二進制取反加1

 


 

變量的概念:   •內存中的一個存儲區域   •該區域有自己的名稱(變量名)和類型(數據類型)   •該區域的數據可以在同一類型范圍內不斷變化   為什麼要定義變量:   •用來不斷的存放同一類型的常量,並可以重復使用   使用變量注意:   •變量的作用范圍(一對{}之間有效)    •初始化值   定義變量的格式:   •數據類型    變量名  =  初始化值;   •注:格式是固定的,記住格式,以不變應萬變。   理解:變量就如同數學中的未知數。     變量字節大小及有效取值范圍
byte占用一個字節,數字大小為-27—27-1   short占用兩個字節,數字大小為-215—215-1   int占用四個字節,數字大小為-231—231-1   long占用八個字節,數字大小為-263—263-1   float占用四個字節,數字大小為1.4E-45~3.4E+38 , -1.4E-45~-3.4E+38 。     用二進制的指數形式表示一個浮點數的格式,如:101*22  , 101*2-3   double占用八個字節,數字大小為4.9E-324~1.7E+308, -4.9E-324~-1.7E+308 。   char占兩個字節,數字大小為0———216-1,是unicode編碼。     字符的本來面目,我們為什麼可以直接將一個數字賦給字符變量。   Boolean占一個字節,其取值只有兩個,true和false。            
 

Java語言是強類型語言,對於每一種數據都定義了明確的具體數據類型,在內存總分配了不同大小的內存空間

 

 

整數默認:int    小數默認:double

 


 

  自動類型轉換(也叫隱式類型轉換)    強制類型轉換(也叫顯式類型轉換)   類型轉換的原理   什麼時候要用強制類型轉換?   表達式的數據類型自動提升   •所有的byte型、short型和char的值將被提升到int型。   •如果一個操作數是long型,計算結果就是long型;   •如果一個操作數是float型,計算結果就是float型;   •如果一個操作數是double型,計算結果就是double型。

 

自動類型提升

byte b = 3;

int x = 4;

x = x + b;//b會自動提升為int類型進行運算。

 

強制類型轉換

byte b = 3;

b = b + 4;//報錯

b = (byte)b+4;//強制類型轉換,強制將b+4的結果轉換為byte類型,再賦值給b。

  算術運算符
      算術運算符的注意問題   •如果對負數取模,可以把模數負號忽略不記,如:5%-2=1。但被模數是負數就另當別論。   •對於除號“/”,它的整數除和小數除是有區別的:整數之間做除法時,只保留整數部分而捨棄小數部分。     •“+”除字符串相加功能外,還能把非字符串轉換成字符串      賦值運算符

 

符號:

  = , +=, -=, *=, /=, %=

示例:

  int a,b,c;  a=b=c =3;

  int a = 3;   a+=5;等同運算a=a+5;

 

 

思考:

  short s = 3;

s=s+2;

s+=2;    

有什麼區別?     

 

s=s+2//編譯失敗,因為s會被提升為int類型,運算後的結果還是int類型。無法賦值給short類型。

s+=2//編譯通過,因為+=運算符在給s賦值時,自動完成了強轉操作。

 

比較運算符


 

 

注1:比較運算符的結果都是boolean型,也就是要麼是true,要麼是false。   注2:比較運算符“==”不能誤寫成“=” 。

 

邏輯運算符


 

 

 

 

邏輯運算符用於連接布爾型表達式,在Java中不可以寫成3<x<6,應該寫成x>3 & x<6 。     “&”和“&&”的區別:   •單&時,左邊無論真假,右邊都進行運算;   •雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那麼右邊不參與運算。

  “|”和“||”的區別同理,雙或時,左邊為真,右邊不參與運算。

異或( ^ )與或( | )的不同之處是:當左右都為true時,結果為false。       位運算符

 

位運算符

運算符

運算

范例

<<

左移

3 << 2 = 12 --> 3*2*2=12

>>

右移

3 >> 1 = 1  --> 3/2=1

>>>

無符號右移

3 >>> 1 = 1 --> 3/2=1

&

與運算

6 & 3 = 2

|

或運算

6 | 3 = 7

^

異或運算

6 ^ 3 = 5

~

反碼

~6 = -7

 

 位運算是直接對二進制進行運算

<<:相當於乘與2的倍數

>>:相當於除以2的倍數

移n位,就是對乘以或者除以2的n次冪。

位運算符的細節

<<

空位補0,被移除的高位丟棄,空缺位補0。

>>

被移位的二進制最高位是0,右移後,空缺位補0;

最高位是1,空缺位補1。

>>>

被移位二進制最高位無論是0或者是1,空缺位都用0補。

&

二進制位進行&運算,只有1&1時結果是1,否則是0;

|

二進制位進行 | 運算,只有0 | 0時結果是0,否則是1;

^

相同二進制位進行 ^ 運算,結果是0;1^1=0 , 0^0=0

不相同二進制位 ^ 運算結果是1。1^0=1 , 0^1=1

 

 

技巧:二進制1就是true,0就是false。


 

1.最有效率的方式算出2乘以8等於幾?

2*8

     0001

* 1000

  --------

   10000 

2.對兩個整數變量的值進行互換(不需要第三方變量)

 

三元運算符


 

 

格式

 

•(條件表達式)?表達式1:表達式2;

 

•如果條件為true,運算後的結果是表達式1;

 

•如果條件為false,運算後的結果是表達式2;

 

示例:

 

•獲取兩個數中大數。

 

•int x=3,y=4,z;

 

•z = (x>y)?x:y;//z變量存儲的就是兩個數的大數。     程序流程控制

 

判斷結構

 

if語句

 

三種格式:

 

1.if(true)

  {

  執行語句;

  }

 

2.if(條件表達式)

  {

  執行語句;

  }

  else

  {

  執行語句;

  }

 

3.if(條件表達式)

  {

  執行語句;

  }

  else if (條件表達式)

  {

  執行語句;

  }

  ……

  else

  {

  執行語句;

  }

 

if語句特點:

  a,每一種格式都是單條語句。

  b,第二種格式與三元運算符的區別:三元運算符運算完要有值出現。好處是:可以寫在其他表達式中。

  c,條件表達式無論寫成什麼樣子,只看最終的結構是否是true 或者 false;

 


 

 選擇結構

 

switch語句

格式:

switch(表達式)

{

  case 取值1:

  執行語句;

  break;

  case 取值2:

  執行語句;

  break;

  …...

  default:

  執行語句;

  break;

}

 

switch語句特點:

      a, switch語句選擇的類型只有四種:byte,short,int , char。

    b, case之間與default沒有順序。先執行第一個case,沒有匹配的case執行default。

    c, 結束switch語句的兩種情況:    遇到break,執行到switch語句結束。

      d, 如果匹配的case或者default沒有對應的break,那麼程序會繼續向下執行,運行可以執行的語句,直到遇到break或者switch結尾結束。


 

循環結構

 

代表語句:while , do while , for

 

 

while語句格式:

 

while(條件表達式)

 

{

 

  執行語句;

 

}

 

 

do while語句格式:

do

{

  執行語句;

}while(條件表達式);

 

do while特點:

是條件無論是否滿足,

循環體至少執行一次。

 


格式:

for(初始化表達式;循環條件表達式;循環後的操作表達式)

{

  執行語句;(循環體)

}

注:

     a, for裡面的兩個表達式運行的順序,初始化表達式只讀一次,判斷循環條件,為真就執行循環體,

    然後再執行循環後的操作表達式,接著繼續判斷循環條件,重復找個過程,直到條件不滿足為止。

     b, while與for可以互換,區別在於for為了循環而定義的變量在for循環結束時就在內存中釋放。

    而while循環使用的變量在循環結束後還可以繼續使用。

     c, 最簡單無限循環格式:while(true) , for(;;),無限循環存在的原因是並不知道循環多少次,而是根據某些條件,來控制循環。

 


其他流程控制語句

 

break(跳出),  continue(繼續)

break語句:應用范圍:選擇結構和循環結構。

continue語句:應用於循環結構。

注:

a,這兩個語句離開應用范圍,存在是沒有意義的。

b,這個兩個語句單獨存在下面都不可以有語句,因為執行不到。

c,continue語句是結束本次循環繼續下次循環。

d,標號的出現,可以讓這兩個語句作用於指定的范圍。

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved