动手动脑

1、枚举

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};

  运行结果:

动手动脑_第1张图片

 

分析与结论:

①、在枚举变量中,使用==和equals()的结果是一样的;

②、原始数据类型有八个:byte、short、int、long、boolean、char、float、double;枚举类型是引用类型

③、getClass() 方法返回和当前枚举常量的枚举类型对应的 class 对象;

④、枚举可以限制范围,只可在枚举类中选。

 2、同名变量的屏蔽原则

public class Test1 {
      private static int value=1;
      public static void main(String args[]) {
    	  int value=2;
    	  System.out.println(value);
      }
}

  结果:

 

分析与结论:

java变量遵循“同名变量的屏蔽原则”,第一个value是成员变量,也是全局变量,第二个value是局部变量,局部变量可以覆盖全局变量;

3、JAVA中的类型转换

short  16位 -32768~32767  -2^15~2^15-1

int  32位 -2147483648~2147483647 -2^31~2^31-1

long  64位 -922372036854775808~9223372036854775807 -2^63~2^63-1

float  32位 1.4e-45~3.4028235e38

double  64位 4.9e-324~1.7976931348623157e308

一般来说在实线两端都是由低精度指向高精度的类型,所占的位数从低到高,范围从小到大,所以可得出,低精度向高精度转化不丢失精度,反之,从高精度传向低精度则会损失。

4、

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));
    }
}

  运行结果:

动手动脑_第2张图片

 

分析与结论:

使用double类型进行计算,结果是不精确的。因为这个涉及到二进制与十进制的转换问题。

5、

public class Test2 {
	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");
    }
}

  运行结果:

动手动脑_第3张图片

 

分析与结论:

原因,+X+Y,表示依次输出XY的值,而X+Y表示一种运算。

 

你可能感兴趣的:(动手动脑)