ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

实验后的体会

2022-09-12 11:00:24  阅读:163  来源: 互联网

标签:体会 反码 System 实验 println Size 原码 out


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有