1. 程式人生 > >進制轉換、Java數據類型、變量、運算符

進制轉換、Java數據類型、變量、運算符

lose 隱式 div 64位 存在 clas 基本 32位 取值

十進制與其他進制的轉換:
  十進制:由0-9組成,滿十進一。
  二進制:由0或1組成,滿二進一。
  八進制:由0-7組成,滿八進一。
  十六進制:由0-9、a、b、c、d、e、f,滿十六進一

java中的數據類型:
一、基本數據類型:8個。
1.整型:默認類型為int
  byte 字節 一個字節 8個比特位 -128 ~ 127
  short 短整型 2個字節 16位 -2(15) ~ 2(15)-1
  int 默認整型 4個字節 32位 -2(31) ~ 2(31)-1
  long 長整型 8個字節 64位 -2(63) ~ 2(63)-1

2.浮點型:默認類型double
  float 4個字節 單精度 有效數字7~8位
  double 8個字節 雙精度 有效數字15~16位
3.字符型:
  char 2個字節
  ‘ ‘來進行標識,單個的英文字母、中文、數字、符號等。
  ‘中‘ ‘1‘
  Unicode編碼 0~65535
  由於計算機無法直接存儲字符,使用Unicode編碼,
  存儲字符在Unicode編碼中對應的編號。
  ‘a‘--->97
  ‘A‘--->65
4.布爾型:
  boolean 只有兩個值:true(真、對)、false(假、錯)
二、引用數據類型:4種,無數個。
  類、
  類有無數個,我們今天只講其中的一個:String
  String:字符串。需要使用""進行標識。

  數組、
  接口、
  枚舉

Java中有幾種數據類型?
  兩種。基本數據類型和引用數據類型。
Java中有幾個基本數據類型?
  8個,分別是 byte、short、int、long、float、double、boolean、char

定義變量:

1.聲明:
  數據類型 變量名;
  byte b;
2.賦值:
  變量名 = 值;
  b = 50;
  通常: 數據類型 變量名 = 值;
  byte b2 = 90;

註意:
  1>我們目前定義在主函數中的變量都為局部變量。
  2>不可以重復命名,無論數據類型。
  3>局部變量必須初始化。(賦初始值)
  4>使用long類型的時候,如果該整型的值大於int的取值範圍,需要
  在整數值後加L或l,來聲明該整型為長整型。
  5>使用float類型的時候,需要在浮點型值後加F或f,來聲明該浮點型
  為單精度浮點型。
6>類型的自動提升:
  byte、short、char 在進行運算的時候會自動提升int類型

  byte、short、char--->int ---> long ----> float ---->double

7>類型的強制轉換:
  小類型 變量名 = (小類型)大類型值;
  類型的強制轉換存在風險,謹慎使用。
運算符:
  1.算術運算符:byte、short、char在進行運算的時候會自動提升int類型
  小類型與大類型進行運算,結果為大類型。
+:
  1>進行加法運算
  2>拼接字符串
-:減法運算

*:乘法運算

/:除法運算

%:模,取余。 結果與被模數(前面的)符號相同。

++:自增,自己增加1

++可以寫在前面,也可以寫在後面。

區別:
  1>寫在後面,先進行其他運算,後自增。
  2>寫在前面,先自增,後進行其他運算。

--:自減,自己減1
--可以寫在前面,也可以寫在後面。
區別:
  1>寫在後面,先進行其他運算,後自減。
  2>寫在前面,先自減,後進行其他運算。


2.賦值運算符
  類型的隱式轉換功能

  =:從右邊賦值給左邊

  +=: x += 3 ---> x = x + 3

short s1 = 10;
s1 += 6; // s1 = s1 + 6; 類型的隱式轉換功能
//s1 = (short)(s1 + 6);

-=: x -= 3 ---> x = x - 3
*=: x *= 3 ---> x = x * 3
/=: x /= 3 ---> x = x / 3
%=: x %= 3 ---> x = x % 3

3.比較運算符:結果為布爾值
  ==:比較等號兩邊是否相等。

  ==比較的是符號兩邊的地址是否相同。
  八個基本數據類型可以使用==比較內容是否相同。

  String 不可以使用==比較內容是否相同。
  String s1 = "abc";
  String s2 = "abc";
  s1.equals(s2)--->結果為boolean

!= :不等於,與== 結果相反
> :大於
< :小於
>= :大於等於
<= :小於等於

4.邏輯運算符
------------------------------------------------------------------------
1>與 且 &、&& 都為真,結果才為真,否則為假
&和&&的區別:
  1)&不僅是邏輯運算符,還是位運算符。&&只是邏輯運算符。
  2)&&具有短路效應,而&沒有。
  &&效率高,使用&&
2>或 |、|| 只要有一個為真,結果就為真,否則為假。
|和||的區別:
  1)|不僅是邏輯運算符,還是位運算符。||只是邏輯運算符。
  2)||具有短路效應,|沒有。
  ||效率高,使用||
------------------------------------------------------------------------
3>非,! 取對立面。

4>異或 ^ 相同為假,不同為真。

true ^ true--->false
false ^ false ---> false
true ^ false ---> true

5.位運算符:需要轉換為二進制進行運算。 byte、short、char會

自動提升為int進行計算。
1>移位運算符
>> 右移 :
  一個數無符號右移n位,相當於該數除以2的n次冪。
  10 >> 3 a >> b --->a向右移動b位
  0000-0000 0000-0000 0000-0000 0000-1010
  0000000-0000 0000-0000 0000-0000 0000-1 --->1
  10/2(3)
<< 左移:
  一個數左移n位,相當於該數乘以2的n次冪。
  10<<1
  0000-0000 0000-0000 0000-0000 0000-1010
  000-0000 0000-0000 0000-0000 0000-10100 ---> 20
>>> 無符號右移:
  8>>>2
  0000-0000 0000-0000 0000-0000 0000-1000
  000000-0000 0000-0000 0000-0000 0000-10
  -8>>>2
  1000-0000 0000-0000 0000-0000 0000-1000
  001000-0000 0000-0000 0000-0000 0000-10

2>邏輯位運算符
1)& 都為1結果才為1,否則為0
  10&8

  1010 -->10
  1000 -->8
  1000 -------->8

2)| 只要有一個為1結果為1,否則為0
  10|9
  1010
  1001
  1011---->11

3)^ 相同為0,不同為1
  10^9
  1010
  1001
  0011 --->3
3>取反 ~
  相當於取該數字的相反數-1
  如:
  ~7 --->取7的相反數-1===>-7-1=-8
  ~-7 ===>7-1=6

6.三元運算符:該運算符有結果,必須有變量接收結果,否則編譯 報錯。

技術分享圖片
int a = 60;
int b = 97;
//求a和b的最大值
int max = a > b ? a : b;
System.out.println("max = " + max);
View Code

進制轉換、Java數據類型、變量、運算符