课堂动手动脑
枚举类型:
public class EnumTest {
public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t); //
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());
//从字符串中转换
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//列出它的所有值
for(Size value:Size.values()){
System.out.println(value);
}
}
}
enum Size{SMALL,MEDIUM,LARGE};
定义枚举类型:
enum Size{SMALL,MEDIUM,LARGE};
枚举类型遍历:
for(Size value:Size.values()){
System.out.println(value);
变量的作用域:
package Test;
public class A {
private static int value=1;
public static void main(String[] args){
int value=2;
System.out.println(value);
}
}
输出结果为2。
Java中的类型转换:
1.Int 32位 取值范围为 -2的31次方到2的31次方减1之间的任意整数(-2147483648~2147483647);
2.Short 16位 取值范围为 -32768~32767之间的任意整数;
3.long 64位 取值范围为 -2的63次方到2的63次方减1之间的任意整数(-9223372036854774808~9223372036854774807);
4.float 32位 取值范围为 3.402823e+38 ~ 1.401298e-45;
5.double 64位 取值范围为 1.797693e+308~ 4.9000000e-324;
6.char 8位 取值范围为 -128~127
7.byte 8位 取值范围为 -128~127之间的任意整数
结论:不同数据类型进行类型转换时可能会有精度的缺失,因此要注意各种类型的取值范围。
动手实验:
package Test;
public class TestDouble {
public static void main(String args[]) {
System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("123.3 / 100 = " + (123.3 / 100));
}
}
这个涉及到二进制与十进制的转换问题。double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)
动手动脑:
package Test;
public class B {
public static void main(String[] args)
{
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
}
如果string字符串后面是+和变量,会自动把变量转换成string类型,则加号起连接作用,然后把两个字符串连接成一个新的字符串输出;如果先有变量的加减运算再有字符串,那么会从左到右先计算变量的加减,然后再与后面的string结合成一个新的字符串。