今天是学习JAVA的第三天,主要的内容为
数据类型和
表达式
3. short、char、byte之间不会相互转换,再进行运算时,这三个类型会优先转换为int类型。
涉及代码:
1.JAVA默认编码为Unicode;
2.Unicode编码也说明了java能识别中文标识符, 但是注意:关键词不能用中文!
2.短路或在首个表达式为真的情况下触发短路机制,该判断停止进行,自动断定为真。
涉及代码(只展示短路与和与的不同):
数据类型:
1.数据类型一般有两种,基础数据类型和引用类型。
2.类型之间的转换为:char、short、byte->int->long->float->double,注意 大字节类型转小字节类型时:float a = 2.5F;3. short、char、byte之间不会相互转换,再进行运算时,这三个类型会优先转换为int类型。
涉及代码:
public class Test{
<span style="white-space:pre"> </span>public static void main(String[] args){
<span style="white-space:pre"> </span>// float a = 2.5; 会报错,精度损失
<span style="white-space:pre"> </span>float a = 2.5F; //编译通过
<span style="white-space:pre"> </span>System.out.println(a);
}
}
编码问题:
1.JAVA默认编码为Unicode;
2.Unicode编码也说明了java能识别中文标识符, 但是注意:关键词不能用中文!
涉及代码:
class 人{
<span style="white-space:pre"> </span>private String 名字;
private String 性别;
} //编译通过
表达式:
1.整除(/):左右两边必须为整型。
涉及代码:
public class Test{
public static void main(String[] args){
int a;
a = 5/2; //编译通过,结果为2(为什么不是2.5,请自行百度JAVA进制转换导致的损失精度)
a = 5.0/2; //编译错误,解决办法为: a = (int)5.0/2;
}
}
2.取模(%):取余数。
3.自加减(查看后面代码):前++(--)为先自加减后才参与运算,后++(--)为先参加运算后自加减,注意:无论是前++还是后++,在这条语句结束后,该变量的值一定改变了。
涉及代码:public class Test{
<span style="white-space:pre"> </span>public static void main(String[] args){
<span style="white-space:pre"> </span>int a=3,s;
s = (a++)+1; <span style="white-space:pre"> </span>//等于4 根据之前的叙述,++在后面,a变量就先参与运算再自增减,也就是 a(3)+1=4,然后a++=4;
System.out.println(s);
<span style="white-space:pre"> </span>System.out.println(a); //a为4
a=3;
<span style="white-space:pre"> </span>s = (++a)+1; //等于5 根据之前的叙述,++在前面,a变量就先自增减再参与运算,也就是 ++a=4,然后a(4)+1=5;
System.out.println(s);
<span style="white-space:pre"> </span>System.out.println(a); //a为4
}
}
4.恒等(===):不仅要求两个变量的值相等,而且类型也要相同。
涉及代码:public class Test{
public static void main(String[] args){
<span style="white-space:pre"> </span>int a = 1;
float b = 1.0F;
if(a == b){
System.out.println("a = b,编译通过"); //判断为真
}
if(a === b){ //编译不通过。
<span style="white-space:pre"> </span>System.out.println("a = b,编译通过");
}
}
5.短路与(&&)/或(||):提高程序运行效率。
1.短路与在首个表达式为假的情况下触发短路机制,该判断停止进行,自动断定为假。2.短路或在首个表达式为真的情况下触发短路机制,该判断停止进行,自动断定为真。
涉及代码(只展示短路与和与的不同):
<pre name="code" class="java">public class Test{
public static void main(String[] args){
int a = 1,b = 0,c = 0;
if(a == 0 & (b = 3) == 0){
//空
}
System.out.println(b); //此时b=3,因为与即使在确定了前面一个表达式为假即使可以得出结果了,程序依然会再去判断第二个表达式
if(a == 0 && (c = 3) == 0){
//空
}
System.out.println(c); //此时c=0,因为短路与在判断第一个表达式为假后就已经确定了整个if判断为假。
}
}