全面剖析java 數據類型與運算符
java的數據類型與運算符
java的變量和類型
變量指的是程序運行是可變的量,其需要開辟內存空間用於儲存一些數據
而類型是對變量的種類進行劃分,不同的類型有不同的屬性
基本數據類型——數值型
整型
byte
byte 變量名=初始值
byte類型表示一個整形不過隻占1個字節;
其數據范圍為[-128,127]
public static void main(String[] args) { System.out.println(Byte.MAX_VALUE); System.out.println(Byte.MIN_VALUE); }
short
***short 變量名 = 初始值 ***
short表示變量的類型是一個整型
short的取值范圍[-32768,32767]
public static void main(String[] args) { System.out.println(Short.MIN_VALUE); System.out.println(Short.MAX_VALUE); }
int
語法:
***int 變量名 = 初始值 ***
int 表示變量的類型是一個整型
Java中,int類型占4個字節(每個字節占8個比特位)
其數據范圍是 -2^31 -> 2^31-1 , 也就大概是 -21億 到 +21億
public static void main(String[] args) { System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE); }
如果運算結果超過其數據范圍,就會出現溢出情況
public static void main(String[] args) { System.out.println(Integer.MAX_VALUE+1); System.out.println(Integer.MIN_VALUE-1); }
21億這樣的數字對於當前的大數據時代來說, 是很容易超出的. 針對這種情況, 我們就需要使用更大范圍的數據類型來表示,因此 Java 中提供瞭 long 類型.
long
語法:
***long 變量名 = 初始值 ***
long 占8個字節其數據范圍 [-2^63 ,2^63-1]
public static void main(String[] args) { long a=10l; System.out.println(a); }
public static void main(String[] args) { System.out.println(Long.MAX_VALUE); System.out.println(Long.MIN_VALUE); }
註意:
基本語法格式和創建 int 變量基本一致, 隻是把類型修改成 long初始化設定的值為 10L , 表示一個長整型的數字. 10l 也可以.使用 10 初始化也可以, 10 的類型是 int, 10L 的類型是 long, 使用 10 L 或者 10 l 更好一些.
浮點型
double
語法:
double 變量名 = 初始值
public static void main(String[] args) { double num = 1.0; System.out.println(num); }
註意:
在 Java 中, int 除以 int 的值仍然是 int(會直接舍棄小數部分).
public static void main(String[] args) { int a = 1; int b = 2; System.out.println(a / b); }
Java 中的 double 雖然也是 8 個字節, 但是浮點數的內存佈局和整數差別很大, 不能單純的用 2 ^ n 的形式表示數據范
圍.
Java 的 double 類型的內存佈局遵守 IEEE 754 標準(和C語言一樣), 嘗試使用有限的內存空間表示可能無限的小數, 勢
必會存在一定的精度誤差.
public static void main(String[] args) { double num = 1.1; System.out.println(num * num); }
float
語法:
float 變量名 = 初始值
public static void main(String[] args) { float num = 1.0F; System.out.println(num); }
float 類型在 Java 中占四個字節, 同樣遵守 IEEE 754 標準. 由於表示的數據精度范圍較小, 一般在工程上用到浮點數都
優先考慮 double, 不太推薦使用 float.
字符型
char
char 變量名 = 初始值
public static void main(String[] args){ char ch='呵'; System.out.println(ch); }
註意:
Java 中使用 單引號 + 單個字母 的形式表示字符字面值.計算機中的字符本質上是一個整數. 在 C 語言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一個字符占用兩個字節, 表示的字符種類更多, 包括中文.
佈爾型
boolean
boolean 變量名 = 初始值
public static void main(String[] args) { boolean bool=false; System.out.println(bool); }
註意:
- boolean 類型的變量隻有兩種取值, true 表示真, false 表示假.
- Java 的 boolean 類型和 int 不能相互轉換, 不存在 1 表示 true, 0 表示 false 這樣的用法.
- boolean 類型有些 JVM 的實現是占 1 個字節, 有些是占 1 個比特位, 這個沒有明確規定.
運算符
運算符:|
*** 如果兩個二進制位都是 0, 則結果為 0, 否則結果為 1***
public static void main(String[] args) { int a=1; int b=2; System.out.println(a|b); }
運算符:&
如果兩個二進制位都是 1, 則結果為 1, 否則結果為 0.
public static void main(String[] args) { int a=1; int b=2; System.out.println(a&b); }
運算符:^
*** 如果兩個數字的二進制位相同, 則結果為 0, 相異則結果為 1.***
public static void main(String[] args) { int a=1; int b=2; System.out.println(a^b); }
運算符:~
如果該位為 0 則轉為 1, 如果該位為 1 則轉為 0
public static void main(String[] args) { int a=1; int b=~a; System.out.println(b); }
運算符:>>
最右側位不要, 最左側補符號位(正數補0, 負數補1)
public static void main(String[] args) { int a=8; System.out.println(a>>1);//向右位移1個 }
運算符:<<
最左側位不要瞭, 最右側補 0
public static void main(String[] args) { int a=8; System.out.println(a<<1); }
運算符:>>>
最右側位不要瞭, 最左側補 0(無論他是否為負數)
public static void main(String[] args) { int a=8; System.out.println(a>>>1); int b=-1; System.out.println(b >>> 1); }
到此這篇關於全面剖析java 數據類型與運算符的文章就介紹到這瞭,更多相關java 數據類型與運算符內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- java數據類型和運算符的深入講解
- Java基本數據類型族譜與易錯點梳理解析
- Java八種基本變量作為類的成員變量的默認值操作
- 一篇文章帶你深入瞭解Java基礎(2)
- 深入瞭解JAVA數據類型與運算符