• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Newyorkcity
V2EX  ›  程序员

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

  •  
  •   Newyorkcity · Sep 27, 2020 · 2341 views
    This topic created in 2074 days ago, the information mentioned may be changed or developed.
    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 replies    2020-09-28 09:39:27 +08:00
    zhanglintc
        1
    zhanglintc  
       Sep 27, 2020
    试了下,不去掉也可以运行来着。
    mxalbert1996
        2
    mxalbert1996  
       Sep 27, 2020 via Android
    抽象类继承具体类怎么就成骚操作了?这是很常见的设计吧。
    qwerthhusn
        3
    qwerthhusn  
       Sep 27, 2020
    1000s
    s1999
    0

    能运行
    能运行

    没问题,我都懒得打开编辑器或者 IDE 去验证
    Newyorkcity
        4
    Newyorkcity  
    OP
       Sep 27, 2020
    @qwerthhusn 最后一个错了 我这里运行出来是 -128
    qwerthhusn
        5
    qwerthhusn  
       Sep 27, 2020
    @Newyorkcity 额,翻车了,现了原形
    应该是 00000000 00000000 00000000 10000000
    我想成了 00000000 00000000 00000001 00000000
    palmers
        6
    palmers  
       Sep 28, 2020
    int i = 128;
    byte b = (byte) i;
    这段挺好 可以引发计算机数值表示 机器数 真值 原码 反码 补码的原理
    Newyorkcity
        7
    Newyorkcity  
    OP
       Sep 28, 2020
    @palmers 我在做的时候有想过机器是大小端会不会影响结果
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   976 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 21:45 · PVG 05:45 · LAX 14:45 · JFK 17:45
    ♥ Do have faith in what you're doing.