EnumTest.java
public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t); //s与t的值不同,所以false //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //枚举类型是引用类型,所以false //从字符串中转换 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};
TestDouble.java
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更多的位数才能准确表示出来,而double类型的数值只有64bit,后面舍去的位数会带来一定的误差。
int X=100; int Y=200; System.out.println("X+Y="+X+Y); //X+Y=100200
System.out.println(X+Y+"=X+Y"); //300=X+Y
第一个输出语句是将后面的X+Y当做了字符串,即输出字符串“X+Y=”+“100”+“200”;
第二个输出语句是将第一个X+Y当做加法运算,得到的数值再当做字符串输出,即输出字符串“300”+“=X+Y”。