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 – 如何
- 下一篇: tea java 代码,TeaVM编译器