其他分享
首页 > 其他分享> > 实验后的体会

实验后的体会

作者:互联网

package HJssss;
public class QWE {
	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};
	

 

false
false
true
SMALL
MEDIUM
LARGEj

结果如上,因为枚举不是原始数据类型,所以s.getClass().isPrimitive()输出的值为false,又因为枚举的每个具体值都引用一的特定的对象。相同的值则引用同一个对象,所以s和t引用同一个对象是输出false,我们也可以用==和equals()的方法直接比较对比枚举变量的值,就是说,对于枚举类型的变量,==和equals()方法执行的结果是等价的。

 

package HJssss;
public class QWE {
	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=100200
300=X+Y

  这个的输出结果就是这个,显然结果不对因为”X+Y=”是一个字符串,+X+Y系统就相当于连续输出两个数,要想输出正确结果就要在+X+Y加上括号。

package HJssss;
public class QWE {





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

  输出结果:

0.05 + 0.01 = 0.060000000000000005
1.0 - 0.42 = 0.5800000000000001
4.015 * 100 = 401.49999999999994
123.3 / 100 = 1.2329999999999999

  显然结果很不精确,所以我们得到结论使用double类型的数值进行计算,其结果是不精确的。那么要想解决这个问题就要去用bigdecimal类去解决,用字符串来输出,在构建bigdecimal对象时应使用字符串而不时double数值,否则,仍有可能,引发计算精度问题。

int number = Integer.parseInt(numberString );

 Integer.parseInt方法将 String 转为数字 ( int)

  类Integer 属于包 java.lang,它“封装”了一个int类型的整数,因此,它是原始数据类型int的“包装类”。

  JOptionPane.showMessageDialog(

      null, "The sum is " + sum, "Results",

     JOptionPane.PLAIN_MESSAGE );

  The sum is " + sum

  使用运算符 + 连接字面量“The sum is” 和计算结果 sum将String 和其它数据类型相加,结果是一个新的String。

在学习原码, 反码和补码之前, 我先了解了机器数和真值的概念,对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式,原码就是第一位用1和0表示符号,其余位表示值,原码是人脑最容易理解和计算的表示方式,反码就是正数的反码就是它原码的本身,负数的反码它的符号位的那个数不变,其余各个位取反,可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算,补码的表示方法正数的补码还是其原码的本身,负数的补码符号位不变,其余位取反,最后一位加一,可以看出,负数的补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值,我也了解了为什么要使用原码,反码,补码,原码,反码,补码是完全不同的,原码才是对人类最容易直接识别并用于直接运算的表示方式,因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 在我运行了那个代码之后,我认识了枚举,枚举它是一种新的类型,允许用常量来表示特定的数据片段,而且全部以类型安全的形式来表示,枚举的使用增强了程序的健壮性,比如在引用一个不存在的枚举值的时候,编译器会报错。

 

 

标签:体会,反码,System,实验,println,Size,原码,out
来源: https://www.cnblogs.com/nanbei666/p/16684670.html