日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java自我学习第三章基础数据类型

發(fā)布時(shí)間:2024/3/26 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java自我学习第三章基础数据类型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Java的基本數(shù)據(jù)類型(掌握)

1、整型系列

(1)byte:字節(jié)類型

占內(nèi)存:1個(gè)字節(jié)

存儲(chǔ)范圍:-128~127

(2)short:短整型類型

占內(nèi)存:2個(gè)字節(jié)

存儲(chǔ)范圍:-32768~32767

(3)int:整型

占內(nèi)存:4個(gè)字節(jié)

存儲(chǔ)范圍:-2的31次方 ~ 2的31次方-1

(4)long:整型

占內(nèi)存:8個(gè)字節(jié)

存儲(chǔ)范圍:-2的63次方 ~ 2的63次方-1

注意:如果要表示某個(gè)常量數(shù)字它是long類型,那么需要在數(shù)字后面加L

byte b = 127; //右邊的整數(shù)必須在-128~127范圍內(nèi) long num = 1234567; //右邊的整數(shù)如果在int范圍呢,編譯和運(yùn)行都可以通過 long bigNum = 12345678912L;//右邊的整數(shù)如果超過int范圍,必須加L,否則編譯不通過

2、浮點(diǎn)型系列(小數(shù))

(1)float:單精度浮點(diǎn)型

占內(nèi)存:4個(gè)字節(jié)

精度:科學(xué)記數(shù)法的小數(shù)點(diǎn)后6~7位

注意:如果要表示某個(gè)常量數(shù)字是float類型,那么需要在數(shù)字后面加F或f

(2)double:雙精度浮點(diǎn)型

占內(nèi)存:8個(gè)字節(jié)

精度:科學(xué)記數(shù)法的小數(shù)點(diǎn)后15~16位

float f = 12.0F;//右邊如果賦值小數(shù),那么必須加F或f

3、單字符類型

char:字符類型

占內(nèi)存:2個(gè)字節(jié)

Java中使用的字符集:Unicode編碼集

字符常量的三種表示方式:

(1)'一個(gè)字符'

例如:'A','0','尚'

(2)轉(zhuǎn)義字符

\n:換行 \r:回車 \t:Tab鍵 \\:\ \":" \':' \b:刪除鍵Backspace

(3)\u字符的Unicode編碼值的十六進(jìn)制型

例如:\u5c1a代表'尚'

char c = '尚';String s = '尚';//錯(cuò)誤的,哪怕是一個(gè)字符,也要使用雙引號(hào)char c2 = '';//錯(cuò)誤,單引號(hào)中有且只能有一個(gè)字符String s2 = "";//可以,雙引號(hào)中可以沒有其他字符,表示是空字符串

(4)直接給char類型變量賦值十進(jìn)制的0~65535之間的Unicode編碼值

例如:'a'的編碼值是97

char c2 = 97; System.out.println(c2);//a

在計(jì)算機(jī)的內(nèi)部都是二進(jìn)制的0、1數(shù)據(jù),如何讓計(jì)算機(jī)可以直接識(shí)別人類文字的問題呢?就產(chǎn)生出了編碼表的概念。

  • 編碼表 :就是將人類的文字和一個(gè)十進(jìn)制數(shù)進(jìn)行對(duì)應(yīng)起來組成一張表格。例如:

字符數(shù)值
148
A65
a95
  • 將所有的英文字母,數(shù)字,符號(hào)都和十進(jìn)制進(jìn)行了對(duì)應(yīng),因此產(chǎn)生了世界上第一張編碼表ASCII(American Standard Code for Information Interchange 美國(guó)標(biāo)準(zhǔn)信息交換碼)。

  • Unicode(統(tǒng)一碼、萬國(guó)碼、單一碼)是計(jì)算機(jī)科學(xué)領(lǐng)域里的一項(xiàng)業(yè)界標(biāo)準(zhǔn),包括字符集、編碼方案等。Unicode 是為了解決傳統(tǒng)的字符編碼方案的局限而產(chǎn)生的,它為每種語言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,以滿足跨語言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換、處理的要求。

  • 4、布爾類型

    boolean:只能存儲(chǔ)true或false

    進(jìn)制(了解)

  • 1、進(jìn)制的分類:

    (1)十進(jìn)制

    數(shù)字組成:0-9

    進(jìn)位規(guī)則:逢十進(jìn)一

    (2)二進(jìn)制

    數(shù)字組成:0-1

    進(jìn)位規(guī)則:逢二進(jìn)一

    (3)八進(jìn)制

    數(shù)字組成:0-7

    進(jìn)位規(guī)則:逢八進(jìn)一

    (4)十六進(jìn)制

    數(shù)字組成:0-9,a~f(或A~F)

    進(jìn)位規(guī)則:逢十六進(jìn)一

    2、請(qǐng)分別用四種類型的進(jìn)制來表示10,并輸出它的結(jié)果:(了解)

    (1)十進(jìn)制:正常表示

    System.out.println(10);

    (2)二進(jìn)制:0b或0B開頭

    System.out.println(0B10);

    (3)八進(jìn)制:0開頭

    System.out.println(010);

    (4)十六進(jìn)制:0x或0X開頭

    System.out.println(0X10);

    3、進(jìn)制轉(zhuǎn)換

  • 十進(jìn)制數(shù)據(jù)轉(zhuǎn)成二進(jìn)制數(shù)據(jù):使用除以2獲取余數(shù)的方式

  • 二進(jìn)制數(shù)據(jù)轉(zhuǎn)成十進(jìn)制數(shù)據(jù):

    1011111
    6432168421

    把64+32+16+8+4+2+1=75

  • 字節(jié)(Byte):是計(jì)算機(jī)信息技術(shù)用于計(jì)量存儲(chǔ)容量的一種計(jì)量單位,通常情況下一字節(jié)等于有八位, 也表示一些計(jì)算機(jī)編程語言中的數(shù)據(jù)類型和語言字符。

  • 位(bit):是數(shù)據(jù)存儲(chǔ)的最小單位。也就是二進(jìn)制。二進(jìn)制數(shù)系統(tǒng)中,每個(gè)0或1就是一個(gè)位,叫做bit(比特),其中8 bit 就稱為一個(gè)字節(jié)(Byte)。

  • 轉(zhuǎn)換關(guān)系:

    • 8 bit = 1 Byte

    • 1024 Byte = 1 KB

    • 1024 KB = 1 MB

    • 1024 MB = 1 GB

    • 1024 GB = 1 TB

4、為什么byte是-128~127?(理解)

1個(gè)字節(jié):8位

0000 0001 ~ 0111 111 ==> 1~127

1000 0001 ~ 1111 1111 ==> -127 ~ -1

0000 0000 ==>0

1000 0000 ==> -128(特殊規(guī)定)

解釋:計(jì)算機(jī)數(shù)據(jù)的存儲(chǔ)(了解)

計(jì)算機(jī)數(shù)據(jù)的存儲(chǔ)使用二進(jìn)制補(bǔ)碼形式存儲(chǔ),并且最高位是符號(hào)位,1是負(fù)數(shù),0是正數(shù)。

規(guī)定:正數(shù)的補(bǔ)碼與反碼、原碼一樣,稱為三碼合一;

負(fù)數(shù)的補(bǔ)碼與反碼、原碼不一樣:

負(fù)數(shù)的原碼:把十進(jìn)制轉(zhuǎn)為二進(jìn)制,然后最高位設(shè)置為1

負(fù)數(shù)的反碼:在原碼的基礎(chǔ)上,最高位不變,其余位取反(0變1,1變0)

負(fù)數(shù)的補(bǔ)碼:反碼+1

例如:byte類型(1個(gè)字節(jié),8位)

25 ==> 原碼 0001 1001 ==> 反碼 0001 1001 -->補(bǔ)碼 0001 1001

-25 ==>原碼 1001 1001 ==> 反碼1110 0110 ==>補(bǔ)碼 1110 0111

底層是用加法代替減法:-128==》-127-1==》-127+(-1)

127- -1 ==> -127 + 1

基本數(shù)據(jù)類型轉(zhuǎn)換(Conversion)

在Java程序中,不同的基本數(shù)據(jù)類型的值經(jīng)常需要進(jìn)行相互轉(zhuǎn)換。Java語言所提供的七種數(shù)值類型之間可以相互轉(zhuǎn)換,基本數(shù)據(jù)類型轉(zhuǎn)換有兩種轉(zhuǎn)換方式:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。

1、自動(dòng)類型轉(zhuǎn)換(隱式類型轉(zhuǎn)換)

自動(dòng)轉(zhuǎn)換

  • 將取值范圍小的類型自動(dòng)提升為取值范圍大的類型 。

基本數(shù)據(jù)類型的轉(zhuǎn)換規(guī)則

(1)當(dāng)把存儲(chǔ)范圍小的值(常量值、變量的值、表達(dá)式計(jì)算的結(jié)果值)賦值給了存儲(chǔ)范圍大的變量時(shí), 會(huì)按照其中最大的類型運(yùn)算

int i = 'A';//char自動(dòng)升級(jí)為int
double d = 10;//int自動(dòng)升級(jí)為double

(2)當(dāng)存儲(chǔ)范圍小的數(shù)據(jù)類型與存儲(chǔ)范圍大的數(shù)據(jù)類型一起混合運(yùn)算時(shí),會(huì)按照其中最大的類型運(yùn)算

int i = 1;
byte b = 1;
double d = 1.0;

double sum = i + b + d;//混合運(yùn)算,升級(jí)為double

(3)當(dāng)byte,short,char數(shù)據(jù)類型進(jìn)行算術(shù)運(yùn)算時(shí),按照int類型處理

byte b1 = 1;
byte b2 = 2;
byte b3 = b1 + b2;//編譯報(bào)錯(cuò),b1 + b2自動(dòng)升級(jí)為int

char c1 = '0';
char c2 = 'A';
System.out.println(c1 + c2);//113?

(4)boolean類型不參與

? ? ? ? ?強(qiáng)制類型轉(zhuǎn)換(顯示類型轉(zhuǎn)換)

? ? ? ? ?將1.5 賦值到int 類型變量會(huì)發(fā)生什么?產(chǎn)生編譯失敗,肯定無法賦值

int i = 3.14; // 錯(cuò)誤

? ? ? ?想要賦值成功,只有通過強(qiáng)制類型轉(zhuǎn)換,將double 類型強(qiáng)制轉(zhuǎn)換成int 類型才能賦值。

  • 強(qiáng)制類型轉(zhuǎn)換:將取值范圍大的類型強(qiáng)制轉(zhuǎn)換成取值范圍小的類型。

? ? ? ?比較而言,自動(dòng)轉(zhuǎn)換是Java自動(dòng)執(zhí)行的,而強(qiáng)制轉(zhuǎn)換需要我們自己手動(dòng)執(zhí)行。

? ??轉(zhuǎn)換格式

? ? ? ? ?數(shù)據(jù)類型 變量名 = (數(shù)據(jù)類型)被強(qiáng)轉(zhuǎn)數(shù)據(jù)值;

(1)當(dāng)把存儲(chǔ)范圍大的值(常量值、變量的值、表達(dá)式計(jì)算的結(jié)果值)賦值給了存儲(chǔ)范圍小的變量時(shí),需要強(qiáng)制類型轉(zhuǎn)換,提示:有風(fēng)險(xiǎn),可能會(huì)損失精度或溢出

int i = (int)3.14;//強(qiáng)制類型轉(zhuǎn)換,損失精度

double d = 1.2;
int num = (int)d;//損失精度

int i = 200;
byte b = (byte)i;//溢出

?

(2)boolean類型不參與

(3)當(dāng)某個(gè)值想要提升數(shù)據(jù)類型時(shí),也可以使用強(qiáng)制類型轉(zhuǎn)換

int i = 1;
int j = 2;
double shang = (double)i/j;

提示:這個(gè)情況的強(qiáng)制類型轉(zhuǎn)換是沒有風(fēng)險(xiǎn)的。

特殊的數(shù)據(jù)類型轉(zhuǎn)換

1、任意數(shù)據(jù)類型的數(shù)據(jù)與String類型進(jìn)行“+”運(yùn)算時(shí),結(jié)果一定是String類型

System.out.println("" + 1 + 2);//12

2、但是String類型不能通過強(qiáng)制類型()轉(zhuǎn)換,轉(zhuǎn)為其他的類型

String str = "123";
int num = (int)str;//錯(cuò)誤的
int num = Integer.parseInt(str);//后面才能講到,借助包裝類的方法才能轉(zhuǎn)

運(yùn)算符(Operator)

表達(dá)式:用運(yùn)算符連接起來的式子

分類運(yùn)算符
算術(shù)運(yùn)算符+、-、*、/、%、++、--
賦值運(yùn)算符=、+=、-=、*=、/=、%=等
關(guān)系運(yùn)算符>、>=、<、<=、==、!=
邏輯運(yùn)算符&、|、^、!、&&、||
三元運(yùn)算符(關(guān)系表達(dá)式)?結(jié)果1:結(jié)果2;
位運(yùn)算符(了解)&、|、~、^、<<、>>、>>>

算術(shù)運(yùn)算符

算術(shù)運(yùn)算符符號(hào)解釋
+加法運(yùn)算,字符串連接運(yùn)算,正號(hào)
-減法運(yùn)算,負(fù)號(hào)
*乘法運(yùn)算
/除法運(yùn)算
%求余運(yùn)算,兩個(gè)數(shù)字相除的余數(shù)
++、--自增自減運(yùn)算

?

public class OperatorDemo01 {
?? ?public static void main(String[] args) {
?? ??? ?int a = 3;
?? ??? ?int b = 4;
?? ??? ?
?? ??? ?System.out.println(a + b);// 7
?? ??? ?System.out.println(a - b);// -1
?? ??? ?System.out.println(a * b);// 12
?? ??? ?System.out.println(a / b);// 計(jì)算機(jī)結(jié)果是0,為什么不是0.75呢?
?? ??? ?System.out.println(a % b);// 3
?? ?}
}

“+”號(hào)的兩種用法

  • 第一種:對(duì)于+兩邊都是數(shù)值的話,+就是加法的意思

  • 第二種:對(duì)于+兩邊至少有一邊是字符串得話,+就是拼接的意思

public class OperatorDemo02 {
?? ?public static void main(String[] args) {
?? ??? ?// 字符串類型的變量基本使用
?? ??? ?// 數(shù)據(jù)類型 變量名稱 = 數(shù)據(jù)值;
?? ??? ?String str1 = "Hello";
?? ??? ?System.out.println(str1); // Hello
?? ??? ?
?? ??? ?System.out.println("Hello" + "World"); // HelloWorld
?? ??? ?
?? ??? ?String str2 = "Java";
?? ??? ?// String + int --> String
?? ??? ?System.out.println(str2 + 520); // Java520
?? ??? ?// String + int + int
?? ??? ?// String?? ??? ?+ int
?? ??? ?// String
?? ??? ?System.out.println(str2 + 5 + 20); // Java520
?? ?}
}

?

自加自減運(yùn)算

理解:++ 運(yùn)算,變量自己的值加1。反之,-- 運(yùn)算,變量自己的值減少1,用法與++ 一致。

1、單獨(dú)使用

  • 變量在單獨(dú)運(yùn)算的時(shí)候,變量前++和變量后++,變量的是一樣的;

  • 變量前++ :例如 ++a 。

  • 變量后++ :例如 a++ 。

public class OperatorDemo3 {
?? ?public static void main(String[] args) {
?? ??? ?// 定義一個(gè)int類型的變量a
?? ??? ?int a = 3;
?? ??? ?//++a;
?? ??? ?a++;
? ? ? ? // 無論是變量前++還是變量后++,結(jié)果都是4
?? ??? ?System.out.println(a);
?? ?}
}

2、復(fù)合使用

  • 和其他變量放在一起使用或者和輸出語句放在一起使用,前++和后++就產(chǎn)生了不同。

  • 變量前++ :變量先自身加1,然后再將加1后的結(jié)果進(jìn)行其他使用。

  • 變量后++ :變量先拿去使用,然后再自身加1。

public class OperatorDemo03 {
?? ?public static void main(String[] args) {
?? ??? ?// 其他變量放在一起使用
?? ??? ?int x = 3;
?? ??? ?//int y = ++x; // y的值是4,x的值是4,
?? ??? ?int y = x++; // y的值是3,x的值是4
?? ??? ?
?? ??? ?System.out.println(x);
?? ??? ?System.out.println(y);
?? ??? ?System.out.println("==========");
? ? ? ??
?? ??? ?// 和輸出語句一起
?? ??? ?int z = 5;
?? ??? ?//System.out.println(++z);// 輸出結(jié)果是6,z的值也是6
?? ??? ?System.out.println(z++);// 輸出結(jié)果是5,z的值是6
?? ??? ?System.out.println(z);
? ? ? ??
? ? ? ? int a = 1;
? ? ? ? a = a++;//(1)先取a的值“1”放操作數(shù)棧(2)a再自增,a=2(3)再把操作數(shù)棧中的"1"賦值給a,a=1

? ? ? ? int i = 1;
? ? ? ? int j = i++ + ++i * i++;
? ? ? ? /*
? ? ? ? 從左往右加載
? ? ? ? (1)先算i++
? ? ? ? ①取i的值“1”放操作數(shù)棧
? ? ? ? ②i再自增 i=2
? ? ? ? (2)再算++i
? ? ? ? ①i先自增 i=3
? ? ? ? ②再取i的值“3”放操作數(shù)棧
? ? ? ? (3)再算i++
? ? ? ? ①取i的值“3”放操作數(shù)棧
? ? ? ? ②i再自增 i=4
? ? ? ? (4)先算乘法
? ? ? ? 用操作數(shù)棧中3 * 3 = 9,并把9壓會(huì)操作數(shù)棧
? ? ? ? (5)再算求和
? ? ? ? 用操作數(shù)棧中的 1 + 9 = 10
? ? ? ? (6)最后算賦值
? ? ? ? j = 10
? ? ? ? */
?? ?}?
}

小結(jié):

  • ++在前,先自加,后使用;

  • ++在后,先使用,后自加。

賦值運(yùn)算符

賦值運(yùn)算符號(hào)解釋
=將符號(hào)右邊的值,賦值給左邊的變量
+=將符號(hào)左邊的值右邊的值進(jìn)行相加操作,最后將結(jié)果賦值給左邊的變量
*=將符號(hào)左邊的值右邊的值進(jìn)行相乘操作,最后將結(jié)果賦值給左邊的變量
/=將符號(hào)左邊的值右邊的值進(jìn)行相除操作,最后將結(jié)果賦值給左邊的變量
%=將符號(hào)左邊的值右邊的值進(jìn)行取余操作,最后將結(jié)果賦值給左邊的變量
-=將符號(hào)左邊的值右邊的值進(jìn)行相減操作,最后將結(jié)果賦值給左邊的變量

int a = 3;
?? ??? ?int b = 4;
?? ??? ?b += a;// 相當(dāng)于 b = b + a ;?
?? ??? ?System.out.println(a); // 3
?? ??? ?System.out.println(b); // 4?? ?

? ? ? ? int a = 3;
?? ??? ?int b = 4;
?? ??? ?b += a;// 相當(dāng)于 b = b + a ;?
?? ??? ?System.out.println(a); // 3
?? ??? ?System.out.println(b); // 4?? ?
?? ??? ?
?? ??? ?short s = 3;
?? ??? ?// s = s + 4; 代碼編譯報(bào)錯(cuò),因?yàn)閷nt類型的結(jié)果賦值給short類型的變量s時(shí),可能損失精度
?? ??? ?s += 4; // 代碼沒有報(bào)錯(cuò)
? ? ? ? //因?yàn)樵诘玫絠nt類型的結(jié)果后,JVM自動(dòng)完成一步強(qiáng)制類型轉(zhuǎn)換,將int類型強(qiáng)轉(zhuǎn)成short
?? ??? ?System.out.println(s);
? ? ? ??
? ? ? ? int j = 1;
?? ??? ?j += ++j * j++;//相當(dāng)于 ?j = j + (++j * j++);
?? ??? ?System.out.println(j);//5

將最后的結(jié)果賦值給左邊的變量前,都做了一步強(qiáng)制類型轉(zhuǎn)換 .

關(guān)系運(yùn)算符(比較運(yùn)算符)

關(guān)系運(yùn)算符符號(hào)解釋
<比較符號(hào)左邊的數(shù)據(jù)是否小于右邊的數(shù)據(jù),如果小于結(jié)果是true。
>比較符號(hào)左邊的數(shù)據(jù)是否大于右邊的數(shù)據(jù),如果大于結(jié)果是true。
<=比較符號(hào)左邊的數(shù)據(jù)是否小于或者等于右邊的數(shù)據(jù),如果大于結(jié)果是false。
>=比較符號(hào)左邊的數(shù)據(jù)是否大于或者等于右邊的數(shù)據(jù),如果小于結(jié)果是false。
==比較符號(hào)兩邊數(shù)據(jù)是否相等,相等結(jié)果是true。
!=不等于符號(hào) ,如果符號(hào)兩邊的數(shù)據(jù)不相等,結(jié)果是true。

比較運(yùn)算符,是兩個(gè)數(shù)據(jù)之間進(jìn)行比較的運(yùn)算,運(yùn)算結(jié)果一定是boolean值true或者false 。
? ? ? ??int a = 3;
?? ??? ?int b = 4;
?? ??? ?System.out.println(a < b); // true
?? ??? ?System.out.println(a > b); // false
?? ??? ?System.out.println(a <= b); // true
?? ??? ?System.out.println(a >= b); // false
?? ??? ?System.out.println(a == b); // false
?? ??? ?System.out.println(a != b); // true

邏輯運(yùn)算符

邏輯運(yùn)算符符號(hào)解釋符號(hào)特點(diǎn)
&與,且有false則false
|有true則true
^異或相同為false,不同為true
!非false則true,非true則false
&&雙與,短路與左邊為false,則右邊就不看
||雙或,短路或左邊為true,則右邊就不看

? ? ? ? int a = 3;
?? ??? ?int b = 4;
?? ??? ?int c = 5;

?? ??? ?// & 與,且;有false則false
?? ??? ?System.out.println((a > b) & (a > c)); // false & false
?? ??? ?System.out.println((a > b) & (a < c)); // false & false
?? ??? ?System.out.println((a < b) & (a > c)); // true & false
?? ??? ?System.out.println((a < b) & (a < c)); // true & true
?? ??? ?System.out.println("===============");
?? ??? ?// | 或;有true則true
?? ??? ?System.out.println((a > b) | (a > c)); // false | false
?? ??? ?System.out.println((a > b) | (a < c)); // false | false
?? ??? ?System.out.println((a < b) | (a > c)); // true | false
?? ??? ?System.out.println((a < b) | (a < c)); // true | true
?? ??? ?System.out.println("===============");
?? ??? ?// ^ 異或;相同為false,不同為true
?? ??? ?System.out.println((a > b) ^ (a > c)); // false ^ false
?? ??? ?System.out.println((a > b) ^ (a < c)); // false ^ false
?? ??? ?System.out.println((a < b) ^ (a > c)); // true ^ false
?? ??? ?System.out.println((a < b) ^ (a < c)); // true ^ true
?? ??? ?System.out.println("===============");
?? ??? ?// ! 非;非false則true,非true則false
?? ??? ?System.out.println(!false);
?? ??? ?System.out.println(!true);

&&和&區(qū)別,||和|區(qū)別

  • &&和&區(qū)別:

    • &&和&結(jié)果一樣,&&有短路效果,左邊為false,右邊不執(zhí)行;&左邊無論是什么,右邊都會(huì)執(zhí)行。

  • ||和|區(qū)別:

    • ||和|結(jié)果一樣,||有短路效果,左邊為true,右邊不執(zhí)行;|左邊無論是什么,右邊都會(huì)執(zhí)行。

三元運(yùn)算符(三目運(yùn)算符)

三元運(yùn)算符格式:

數(shù)據(jù)類型 變量名 = 關(guān)系表達(dá)式?結(jié)果1:結(jié)果2

三元運(yùn)算符計(jì)算方式:

  • 條件判斷的結(jié)果是true,三元運(yùn)算符整體結(jié)果為結(jié)果1,賦值給變量。

  • 判斷條件的結(jié)果是false,三元運(yùn)算符整體結(jié)果為結(jié)果2,賦值給變量。

? ? int i = (1==2 ? 100 : 200);
? ? System.out.println(i);//200
? ? int j = (3<=4 ? 500 : 600);
? ? System.out.println(j);//500

位運(yùn)算符(了解)

位運(yùn)算符符號(hào)解釋
&按位與,當(dāng)兩位相同時(shí)為1時(shí)才返回1
|按位或,只要有一位為1即可返回1
~按位非,將操作數(shù)的每個(gè)位(包括符號(hào)位)全部取反
^按位異或。當(dāng)兩位相同時(shí)返回0,不同時(shí)返回1
<<左移運(yùn)算符
>>右移運(yùn)算符
>>>無符號(hào)右移運(yùn)算符

左移:<<

運(yùn)算規(guī)則:左移幾位就相當(dāng)于乘以2的幾次方

右移:>>

運(yùn)算規(guī)則:右移幾位就相當(dāng)于除以2的幾次方

無符號(hào)右移:>>>

運(yùn)算規(guī)則:往右移動(dòng)后,左邊空出來的位直接補(bǔ)0,不看符號(hào)位

按位與:&

運(yùn)算規(guī)則:

1 & 1 結(jié)果為1

1 & 0 結(jié)果為0

0 & 1 結(jié)果為0

0 & 0 結(jié)果為0

按位或:|

運(yùn)算規(guī)則:

1 | 1 結(jié)果為1

1 | 0 結(jié)果為1

0 | 1 結(jié)果為1

0 & 0 結(jié)果為0

按位異或:^

運(yùn)算規(guī)則:

1 ^ 1 結(jié)果為0

1 ^ 0 結(jié)果為1

0 ^ 1 結(jié)果為1

0 ^ 0 結(jié)果為0

按位取反:~

運(yùn)算規(guī)則:~0就是1

~1就是0

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的Java自我学习第三章基础数据类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。