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

2020 年 9 月 27 日
 Newyorkcity
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 {

    }
}

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

2528 次点击
所在节点    程序员
7 条回复
zhanglintc
2020 年 9 月 27 日
试了下,不去掉也可以运行来着。
mxalbert1996
2020 年 9 月 27 日
抽象类继承具体类怎么就成骚操作了?这是很常见的设计吧。
qwerthhusn
2020 年 9 月 27 日
1000s
s1999
0

能运行
能运行

没问题,我都懒得打开编辑器或者 IDE 去验证
Newyorkcity
2020 年 9 月 27 日
@qwerthhusn 最后一个错了 我这里运行出来是 -128
qwerthhusn
2020 年 9 月 27 日
@Newyorkcity 额,翻车了,现了原形
应该是 00000000 00000000 00000000 10000000
我想成了 00000000 00000000 00000001 00000000
palmers
2020 年 9 月 28 日
int i = 128;
byte b = (byte) i;
这段挺好 可以引发计算机数值表示 机器数 真值 原码 反码 补码的原理
Newyorkcity
2020 年 9 月 28 日
@palmers 我在做的时候有想过机器是大小端会不会影响结果

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/711064

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX