最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java數(shù)據(jù)類型和運算符的深入講解

 更新時間:2021年03月20日 15:11:10   作者:flyyyya  
這篇文章主要給大家介紹了關(guān)于java數(shù)據(jù)類型和運算符的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一.整型變量

1.基本格式

int 變量名 = 初始值;

代碼示例:

public class CSDN {
	public static void main(String[] args) {
		int a=10;
		System.out.println(a);
	}
}

2.java中的int是4個字節(jié)。

3.java中int的最大值和最小值

如果數(shù)大于0,則最高位為0,如果數(shù)小于0,則最高位為1。在判斷數(shù)值范圍時,不用考慮負數(shù)采用補碼形式存儲,因為補碼和原碼是一一對應(yīng)的。當最高位是1,即為負數(shù),后面最多還有31個1,而這31個1的加值之和為2的31次方-1,而負數(shù)最高位也為1,該位在再次進位時仍滿足負數(shù)的條件,即可將最高位看成數(shù)值位,故最小值為-2的31次方,最大值整數(shù)最高位必須一值為1,且原碼等于補碼,這就限制了整數(shù)的最大值31位的1相加,之和為2^31-1。

 public class CSDN{
 	public static void main(String[] args) {
 		int a = 10;
 		System.out.println(Integer.MAX.VALUE);
 		System.out.println(Integer.MIN.VALUE);
 	}
 }

4.如果一個局部變量,沒有進行初始化則不能使用他。

標識符可以包含:數(shù)字 字母 下劃線 符 , 但 開 頭 不 能 用 數(shù) 字 , 不 建 議 用 下 劃 線 和 符,但開頭不能用數(shù)字,不建議用下劃線和 符,但開頭不能用數(shù)字,不建議用下劃線和.

二. 長整型變量

定義一個長整型,數(shù)字后面必須加L

	public static void main(String[] args) {
 		Long a = 10L;
 		System.out.println(a);
 	}

java與c語言不同,沒有所謂的無符號,Long有8個字節(jié),64個比特位,首位是符號位。
如果想打印漢字的話用加號拼接。

 	public static void main(String[] args) {
 		Long a = 10L;
 		System.out.println(a);
  System.out.println("a的值是:"+a);//打印漢字用引號括起來然后用加號拼接

任何類型的數(shù)據(jù)和字符串進行拼接,結(jié)果就是字符串。

三.雙精度浮點類型

 	public static void main(String[] args) {
 		//雙精度浮點型
 		double d = 12.5;
 		System.out.println(d);
 	}

小數(shù)默認為雙精度類型。

public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.println(a / b);
}
//輸出結(jié)果是0

因為a和b都是整型,所以打印的也是整型,不能保存小數(shù)。

public static void main(String[] args) {,
double num = 1.1;
System.out.println(num * num)
// 執(zhí)行結(jié)果=1.2100000000000002
}

任何的小數(shù)都是有精度的,沒有精確值,只有一個范圍,要研究這個問題需要了解浮點數(shù)在內(nèi)存中的存儲。
一般情況下,遇到小數(shù),建議使用double

四.單精度的浮點類型

float是4個字節(jié),不能把double類型放在float類型里,會編譯錯誤,需要在小數(shù)后面加個f,體現(xiàn)了Java的安全。

	public static void main(String[] args) {
 		float f = 12.3;
 		System.out.println(f);
 	}

五.字符數(shù)據(jù)類型

在java中char占兩個字節(jié),在c語言中是占一個字節(jié)的。

 	public static void main(String[] args) {
 		char ch = 'a';
 		System.out.println(ch);
 		char ch2 = 97;
 		System.out.println(ch2);
 	}

在java中遵循unicode字符集類似于c語言中的asii值,但unicode表示字符的范圍更廣了。

六.字節(jié)類型

注意事項:

  1. 字節(jié)類型表示的也是整數(shù). 只占一個字節(jié), 表示范圍較小 ( -128 -> +127 )
  2. 字節(jié)類型和字符類型互不相干。
	public static void main(String[] args) {
 		byte b = 12;
 		byte c = 21;
 		System.out.println(b+" "+c);
 	}

每一種數(shù)據(jù)類型在賦值的時候不能超過其范圍,否則會報錯。

七.短整型

short是兩個字節(jié),取值范圍是-32768到32767.

這個表示范圍較小,一般不建議使用。

	public static void main(String[] args) {
 		short sh = 12;
 		System.out.println(sh);
 	}

八.布爾類型

布爾類型:

1.在java中,布爾類型沒有明確的大小。

2.在java中,布爾類型只有兩個取值,true和false。

3.在java中,沒有所謂的0是假,非0是真。

	public static void main(String[] args) {
    boolean flag = true;
    System.out.println(flg); 
 	}

總結(jié):

java中8種基本的數(shù)據(jù)類型分別是一下的:

1 2 2 4 8 4 8

byte char short int long float double boolean

Byte Character Short Integer Long Float Double Boolean

字符串類型變量

字符串類型用String進行定義

注意事項:

  1. Java 使用 雙引號 + 若干字符 的方式表示字符串字面值.
  2. 和上面的類型不同, String 不是基本類型, 而是引用類型(后面重點解釋).
  3. 字符串中的一些特定的不太方便直接表示的字符需要進行轉(zhuǎn)義.

字符串的 + 操作, 表示字符串拼接:

String a = "hello"; 
String b = "world"; 
String c = a + b; 
System.out.println(c);

以上代碼說明, 當一個 + 表達式中存在字符串的時候, 都是執(zhí)行字符串拼接行為.

因此我們可以很方便的使用 System.out.println 同時打印多個字符串或數(shù)字。

理解數(shù)值提升

int 和 long 混合運算

int a = 10; 
long b = 20; 
int c = a + b; // 編譯出錯, 提示將 long 轉(zhuǎn)成 int 會丟失精度
long d = a + b; // 編譯通過

結(jié)論: 當 int 和 long 混合運算的時候, int 會提升成 long, 得到的結(jié)果仍然是 long 類型, 需要使用 long 類型的變量來
接收結(jié)果. 如果非要用 int 來接收結(jié)果, 就需要使用強制類型轉(zhuǎn)換.

byte 和 byte 的運算

byte a = 10; 
byte b = 20; 
byte c = a + b; 
System.out.println(c); 
// 編譯報錯
Test.java:5: 錯誤: 不兼容的類型: 從int轉(zhuǎn)換到byte可能會有損失
 byte c = a + b; 

結(jié)論: byte 和 byte 都是相同類型, 但是出現(xiàn)編譯報錯. 原因是, 雖然 a 和 b 都是 byte, 但是計算 a + b 會先將 a 和 b 都提升成 int, 再進行計算, 得到的結(jié)果也是 int, 這是賦給 c, 就會出現(xiàn)上述錯誤。

由于計算機的 CPU 通常是按照 4 個字節(jié)為單位從內(nèi)存中讀寫數(shù)據(jù). 為了硬件上實現(xiàn)方便, 諸如 byte 和 short 這種低于4 個字節(jié)的類型, 會先提升成 int, 再參與計算。

類型提升小結(jié):

  1. 不同類型的數(shù)據(jù)混合運算, 范圍小的會提升成范圍大的.
  2. 對于 short, byte 這種比 4 個字節(jié)小的類型, 會先提升成 4 個字節(jié)的 int , 再運算.

int 和 String 之間的相互轉(zhuǎn)換

int 轉(zhuǎn)成 String

int num = 10; 
// 方法1 
String str1 = num + ""; 
// 方法2 
String str2 = String.valueOf(num);

String 轉(zhuǎn)成 int

String str = "100"; 
int num = Integer.parseInt(str);

運算符

1.基本四則運算符 + - * / %

規(guī)則比較簡單,值得注意的是除法

a) int / int 結(jié)果還是 int, 需要使用 double 來計算

b) 0 不能作為除數(shù)

2.關(guān)系運算符返回類型都是boolean類型。

3.移位運算符

左移 <<: 最左側(cè)位不要了, 最右側(cè)補 0。

右移 >>: 最右側(cè)位不要了, 最左側(cè)補符號位(正數(shù)補0, 負數(shù)補1)

注意:

  1. 左移 1 位, 相當于原數(shù)字 * 2. 左移 N 位, 相當于原數(shù)字 * 2 的N次方.
  2. 右移 1 位, 相當于原數(shù)字 / 2. 右移 N 位, 相當于原數(shù)字 / 2 的N次方.
  3. 由于計算機計算移位效率高于計算乘除, 當某個代碼正好乘除 2 的N次方的時候可以用移位運算代替.
  4. 移動負數(shù)位或者移位位數(shù)過大都沒有意義。

總結(jié)

到此這篇關(guān)于java數(shù)據(jù)類型和運算符的文章就介紹到這了,更多相關(guān)java數(shù)據(jù)類型和運算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 異步編程實踐_動力節(jié)點Java學院整理

    Java 異步編程實踐_動力節(jié)點Java學院整理

    異步編程提供了一個非阻塞的,事件驅(qū)動的編程模型。下面通過本文給大家介紹Java 異步編程實踐,感興趣的的朋友一起看看吧
    2017-05-05
  • SpringBoot入口類和@SpringBootApplication講解

    SpringBoot入口類和@SpringBootApplication講解

    這篇文章主要介紹了SpringBoot入口類和@SpringBootApplication講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • nacos配置在代碼中引用的方法講解

    nacos配置在代碼中引用的方法講解

    這篇文章主要介紹了nacos配置在代碼中如何引用,如果主配置中配置的內(nèi)容和拓展配置的內(nèi)容重復則按主配置的配置 ,如果拓展配置中的內(nèi)容和另一個拓展配置中的內(nèi)容重復,則按下標大的配置作為最終的配置,對nacos配置代碼引用相關(guān)知識感興趣朋友一起看看吧
    2022-12-12
  • JUC系列學習工具類CountDownLatch詳解

    JUC系列學習工具類CountDownLatch詳解

    這篇文章主要介紹了JUC系列學習工具類CountDownLatch詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可任意參考一下
    2022-08-08
  • Spring Cloud Gateway的配置與使用教程

    Spring Cloud Gateway的配置與使用教程

    這篇文章主要介紹了Spring Cloud Gateway的配置與使用,通過本文的介紹,我們了解了Spring Cloud Gateway的核心概念和基本配置,需要的朋友可以參考下
    2023-06-06
  • SpringBoot從Nacos讀取MySQL數(shù)據(jù)庫配置錯誤:Public Key Retrieval is not allowed的解決方案

    SpringBoot從Nacos讀取MySQL數(shù)據(jù)庫配置錯誤:Public Key Retrieva

    最近的項目,突然都從MySQL5.7升級到8.0了,有些項目能運行成功,有些項目遇到了問題,啟動不成功,顯示數(shù)據(jù)庫方面的異常信息,本文給大家介紹了SpringBoot從Nacos讀取MySQL數(shù)據(jù)庫配置錯誤:Public Key Retrieval is not allowed的解決方案,需要的朋友可以參考下
    2024-04-04
  • java獲取反射機制的3種方法總結(jié)

    java獲取反射機制的3種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于java獲取反射機制的3種方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • java面向?qū)ο笾畬W生信息管理系統(tǒng)

    java面向?qū)ο笾畬W生信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java面向?qū)ο笾畬W生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • java秒殺之redis限流操作詳解

    java秒殺之redis限流操作詳解

    這篇文章主要為大家詳細介紹了java秒殺之redis限流操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 解決執(zhí)行Junit單元測試報錯java.lang.ClassNotFoundException問題

    解決執(zhí)行Junit單元測試報錯java.lang.ClassNotFoundException問題

    這篇文章主要介紹了解決執(zhí)行Junit單元測試報錯java.lang.ClassNotFoundException問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論

昌平区| 全南县| 绿春县| 吉木萨尔县| 额尔古纳市| 福清市| 丰原市| 东山县| 文成县| 鹰潭市| 桂东县| 博兴县| 基隆市| 醴陵市| 台湾省| 民权县| 高碑店市| 平谷区| 泽普县| 新绛县| 卓资县| 邹城市| 托克逊县| 鄢陵县| 门头沟区| 色达县| 福泉市| 仁化县| 武宣县| 玉环县| 施秉县| 故城县| 保靖县| 临安市| 金川县| 连城县| 和静县| 亚东县| 巩留县| 泰安市| 广宗县|