前言
從這一篇我們開始Java的學(xué)習(xí)~
歡迎關(guān)注個人主頁:逸狼
創(chuàng)造不易,可以點點贊嗎~
如有錯誤,歡迎指出~
目錄
前言
Java第一個程序
字面常量
字面常量的分類
結(jié)合代碼理解
類型轉(zhuǎn)換
類型提升
?byte與byte的運算
正確寫法
字符串類型String
int與String相互轉(zhuǎn)換
int轉(zhuǎn)String
String轉(zhuǎn)int
算術(shù)運算符
加減乘除模(+ - * / %)
+加
/ 除
%取余
小數(shù)也可以%
增量運算符 +=? -=? *=? %=
自增/自減運算符 ++ --
關(guān)系運算符 == != < > =
邏輯運算符&&? ||? ?!
邏輯與&&
邏輯或||
邏輯非!
短路
位運算符
按位與&
按位與|
按位取反 ~
按位異或
條件運算符
移位運算
Java第一個程序
public class Helloworld {
//快捷鍵main 或者首字母psvm創(chuàng)建main方法
public static void main(String[] args) {
System.out.println("Hello world!");//快捷鍵sout
}
}
java按類,方法,語句逐級來寫
public class Helloworld是類,public static void main(String[] args)是main方法(相當(dāng)于C語言的main函數(shù),是程序的入口,快捷鍵是main回車),System.out.println("hello world!");是語句,(相當(dāng)于C語言的printf函數(shù),意為格式化打印Hello world!,快捷鍵是sout)
其中一個java文件中只能有一個public修飾的類
字面常量
常量即程序運行期間,固定不變的量。
字面常量的分類
1. 字符串常量:由""括起來的,比如“12345”、“hello”、“你好”。
2. 整形常量:程序中直接寫的數(shù)字(注意沒有小數(shù)點),比如:100、1000
3. 浮點數(shù)常量:程序中直接寫的小數(shù),比如:3.14、0.49
4. 字符常量:由 單引號 括起來的單個字符,比如:‘A’、‘1’
5. 布爾常量:只有兩種true和false
6. 空常量:null
在Java中數(shù)據(jù)類型主要分為兩類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。 基本數(shù)據(jù)類型有四類八種: 1. 四類:整型、浮點型、字符型以及布爾型
結(jié)合代碼理解
public class Helloworld {
public static void main(String[] args) {
//整形
//int類型不管在多少位的機(jī)器上都是4字節(jié)
//Integer是包裝類,簡單理解為int類型的plus版本
System.out.println(Integer.MAX_VALUE);//輸出int最大值2147483647
System.out.println(Integer.MIN_VALUE);//輸出int最小值-2147483648
//局部變量 沒有初始化會報錯
//java會檢查字面值 超過會報錯
int c=2147483647;//int類型范圍2^31~2^31-1
int d=c+1;
System.out.println(d);
//長整形
long x=10L;//long類型的范圍2^63~2^63-1,后面加上L(不建議l),表示當(dāng)前10是long類型
//8字節(jié) 64bit
//Long是包裝類,簡單理解為long類型的plus版本
System.out.println(Long.MAX_VALUE);//輸出long最大值9223372036854775807
System.out.println(Long.MIN_VALUE);//輸出long最小值-9223372036854775808
//短整型short
/*
* 2個字節(jié) -2^15~2^15-1
* */
short s=10;
System.out.println(s);
System.out.println(Short.MAX_VALUE);//32767
System.out.println(Short.MIN_VALUE);//-32768
//byte 1個字節(jié) -128~127
byte b=100;
System.out.println(b);
System.out.println(Byte.MAX_VALUE);//127
System.out.println(Byte.MIN_VALUE);//128
//字符型char 2字節(jié)
//unicode字符集 包含了阿拉伯文,漢字,ASCII表等
char ch='逸';
char ch1=97;//可以給值正整數(shù),輸出ASCII對應(yīng)字符a
System.out.println(ch1);
//包裝類型是Character
//單精度浮點型float,4字節(jié)
float f=12.5f;//要加上f,否則會被認(rèn)為是double類型的數(shù)據(jù),報錯
System.out.println(f);
//雙精度浮點型double 8個字節(jié)(在任何系統(tǒng)都是)
//在內(nèi)存中存儲與整形不同,也遵循IEEE754標(biāo)準(zhǔn),所以浮點數(shù)是近似值,不是精確值
double num=1.1;
System.out.println(num*num);//輸出1.2100000000000002
//包裝類型是Double
//布爾類型 沒有明確的大小,不能和其他類型的值相互轉(zhuǎn)換,不存在1真0假
boolean flg=true;
System.out.println(flg);
//包裝類型是Boolean
}
}
其中包裝類型 是基本數(shù)據(jù)對應(yīng)的類 類型
類型轉(zhuǎn)換
代碼不需要經(jīng)過任何處理,在代碼編譯時,編譯器會自動進(jìn)行處理。
特點:數(shù)據(jù)范圍小的轉(zhuǎn)為數(shù) 據(jù)范圍大的時會自動進(jìn)行。
int a=10;//4
long b=100L;//8
//b=a 可以通過編譯 編譯器自動類型提升
//a=b 會報錯,需要強(qiáng)制類型轉(zhuǎn)換,a=(int)b,缺點:可能會有數(shù)據(jù)丟失
//不相干類型的數(shù)據(jù)不能相互轉(zhuǎn)換
類型提升
?byte與byte的運算
byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);
byte 和 byte 都是相同類型, 但是出現(xiàn)編譯報錯. 原因是, 雖然 a 和 b 都是 byte, 但是計算 a + b 會先將 a 和 b 都提升成 int, 計算結(jié)果也是 int, 賦給 c, 就會出現(xiàn)上述錯誤. 由于計算機(jī)的 CPU 通常是按照 4 個字節(jié)為單位從內(nèi)存中讀寫數(shù)據(jù). 為了硬件上實現(xiàn)方便, 諸如 byte 和 short 這種低于 4 個字節(jié)的類型, 會先提升成 int, 再參與計算.
正確寫法
byte a = 10;
byte b = 20;
byte c = (byte)(a + b);
System.out.println(c);
字符串類型String
String不是包裝類型,是引用數(shù)據(jù)類型。
public static void main(String[] args) {
String str1="Hello ";
String str2="world!";
//+意為拼接
String str3=str1+str2;
System.out.println(str3);
}
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
其中被轉(zhuǎn)換的數(shù)字必須是合法的數(shù)字字符串,比如“100a200"就不行
String str = "100";
int num = Integer.parseInt(str);
算術(shù)運算符
加減乘除模(+ - * / %)
+加
兩側(cè)操作數(shù)類型不一致時,向類型大的提升
System.out.println(1+0.2); ? // +的左側(cè)是int,右側(cè)是double,在加之前int被提升為double
? ? ? ? ? ? ? ? ? ? ? ? ? ? // 故:輸出1.2
/ 除
做除法和取模時,右操作數(shù)不能為0
public static void main(String[] args) {
System.out.println(5/2);//2
System.out.println(5.0/2);//2.5
System.out.println(5/0);//報錯
System.out.println(5.0/0);//Infinity
}
%取余
public static void main(String[] args) {
System.out.println(9%2);//1
System.out.println(9%-2);//1
System.out.println(-9%2);//-1
System.out.println(-9%-2);//-1
}
小數(shù)也可以%
System.out.println(11.5%2);//1.5
增量運算符 +=? -=? *=? %=
例如+=,其他以此類推
int a = 1;
a += 2; ? ? ? ? ? ? ? ? ?// 相當(dāng)于 a = a + 2
System.out.println(a); ? // 輸出3
自增/自減運算符 ++ --
++是給變量的值+1,--是給變量的值-1。
分前置和后置,
以++舉例,比如b=++a (前置),表示a先+1,再賦值給b
而b=a++(后置),表示先賦值給b,a再+1
關(guān)系運算符 == != < > =
其計算結(jié)果是 true 或者 false 。
int a = 10;
int b = 20;
System.out.println(a == b); ? ? ? // false
System.out.println(a != b); ? ? ? // true
System.out.println(a < b); ? ? ? ?// true
System.out.println(a > b); ? ? ? ?// false
System.out.println(a <= b); ? ? ? // true
System.out.println(a >= b); ? ? ? // false
邏輯運算符&&? ||? ?!
運算結(jié)果都是 boolean類型,表達(dá)式必須是boolean類型的結(jié)果。
邏輯與&&
表達(dá)式1 && 表達(dá)式2
有一個為假,表達(dá)式為假
邏輯或||
表達(dá)式1 ||?表達(dá)式2
有一個為真,表達(dá)式為真
邏輯非!
!表達(dá)式
假變真,真變假
短路
第一個表達(dá)式成立,就不會執(zhí)行第二個表達(dá)式
System.out.println(10 > 20 && 10 / 0 == 0); ? ? ? ? ? ? // 打印 false
System.out.println(10 < 20 || 10 / 0 == 0); ? ? ? ? ? ? // 打印 true
位運算符
按位與&
有0則為0,可理解為乘法
按位與|
有1則為1,可理解為加法
按位取反 ~
1變0,0變1
按位異或
同為0,異為1
條件運算符
條件運算符只有一個: 表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3?
當(dāng) 表達(dá)式1 的值為真 時, 整個表達(dá)式的值為 表達(dá)式2 的值
為假,則表達(dá)式3
// 求兩個整數(shù)的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;
移位運算
位運算的?速度?比普通的加減乘除更快
1. 左移<< 最左側(cè)位去掉, 最右側(cè)補(bǔ) 0,相當(dāng)于乘法
2. 右移?>>最右側(cè)位去掉, 最左側(cè)補(bǔ) 符號位,相當(dāng)于除法文章來源:http://www.zghlxwxcb.cn/news/detail-843952.html
3.無符號右移>>>最右側(cè)位去掉, 最左側(cè)補(bǔ)0文章來源地址http://www.zghlxwxcb.cn/news/detail-843952.html
到了這里,關(guān)于【JavaSE】數(shù)據(jù)類型和運算符的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!