动手动脑

Posted xjmm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动手动脑相关的知识,希望对你有一定的参考价值。

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 SizeSMALL,MEDIUM,LARGE;

  运行结果:

技术图片

 

分析与结论:

①、在枚举变量中,使用==和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));
    

  运行结果:

技术图片

 

分析与结论:

使用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");
    

  运行结果:

技术图片

 

分析与结论:

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

 

以上是关于动手动脑的主要内容,如果未能解决你的问题,请参考以下文章

动手动脑-4

动手动脑,无法自拔

方法的动手动脑

第三次实验及动手动脑

第八周动手动脑

动手动脑,第六次Tutorial——数组