当前位置:   article > 正文

脉脉的一道网红Java面试题

在method方法被调用后,仅打印出a=100

1666949-20190729232531029-306480103.jpg

题目如下:

  1. public class Test {
  2. public static void main(String[] args) {
  3. int a = 10;
  4. int b = 10;
  5. // 需要在method方法被调用后,仅打印出a=100,b=200,请写出method方法的代码
  6. method(a, b);
  7. System.out.println("a=" + a);
  8. System.out.println("b=" + b);
  9. }
  10. // 代码编写处
  11. }

题面看着很简单,但小心有坑。

Java中方法的参数传递机制是值传递,所以不能简单的在method方法中使用a*10b*20,可以参考。。。。。。

示例答案一:使用System.exit()终止虚拟机

  1. public static void method(int a, int b) {
  2. System.out.println("a=" + a * 10);
  3. System.out.println("b=" + b * 20);
  4. System.exit(0);
  5. }

示例答案二:重写打印流的println方法

  1. public static void method(int a, int b) {
  2. PrintStream ps = new PrintStream(System.out) {
  3. @Override
  4. public void println(String x) {
  5. if ("a=10".equals(x)) {
  6. x = "a=100";
  7. } else if ("b=10".equals(x)) {
  8. x = "b=200";
  9. }
  10. super.println(x);
  11. }
  12. };
  13. System.setOut(ps);
  14. }

1666949-20190729232604156-2129219845.jpg

转载于:https://www.cnblogs.com/sum-41/p/11267210.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/940344
推荐阅读
相关标签
  

闽ICP备14008679号