• 动手又动脑


    1.仔细阅读示例: EnumTest.java,运行它,分析运行结果? 你能得到什么结论?你掌握了枚举类型的基本用法了吗?

    运行结果:

    false
    false
    true
    SMALL
    MEDIUM
    LARGE

    第一个输出是判断s和t是否相等,不相等所以是false

    第二是输出是判断是否是原始类型,不是原始类型所以是false

    第三个输出判断是否从字符串转换,所以是true

    最后是从小到中在到达循环输出所以是SMALL
                                                               MEDIUM
                                                               LARGE

    2.

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

    面对这样的输出很意外。

     原因:

    在java中在十进制与二进制的转换过程中存在一些数据类型占用位数的问题(double类占用64位)。而且在二进制中最高位有的时候表示正负号,但有时也会是真实的数值,有时64位并不能把我们要写的数准确的表达出来,因此才会出现问题。

    3.以下代码的输出结果是什么?

    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+表示x的值+y的值加上后边的引号里面的内容。

  • 相关阅读:
    【权限维持】window服务端常见后门技术
    Empire安装和试用
    手把手教你打造自己的弱口令扫描工具(系统弱口令篇)
    Discuz!X 3.4 任意文件删除漏洞复现过程(附python脚本)
    【web端权限维持】利用ADS隐藏webshell
    Redis 未授权访问漏洞(附Python脚本)
    一句话木马:JSP篇
    一句话木马:ASPX篇
    一句话木马:ASP篇
    一句话木马:PHP篇
  • 原文地址:https://www.cnblogs.com/xk1013/p/11569135.html
Copyright © 2020-2023  润新知