JAVA中的变量类型和运算符
变量和类型
1.整型变量
基本语法格式:int 变量名=初始值;
代码:int num = 10;
System.out.println(num);
其中整型变量占4个字节,4 个字节表示的数据范围是 -2的31次方到2^31-1
2.长整型变量
基本语法格式:long 变量名=初始值;
代码:long num = 10L;
System.out.println(num);
其中long型占8个字节。
3.双精度浮点型变量
基本语法格式:double 变量名=初始值;
代码:double num = 1.0;
System.out.println(num);
其中double型占8个字节。
4.单精度浮点型变量
基本语法格式:float 变量名=初始值;
代码:float num = 1.0F;
System.out.println(num);
其中float型占4个字节。
5.字符类型变量
基本语法格式:char 变量名=初始值;
代码:char num = ‘A’;
其中char型占2个字节。
6.字节类型变量
基本语法格式:byte 变量名=初始值;
代码:byte value=0;
其中byte型占1个字节。
7.短整型变量
基本语法格式:short 变量名=初始值;
代码:short value=0;
System.out.println(value);
其中short型占2个字节。
8.布尔类型变量
基本语法格式:boolean 变量名=初始值;
代码:boolean value=true; //boolean类型只有两个取值true表示真,false表示假。
System.out.println(value);
其中boolean型所占字节数不确定。
9.字符串类型变量
基本语法格式:String 变量名=初始值;
代码:String name=“zhangsan”;
System.out.println(name);
运算符
1.算数运算符
基本的四则运算符+ - * / %
前三者规则比较简单,最重要的是除法
1)int /int结果还是int
int a=1;
int b=2;
System.out.println(a/b);
最终的运行结果为0
2)0不能作为除数
int a=1;
int b=0;
System.out.println(a/b);
最终的运行结果为Exception in thread “main” java.lang.ArithmeticException: / by zero at Test.main(Test.java:5),编译器会报错,原因是0不能作为除数。
%表示取余数,不仅仅可以对int求模,也能对double来求模。
System.out.println(11.5%2.0);
最终的运行结果为1.5
增量赋值运算符+= -= = /= %=
int a=10;
a+=1;//等价于a=a+1
a-=1;a=1;a/=1;a%=1;
System.out,println(a);
自增/自减运算符 ++ –
int a =10;
int b=a++;
System.out,println(b);
int c=a++;
System.out.println©;
最终的运行结果为11,10
注意事项:
如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别.
如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值。
2.关系运算符
关系运算符主要有六个:== != < > <= >=
代码例子:
int a =10;
int b=20;
System.out,println(a==b);
System.out,println(a!=b);
System.out,println(a<b);
System.out,println(a>b);
System.out,println(a<=b);
System.out,println(a>=b);
最终的输出结果为 false,true,true,false,ture,false
3.逻辑运算符
逻辑运算符主要有三个:&& || !
注意: 逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean 类型(false ture).
逻辑与&&
规则:两个操作数都为true,结果为true,否则结果为false
int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b && b < c);
逻辑或||
规则:两个操作int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b || b < c);数都为false,结果为false,否则结果为true.
逻辑非!
规则:操作数为true,结果为false;操作数为false,结果为true.
int a=10;
int b=20;
System.out.println(!a<b);
短路求值
&&和||遵守短路求值得规则;
System.out.println(10 > 20 && 10 / 0 == 0); // 输出false
System.out.println(10 < 20 || 10 / 0== 0); // 输出true
注意:&和|不支持短路求值。
3.位运算符
位运算符主要有四种:& | ~ ^
计算机中都是使用二进制来表示数据(0和1所构成),按位运算就是在按照二进制位的每一位来计算。
按位与&
int a=10;
int b=20;
System.out,println(a&b);
最终的运行结果为0;
按位或|
int a=10;
int b=20;
System.out,println(a|b);
最终运行的结果为30;
按位取反:
int a = 0xf;
System.out.printf("%x\n", ~a)
最终的运行结果为ffffffff0;
按位异或 ^:如果两个数字的二进制位数相同。则结果为0;相异结果为1;
int a = 0x1;
int b = 0x2;
System.out.printf("%x\n", a ^ b);
*最终的运行结果为3;
4.移位运算
移位运算符有三个:<< >> >>>,都是按照二进制来运算
左移>> 最左侧位移除,最右侧补0;
int a=0x10;
System.out.printf("%x\n",a>>1);
最终的运行结果为20;
右移<<最右侧位移除,最左侧补0;
int a=0x10;
System.out.printf("%x\n",a<<1);
最终的运行结果为8;
无符号右移>>>:最右侧位移除,最左侧补0;
int a = 0xffffffff;
System.out.printf("%x\n", a >>> 1);
最终的运行结果为 7fffffff
移位运算符总结:
1. 左移 1 位, 相当于原数字 * 2.左移N位,相当于原数字*2的N次方。
2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2的N次方。
5.条件运算符
条件运算符只有一个:
表达式1 ? 表达式2 : 表达式3
当表达式1的值为 true 时, 整个表达式的值为 表达式2的值; 当 表达式1 的值为 false 时, 整个表达式的值为 表达式3的值.
int a = 10;
int b = 20;
int max = a > b ? a:b;
最终的运行结果为20;