一道面试题说开了去
无意之间翻了下知乎,看到有个关于面试题的问题,点进去一看发现自己还是存在好多知识盲点的,这里总结一下我学到的知识点。
public static void main(String[] args) { if () { System.out.println("a"); } else { System.out.println("b"); } }
需要输出"ab"
解法一:
public class OutTest { public static void main(String[] args) { if (new Object(){ private boolean flag(){ System.out.print("a"); return false; } }.flag()) { System.out.print("a"); } else { System.out.print("b"); } } }
注意一下这个匿名内部类的类名是Object类,相当于继承了java.lang.Object类。
解法二:
public class OutTest { public static void main(String[] args) { if (System.out.printf("a") == null) { System.out.print("a"); } else { System.out.print("b"); } } }
这里只有printf会返回PrintStream的类,println或者print都不会返回值。