您的位置:首页 > 其它

动手动脑及课后实验性作业

2015-10-08 17:52 211 查看
1.第一个动手动脑:

package test2;

public class EnumTest {

public static void main(String[] args) {

// TODO 自动生成的方法存根

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

枚举类型是引用类型不属于原始数据类型,它的每个具体值都引用到一个特定的对象,相同的值则引用同一个对象。

S=Size.SMALL,t=Size.LARGEs和t引用的不是同一个值所以就不是同一个对象,所以输出false

System.out.println(s==t);属于枚举类型,而枚举类型不属于原始数据类型,所以输出false

因为u=Size.valueOf(“SMALL”)System.out.println(s==u);枚举变量的值是相同的,所以是正确的所以输出true

最后因为枚举的value中三个值是SMALL,MEDIUM,LARGE,所以输出这三个值。

得出结论:

枚举需要将字串转化为枚举Java中除了int,float等几个数据类型,其余的数据类型都用来引用对象。

枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。

可以用“==”和“equals()”方法直接比对枚举变量的值。

2.课后练习:

在计算机内,定点数有3种表示发:原码、反码和补码

反码

作用:储存数值(多数计算机不采用反码表示数值)

原码

所谓的原码就是二进制定点的表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值大小

3.动手动脑二:

结论是图画错了,float->double只有在strictfp的模式下才是无精度损失的;byte->short->float的转换也是无精度损失的,理应在short到flost之间画一道实线;char->float之间也应该有一道实线;int->double也是无精度损失,应将虚线改成实线;long可以转换到float,在long和float之间也应该有一条虚线。

4.动手实验:

意外,使用double类型的数值进行计算,其结果是不精确的。

Double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差,简单地说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来,而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

5.动手动脑:

“+”放前面代表字符串的连接

“+”放后面代表运算

1.第一个动手动脑:

package test2;

public class EnumTest {

public static void main(String[] args) {

// TODO 自动生成的方法存根

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

枚举类型是引用类型不属于原始数据类型,它的每个具体值都引用到一个特定的对象,相同的值则引用同一个对象。

S=Size.SMALL,t=Size.LARGEs和t引用的不是同一个值所以就不是同一个对象,所以输出false

System.out.println(s==t);属于枚举类型,而枚举类型不属于原始数据类型,所以输出false

因为u=Size.valueOf(“SMALL”)System.out.println(s==u);枚举变量的值是相同的,所以是正确的所以输出true

最后因为枚举的value中三个值是SMALL,MEDIUM,LARGE,所以输出这三个值。

得出结论:

枚举需要将字串转化为枚举Java中除了int,float等几个数据类型,其余的数据类型都用来引用对象。

枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。

可以用“==”和“equals()”方法直接比对枚举变量的值。

2.课后练习:

在计算机内,定点数有3种表示发:原码、反码和补码

反码

作用:储存数值(多数计算机不采用反码表示数值)

原码

所谓的原码就是二进制定点的表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值大小

3.动手动脑二:

结论是图画错了,float->double只有在strictfp的模式下才是无精度损失的;byte->short->float的转换也是无精度损失的,理应在short到flost之间画一道实线;char->float之间也应该有一道实线;int->double也是无精度损失,应将虚线改成实线;long可以转换到float,在long和float之间也应该有一条虚线。

4.动手实验:

意外,使用double类型的数值进行计算,其结果是不精确的。

Double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差,简单地说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来,而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

5.动手动脑:

“+”放前面代表字符串的连接

“+”放后面代表运算
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: