java 左右两边数据类型不一样_Java笔记-day004-[运算符]
java中的數據類型
兩種\無數種
基本數據類型\引用數據類型
基本數據類型的分類[四類八種]
布爾類型
boolean true\false
字符類型
char 不區分中英文統一兩個字節16個位
取值范圍: 0 -65535
整數類型
byteshortintlong
位8163264
字節1248
我們在使用整數類型的時候呢,需要去注意他們的取值范圍
尤其是在我們做乘法運算的時候需要注意應用Long
定義long類型的時候我們需要在數值后面加L或小寫的L
浮點類型
floatdouble
位3264
字節48
默認值是Double如果我們需要使用float 需要在后面加F\f
double d = 45;//?45.0
int i = (int)45.5;//?45
Java中的運算符
+ - * / %
++兩邊如果是基本數據類型算數運算、
+兩邊如果是基本數據類型+String 那么就是字符串的拼接
-
*
/Java中整數/整數 = 整數;
%取模運算符求余數
+= -= *= /= %=
[他們能夠保證運算符的左邊的數據類型不發生改變 -》 隱式的強轉]
面試題:
short x = 1;
x = x + 1;
System.out.println(x);//錯誤
short y = 1;
y += 1;//y = (short)(y + 1);
System.out.println(y);//2
++ --
[a:取值 b:運算x++ -> 先a后b++x -> 先b后a]
<= >= ! = != == < >
> < >= <= -> 返回類型boolean類型 -》 true/false
!: 非 !boolean
!true = false!false = true
!=: 判斷左右兩邊的值是否不相等
System.out.println(45 != 45);//false
=和== 之間的區別?
=:賦值運算符 將右側的值交給左側的變量保管
==: 判斷兩邊值是否相等 相當于數學上的等于
& && | ||
&&和&之間的區別?
相同點:&&和&都是邏輯的與 相當于漢文中并且的意思
需要前后兩個條件都成立才可以
不同點:&&叫做邏輯的短路與 有短路特性
短路特性:如果通過前面的條件已經可以得出最終的結果
后面的條件直接舍棄不再判斷
&既可以作為邏輯運算符 還可以作為按位運算符
||和|之間的區別?
相同點:||和|都是邏輯的或 相等于漢文中或者的意思
需要前后只要有一個條件成立就可以
不同點:||叫做邏輯的短路或 有短路特性
短路特性:如果通過前面的條件可以得出最終結果的話
后面的條件直接舍棄 不再判斷
& | ^ ~(按位(二進制)運算符)
& | 什么情況下表示按位運算符 什么情況下表示邏輯運算符?
看運算符兩邊的數據類型:
如果兩邊是boolean類型 -> 邏輯運算符
如果兩邊是數字 -> 按位運算符
基本用法:(非重點)
&:按位的與 需要上下都為1才寫1
System.out.println(7 & 5);//5
7:4 + 2 + 1 = 111(二進制碼)
5:4 + 1 = 101(二進制碼)
111
&101
101 -> 4 + 1 = 5
|:按位的或 上下只要有1就寫1
System.out.println(7 | 5);//7
111
|101
111 -> 4+2+1=7
^:按位的異或 上下只要不一樣就寫1
System.out.println(7 ^ 5);//2
111
^101
010 -> 2
---交換兩個變量的值---
int x = 39;
int y = 74;
A:創建第三塊空間
int z = x;
x = y;
y = z;
B:不借助第三塊空間的方式交換
x = x ^ y;
y = x ^ y;
x = x ^ y;
~:按位取反 原本二進制1 -> 0 0 -> 1
byte x = 5;
~x;
5: 4+1=00000101 -> 11111010(二進制碼)
11111111 -> -1 - 1 - 4 = -6
***重點:************
&:
在某些情況下&可以取代%的元素
某些情況:
當我們拿著一個正數%上2的n次方數的時候
其實他的結果完全等價于
我們拿著這個數字&上2的n次方數-1的結果
27%2%4%8%16.......%2(n)
13311
27&1&3&7&15.......&2(n)-1
13311
>> << >>>(位(二進制)移運算符)
<>相等于除以 移動多少位相等于乘以/除以2的幾次方數
*2*4*8*16.....*2(n)
<<1<<2<<3<<4.....<
/2/4/8/16...../2(n)
>>1>>2>>3>>4.....>>n
>>和>>>之間的區別?
>>叫做有符號右移 移動之后空缺的高位看原本的符號位
byte x = 55;
x >> 2;
55:32 + 16 + 4 + 2 + 1 = 00110111
00110111
00001101
byte x = -55;
x >> 2;
-55:-1-32-16-4-2 = 11001001
11001001
11110010
>>>叫做無符號右移 移動之后空缺的高位直接補0
byte x = 55;
x >>> 2;
00110111
00001101
byte x = -55;
x >>> 2;
11001001
00110010
三目運算符
1 ? 2 : 3
1:永遠是個判斷條件
2:符合條件要執行的語句
3:不符合條件要執行的語句
總結
以上是生活随笔為你收集整理的java 左右两边数据类型不一样_Java笔记-day004-[运算符]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样把java换主题_java – 如何
- 下一篇: java php安全性_java和php