码迷,mamicode.com
首页 > 其他好文 > 详细

动手动脑部分及实验性操作

时间:2018-10-07 13:50:07      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:偏差   操作   部分   转换   数据类型   了解   nal   手动   数据转换   

枚举类型:

EnumTest测试结果:

st引用的不是同一个对象;枚举类型不是基本类型;su引用的是同一个对象。

心得:

一个枚举类型,例如enum Size{SMALL,MEDIUM,LARGE};,里面包含的是常量。枚举的本质是类,若实例化出枚举类型的对象,并指向枚举类型里面的某一常量,当两个实例化得到的对象指向同一常量时,两个对象便是引用了同一个对象,相同的值便引用了同一个对象,对于枚举类型,”==”和”equals()”方法是等价的。枚举类型的变量相比于一般的常量有很多用起来很方便的方法。枚举类型变量的toString()方法可以返回其字面值,所有枚举类型变量也都有一个name()方法,返回值与toString()一样枚举变量可以使用equals和==进行比较,结果是一样的因为枚举类型里面的都是常量,因此如果变量的内容一样,则可以说明引用的是同一个枚举对象。枚举值是有顺序的,可以比较大小。枚举类型都有一个方法ordinal(),表示枚举值在声明时的顺序,从0开始枚举类型的变量还可以通过方法compareTo()与其他枚举值进行比较,即是比较ordinal的大小枚举变量还可以用于switch语句,switch语句内部,枚举值不能带枚举类型前缀,例如,直接使用SMALL,不能使用Size.SMALL枚举类型都有一个静态的valueOf()方法,可以返回字符串对应的枚举值枚举类型也都有一个静态的values方法,返回一个包括所有枚举值的数组,顺序与声明时的顺序一致使用枚举类型有很多好处定义枚举的语法更为简洁枚举更为安全,一个枚举类型的变量,它的值要么为null,要么为枚举值之一,不可能为其他值,但使用整形变量,它的值就没有办法强制,值可能就是无效的枚举类型自带很多便利方法(如values, valueOf, toString等),易于使用。

可以使用getClass()函数得到一个量的数据类型,并可以通过isPrimitive()函数判断一个类型是否为基本类型。

若想将一个数据转换为指定类型的数据可以使用valueOf()函数,在括号里填入将被转换的参数,便可以实现转换为指定类型数据的操作。

反码、原码、补码:

心得:

正数的原码、反码、补码都一样;负数的反码 = 原码的符号位不变,其他位取反;负数的补码 = 反码+1;0的原码、反码、补码都是0;Java语言中的整数在计算机中以补码的形式储存;取反不同于反码。

Swing程序设计初接触:

心得:

我执行了源文件Addtion.java,由此第一次接触到图形用户界面。目前我对与此相关的知识完全不会,我会进行学习,补充这方面的空白。

变量的作用域:

测试代码:

package 变量作用域测试;

public class Test {

public static int i=3;

public static void main(String[] args) {

// TODO Auto-generated method stub

for(int i=0;i<2;i++)

{

System.out.println("for循环里面的i的值"+i);

}

System.out.println("for循环语句结束后的i的值:"+i);

int i=4;

System.out.println("再次定义i后i的值:"+i);

}

}

心得:

同名变量存在屏蔽原则,在同一作用域内,小作用域的值会覆盖大作用域的。

使用JOptionPane类进行输出:

测试代码:

package 输入测试;

import javax.swing.*;

public class InputTest {

  public static void main(String[] args){

          String str = JOptionPane.showInputDialog("请输入一串字符:");

          String s=str;

          String strdou = JOptionPane.showInputDialog("请输入数字:");

          double dou=Double.parseDouble(strdou);

          JOptionPane.showMessageDialog(null, "输入的字符是:" +s+"\n输入的数字是:"+dou,"输出", JOptionPane.PLAIN_MESSAGE );

  }

}

心得:

在看到ppt上这部分的内容之前,我只是在使用Scanner类进行数据的输入,使用System.out.println进行输出。通过学习测试程序,我学会了JOptionPane实现简单的输入和输出的方法,在以后的学习中,我会更深入的了解其中的使用技巧。

类型转换:

心得:

小范围、低精度的数据类型转换为大范围、高精度的数据类型的操作是无精度损失的,反过来则有可能出现精度的损失。

Doubel类型数据进行运算时得不到“数学上精确的效果”:

心得:

浮点型数据在计算机中存储时,整数部分和小数部分分开都以二进制的形式存储。进制可以理解为:数值×基数的幂,例如我们熟悉的十进制数123.4=1×102+2×10+3×(10的0次幂)+4×(10的-1次幂);其它进制的也是同理,例如二进制数11.01=1×2+1×(2的0次幂)+0+1×(2的-2次幂)=十进制的3.2511.10对应十进制的3.5因此如果需要表示十进制的3.26,则无法在一定储存空间内使用二进制完美的表示。因此使用计算机进行浮点类型数据的计算时有很大的可能性会出现偏差。

在构建BigDecimal对象时应使用字符串而不是double数值:

心得:

若使用double类型作为大数类的参数,会出现一些偏差问题。例如BigDecimal(0.1)并不代表0.1,而是表示0.1000000000000000055511151231257827021181583404541015625,因为准确的来说0.1本身不能算是一个double,0.1无法被一个定长的二进制表示。

在使用大数类的时候应当使用字符串类型数据作为参数,或者使用BigDecimal f2 = BigDecimal.valueOf(0.01);进行对象的实例化,这样是不会出现上述的问题的。

XY输出:

心得:

在进行输出的时候,输出的字符串常量使用双引号括住,加号可以起到连接字符串的作用,如果想要输出两个数的和,则需要使用括号将两个需要求和的数字括起来。

动手动脑部分及实验性操作

标签:偏差   操作   部分   转换   数据类型   了解   nal   手动   数据转换   

原文地址:https://www.cnblogs.com/ruangongyouxi/p/9749919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!