V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Newyorkcity
V2EX  ›  程序员

一些细枝末节的 Java 题 也许你也会被考到呢。。

  •  
  •   Newyorkcity · 2020-09-27 21:22:43 +08:00 · 1964 次点击
    这是一个创建于 1512 天前的主题,其中的信息可能已经有所发展或是发生改变。
    public class Main {
    
        public static void main(String[] args) {
            System.out.println(1 + 999 + "s");
            System.out.println("s" + 1 + 999);
            int i = 128;
            byte b = (byte) i;
            System.out.println(b);
        }
    
        static class ConcreteClass {
    
        }
    
        static abstract class AbstractClass extends ConcreteClass {
    
        }
    }
    
    

    程序能否编译通过并运行? 去掉抽象类继承具体类这个骚操作后能编译并运行吗? 运行输出的结果会是啥?

    7 条回复    2020-09-28 09:39:27 +08:00
    zhanglintc
        1
    zhanglintc  
       2020-09-27 21:45:03 +08:00
    试了下,不去掉也可以运行来着。
    mxalbert1996
        2
    mxalbert1996  
       2020-09-27 22:17:44 +08:00 via Android
    抽象类继承具体类怎么就成骚操作了?这是很常见的设计吧。
    qwerthhusn
        3
    qwerthhusn  
       2020-09-27 22:23:35 +08:00
    1000s
    s1999
    0

    能运行
    能运行

    没问题,我都懒得打开编辑器或者 IDE 去验证
    Newyorkcity
        4
    Newyorkcity  
    OP
       2020-09-27 22:28:36 +08:00
    @qwerthhusn 最后一个错了 我这里运行出来是 -128
    qwerthhusn
        5
    qwerthhusn  
       2020-09-27 23:49:18 +08:00
    @Newyorkcity 额,翻车了,现了原形
    应该是 00000000 00000000 00000000 10000000
    我想成了 00000000 00000000 00000001 00000000
    palmers
        6
    palmers  
       2020-09-28 09:20:45 +08:00
    int i = 128;
    byte b = (byte) i;
    这段挺好 可以引发计算机数值表示 机器数 真值 原码 反码 补码的原理
    Newyorkcity
        7
    Newyorkcity  
    OP
       2020-09-28 09:39:27 +08:00
    @palmers 我在做的时候有想过机器是大小端会不会影响结果
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   907 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:49 · PVG 04:49 · LAX 12:49 · JFK 15:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.