首页 > 其他分享 >动手动脑

动手动脑

时间:2024-09-28 11:45:17浏览次数:7  
标签:舍入 同名 变量 作用域 double 动脑 动手 次方

一.仔细阅读示例: EnumTest.java,运行它,分析运行结果?
第一个判断s和t是否引用了同一对象,由于s和t不是同一对象,所以是flase
第二个判断s是否为基本数据类型,由于s是枚举类型,所以是flase
第三个将字符串“SMALL”转化成为枚举类型,与s一样,所以是true
最后遍历输出
二.你能得到什么结论?你掌握了枚举类型的基本用法了吗?
相同的值引用同一对象
枚举类型不是基本数据类型
可以用==和equals()直接对比值
字符串可以转化成枚举类型
三.阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的

示例程序:

结果:

Java中补码计算
四. Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。
在Java中,同名变量屏蔽原则是指在一个作用域内,如果有一个变量与外部作用域中的变量同名,那么它会屏蔽外部作用域中同名的变量。这个原则也被称为变量隐藏
如果在一个方法中定义了一个局部变量,它与类的成员变量同名,那么在这个方法的作用域内,成员变量将被屏蔽。
如果内部类和外部类有同名的成员变量,那么在内部类中,外部类的同名成员变量会被屏蔽。
在一个代码块(如for循环或if语句)中定义的变量会屏蔽外部作用域中同名的变量。
蔽是指变量名相同,但重载通常指的是方法名相同而参数列表不同。
五,看着这个图,再查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?

数据类型      位数                表示数值的范围
         Int         32位          -2的31次方 ~ 2的31次方
        Short        16位              -32768 ~ 32678
         long        64位           -2的63次方~2的63次方
         float       32位         10-38~1038和-10-38~-1038
        double       64位     10-308~10308和-10-308~-10308
        char         16位            -2的7次方~2的7次方
        boolean       1位                true/false
        byte          8位                -128 ~ 127
     结论:实线代表无精度损失,虚线代表有精度损失,低精度向高精度转化不丢失精度,反之,从高精度传向低精度则会损失。
六.为什么double类型的数值进行运算得不到“数学上精确”的结果?
double 类型在内存中占用64位,其中1位用于符号,11位用于指数,剩下的52位用于尾数(或称为有效数字)。这意味着 double 类型只能精确表示2^53(大约9.0072e15)个不同的数值。
由于这种表示限制,许多实数(例如1/3)不能精确表示为 double 类型,只能近似表示。
当执行加法、减法、乘法或除法运算时,可能会产生超出尾数所能表示的精度的数值。这时,结果会被舍入到最接近的可表示值,导致精度损失。
根据IEEE 754标准,double 类型的运算结果通常遵循“向偶数舍入”的规则(也称为银行家舍入法)。这意味着在某些情况下,结果会被舍入到最近的偶数,以减少累积误差。
浮点数的运算顺序可能会影响最终结果。由于舍入误差的存在,不同的运算顺序可能会导致不同的结果。
七.以下代码的输出结果是什么?
      public class Text{
           public stastic 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
原因:因为输出的是字符串,前一个表示分别输出两个字符串,而后一个表示用字符串输出两个整形的和。

标签:舍入,同名,变量,作用域,double,动脑,动手,次方
From: https://www.cnblogs.com/zhaoyaxuan2024/p/18437189

相关文章

  • java动手动脑-2024.9.28
    枚举类publicclassEnumTest{publicstaticvoidmain(String[]args){Sizes=Size.SMALL;Sizet=Size.LARGE;System.out.println(s==t);System.out.println(s.getClass().isPrimitive());Sizeu=Size.valueOf(&quo......
  • 动手动脑
    对EnumTest.java的测试点击查看代码publicclassEnumTest{ publicstaticvoidmain(String[]args){ Sizes=Size.SMALL; Sizet=Size.LARGE; //s和t引用一个对象? System.out.println(s==t);// //是原始数据类型吗 System.out.println(s.getClass().isPrim......
  • 动手动脑
    EnumText无法运行...TextDouble0.05+0.01=0.061.0-0.42=0.584.015*100=401.5123.3/100=1.233X+Y=100200300=X+Y第一个加号具有拼接字符串的作用,第二个加号是加法的意思生成四则运算importjava.util.Random;importjava.util.Scanner;publicclass......
  • 9.28博客(动手动脑)
    importjava.util.Random;publicclassRandomStr{publicstaticvoidmain(String[]args){//调用generateRandomString方法生成验证码StringverificationCode=generateRandomString();//输出生成的验证码System.out.println("生成的验证码为:"+verificationCode);......
  • 9.26博客(动手动脑)
    阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。原码:在计算机中,用二进制表示数时,最高位是符号位(0表示正数,1表示负数),其余位表示数的......
  • 动手动脑动手实验
    (1)枚举类型是引用类型!枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。可以使用“”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“”和equals()方法执行的结果是等价的。(2)(3)(4)在Java中,变量的“同名变量的屏......
  • 动手动脑01
    动手动脑01重新编写java测试00PlaninformationpublicclassPlanInformation{//变量id为整型,表示日报流水号,依次加一。//变量planid为字符串类型String,表示产品生产批次号(例如:2312-110,有8位字符组成,前四位表示年月,后三位表示序号)。//变量planname为字符串类......
  • java动手动脑-2024/9/27
    publicclassEnumTest{publicstaticvoidmain(String[]args){Sizes=Size.SMALL;Sizet=Size.LARGE;//s和t引用同一个对象?System.out.println(s==t);////是原始数据类型吗?System.out.println(s.getClass().i......
  • 动手动脑
    根据运行结果,我们可以得出以下结论:System.out.println(s==t);//false结论:在枚举类型中,即使它们属于同一个枚举类,不同的枚举常量也是不同的对象。因此,比较操作符==在这里返回false,说明s和t引用的是不同的枚举常量。System.out.println(s.getClass().isPrimitive())......
  • 动手动脑——数据类型的转换
    1.整数大小:整数类型的位数越大,能够表示的数值范围也越大。byte和short类型适合用于节省空间的场合,而int是最常见的整数类型,因为它提供了足够的范围和较好的性能。long类型则用于需要更大数值范围的场合。2.字符表示:char类型专门用于表示Unicode字符,其大小固定为16位,可以表示任何......