Java基礎之類型與運算

1、常量:故名思意,就是在整個程序中不會改變的量值

注意:boolean類型也是常量,它只有兩個值(true,false)。

2、變量:用來存儲數據的存儲空間,它沒有固定的值,可以重復使用,用來存儲一某一類常量。當變量確定了數據類型時,它就只能存儲這一個類型的常量。

? ? ? 特點:1、在內存中有自己的一片存儲空間

? ? ? ? ? ? ? ? 2、可以重復使用

? ? ? ? ? ? ? ? 3、有自己特有的名稱(變量名)和數據類型

? ? ? ? ? ? ? ? 4、沒有固定的數據,可以不斷改變

? ? ? ? 定義變量:(格式都是固定的)

? ? ? ? 第一種方法:

? ? ? ? ? ? ? ? ? ? ? 數據類型變量名;

? ? ? ? ? ? ? ? ? ? ? 變量名=數值;

? ? ? ?第二種方法:(推薦)

? ? ? ? ? ? ? ? ? ? ? ? 數據類型變量名=數值;

? ? ? 注意:為了提高代碼的可閱讀性,要避免多個變量一起定義

? ? ?分類:全局變量和局部變量

? ? ? ? ? ? ? 全局變量:(成員變量)定義在方法體之外,類體之內的變量

局部變量:除去全局變量,都是局部變量

變量作用域:

? ? ? ? ?1、指變量的存在范圍,只有在這個范圍內,程序代碼才能訪問它。當一個變量被定義時,它的作用域就確定了:

? ? ? ? ?2、作用域是定義開始到定義所在結構體結束就不再有作用了(final,static定義的變量除外)

? ? ? ? 3、當方法體中定義的變量(局部變量)與它所在的類中定義的變量(成員變量)(方法體外)名稱相同時,方法中調用這個變量,會覆蓋掉成員變量選擇調用局部變量。

? ? ? ?4、Main方法中無法調用他所在的類的非靜態方法。

變量的使用規則:

? ? ? 1、 ?應該在使用變量之前定義變量

System.out.println("d="+d);

int d = 3;

VarDemo.java:33:錯誤:找不到符號

System.out.println("d="+d);

已經存在這個變量

int b = 3;

int b = 3;

VarDemo.java:40:錯誤:已在方法main(String[])中定義了變量b

必須聲明變量數據類型才可以使用變量

d = 23; ? VarDemo.java:48:錯誤:找不到符號

? ? 2、數據類型:

可以分為基本數據類型(原生數據類型)和引用數據類型(對象數據類型)

基本數據類型有八種可分為:

整數型:byte(1個字節)、short(2個字節)、int(4個字節)、long(8個字節)

浮點型:float(4個字節)、double(8個字節)

布爾類型(常數):boolean(1位)(true,false)

字符型:char(2個字節)

最常用的引用數據類型:(String)

字符串類型的數據與任意的數據相加最終的數據類型一定是字符串數據類型

System.out.println(12+23+"努力學好");

//結果為:35努力學好

System.out.println(12+"我要學好JAVA"+34);

//結果為:12我要學好JAVA34

String str = 23+"我要學好JAVA";

str = (String)12 + "我要學好JAVA";

不可以強制轉換為String類型

//StringDemo.java:15:錯誤:不可轉換的類型

4、基本數據類型轉換

1、自動數據類型轉換(boolean不參與數據類型轉換,因為它不是數值類型)

將范圍小的數據類型轉換成范圍大的數據類型

注意:byte、char、short之間是不可以轉換的并且在定義他們是系統會

自動的對他們進行強制轉換(在沒有溢出的范圍之內)

2、強制數據類型轉換

格式:范圍小的變量=(范圍小變量對應的數據類型)范圍大的變量;

將范圍大的數據類型強制轉換成范圍小的數據類型

注意此過程可能會是數據的精度有所降低或者出現溢出的現象

3、表達式類型的自動提升

在表達式中計算時所有的byte、short、char變量都會自動提升為int型的。

兩個變量在表達式中做運算是,如果兩個變量的數據類型不一樣,那么表達式就會自動提升那個范圍小的變量,使它與那個范圍大的變量范圍相同也就是說提升到相同的數據類型且為那個范圍大變量的數據類型。

范圍大小如下:byte、short、char-->int -->long --> float --> double

5、運算符

++和--

++在前是先對右邊的表達式進行處理然后再將值賦給左邊的變量

++在后是先對右邊的表達式進行處理然后再將處理之前的數值賦值給變量

--同理

如題:

int sum = 4;

sum = sum++;

System.out.println(sum); ? ?//輸出結果為:4

sum = ++sum;

System.out.println(sum);//輸出結果為: 5

sum++;

System.out.println(sum);//輸出結果為: 6

++sum;

System.out.println(sum);//輸出結果為: 7

int a = sum++;

System.out.println(a);//輸出結果為: 7

System.out.println(sum);//輸出結果為: 8

a = ++sum;

System.out.println(a);//輸出結果為: 9

System.out.println(sum);//輸出結果為: 9

6、賦值運算符 (推薦單一賦值,不推薦多個變量一起賦值)

例如:

int sum = 3;

sum +=4;//等價于sum = sum + 3;

System.out.println(sum);//結果為:7

7、比較運算符

用于比較兩個變量或常量之間的關系,比較運算符的結果是boolean類型,其操作格式為:

boolean ?result =表達式A比較運算符 ? 表達式B;

==:等于,若比較的是兩個操作數都是數值類型,即使他們的類型不同,只要值相同就返回true。

8、三目運算符

格式:比較運算的表達式?返回結果1:返回結果2

首先先判定表達式的真假,如果為真返回結果1否則返回結果2

例:int e = 4<5?4:5; ? //利用三目運算符找出兩個數中較小的一個

System.out.println(e); ?//結果為:4

9、邏輯運算符

語法格式為:boolean ?result =表達式A邏輯運算符 ? 表達式B;

^:判斷A和B是否不同,不同則為true,相同則為false。

!:取反,!true結果是false,!fasle結果是true

兩組運算符的異同

&與&&和|與||一樣,下面就以&與&&為例

相同:都可以用來進行邏輯運算,而且計算的結果都是相同的。

不同:&的運算是必須將所有的表達式判斷完然后在運算的而&&的運算時只要前面的表達式可以判斷它的真假將就不再進行下去直接輸出結果。

例:

System.out.println(false&0<(0/0));

//Exception in thread "main" java.lang.ArithmeticException: / by zero,說明在執行0<(0/0)時出現了異常

System.out.println(false&&0<0/0);

//結果為:false

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,737評論 18 399
  • Java經典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子...
    趙宇_阿特奇閱讀 1,894評論 0 2
  • 第一章 初識javaJAVA 第一講:什么是程序?:為了讓計算機執行某些操作或解決某個問題而編寫的一系列有序指令的...
    人子日月幾點閱讀 543評論 0 1
  • 1 順序語句 語句:使用分號分隔的代碼稱作為一個語句。 注意:沒有寫任何代碼只是一個分號的時候,也是一條語句,...
    哈哈哎呦喂閱讀 399評論 0 0
  • “小周,幫我把這個文件打印一下。” “小周,幫我把這個方案改改。” “小周,幫我……” 初入職的小周皺著眉頭,極不...
    想飛的蝸牛閱讀 323評論 0 0