JAVA修炼秘籍第一章:《痛苦的折磨》
第二章目录
1 — 数据类型细节部分
上一章节中,我们说到数据类型的介绍,这一章节我们先把JAVA中的数据类型的注意事项了解一下。
byte类型
在JAVA运算中,如果运行以下代码,你会发现程序是错误的。
public class Test {
public static void main(String[] args) {
byte a=10;
byte b=40;
byte c=a+b;
System.out.println(c);
}
}
第一想法肯定是,这么简单,运行结果一定是50,但是JAVA程序不会这样想,在JAVA中byte类型来运算过程中会进行整型提升,也就是说最后结果会是int类型,int与byte类型不同,代码一定就会出错,所以想要代码正确,一定要进行类型转换。如下:
public class Test {
public static void main(String[] args) {
byte a=10;
byte b=40;
byte c=(byte)a+b;
System.out.println(c);
}
}
short,int,long类型
这些类型如果你学习过C语言,那么他们是相似的,大小与运用都是一样的,注意使用时的类型提升,还有类型转换就可以了。
float,double类型
首先先说一下float类型,在JAVA中如果你想给一个float类型的变量赋值,请问你会怎么写,是不是如下。
public class Test {
public static void main(String[]args){
float a=4.5;
System.out.println(a);
}
}
但其实这样是错误的,因为JAVA中,小数默认位double类型,如果你想给一个float类型的变量赋值,你得给JAVA一个提示,我这个小数是float类型别瞎动,所以代码应该如下:
public class Test {
public static void main(String[]args){
float a=4.5f;
System.out.println(a);
}
再来说说double类型,double类型也没啥说的呀,说啥呀,就是可以存储小数的类型,精确度到小数点后8位。
boolean类型
首先boolean类型只有两个值,可千万别给整什么别的,只有true与false两个值,赋值别的都是错误的代码,注意JAVA中是没有非0为真,0为假这一说,只有true与false但是你可以理解为真假,自己理解,别说我说的哈哈哈哈。
final 常量关键字
可以修饰变量为常量,比如:
final int A=10;
那这个A的赋值就是常量表达式了,在JAVA中为了书写规范,修饰后的常量名全部改为大写,为了后续代码的区分,你一看到全是大写的就知道,哦,原来是常量的思密达。
操作符介绍
+,-,*,%,\
这些不用过多介绍吧,注意\号与%号的使用就可以了。
符合运算符
+=,-=,\=,*=,%=,这些运算符对应的也就是如下的程序。
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;
a=a+10;
b=b-10;
c=c*10;
d=d/10;
e=e%10;
a+=10;
b-=10;
c*=10;
d/=10;
e%=10;
++,- -
用来前置++,或后置++,前置- -,或后置- -,对应代码如下。
int a=1;
int b=0;
b=a++;
这里后置++的赋值后结果就是a=2,b=1,记住后置++是先赋值再+1,
也就是a先赋值给b,a再+1;
a=1;
b=0;
b=++a;
这里前置++的赋值结果就是a=2,b=2,记住前置++是先+1再赋值,
也就是a先+1,再赋值给b.
逻辑运算符
&&,||,!,这三个非常好理解,用中文说就是,并且,或者,非什么而什么(反逻辑),就是这么简单粗暴,介绍一下吧。
&&:一般用于—>(表达式1&&表达式2),如果表达式1为false,表达式2不用计算,整体返回结果为false,如果表达式1为true,表达式2也为true,整体返回结果为false,(也就是两个表达式都要成立)。
||:一般用于—>(表达式1||表达式2),如果表达式1为true,表达式2不用计算,整体返回结果为true,如果表达式1为false,表达式2为true,整体返回结果为true,如果两个表达式都为false整体结果为false,(也就是两个表达式有一个成立,结果就是成立的)。
!:这个就是可以理解为(!表达式),假设表达式为false,那么就反过来为true。
位运算符
&,|,^,~,二进制进行运算,
&(按位与):假设如下,
a&b=3&5=下面:
011
101
结果:
001
最终结果转换为10进制就是1,c=1。
1,0为0。
1,1为1。
0,0为0。
int a=3;
int b=5;
int c=a&b;
|(按位或):假设如下,
a|b=3|5=下面:
011
101
结果:
111
最终结果转换为10进制就是7,c=7。
1,0为1。
1,1为1。
0,0为0。
int a=3;
int b=5;
int c=a|b;
^(按位异或):假设如下,
a ^ b=3 ^ 5=下面:
011
101
结果:
110
最终结果转换为10进制就是6,c=6。
1,0为1。
1,1为0。
0,0为0。
int a=3;
int b=5;
int c=a^b;
~ (按位取反):也就是:如果该位为 0 则转为 1, 如果该位为 1 则转为 0
移位运算
<<,>>,>>>,首先在JAVA中是不存在无符号类型的变量的
<<(左移运算符)
例如:a=3等于a=011:那么a<<=1也就是左移一位等于a=110。
>> (左移运算符)
例如:a=3等于a=011:那么a>>=1也就是右移一位等于a=001。(是负数补1,正数补0)。
>>> (无符号右移)a=3等于a=011:那么a>>>=1也就是右移一位等于a=001。(不管正负都补0)。