Java面试题,你真的都能答上来?

下班后翻了翻面试题,发现面试题竟然有部分都答不上来,下面我就列出10道看大家能答出来几道呢?(我的回答不一定都正确,欢迎指正,共同进步!)

1.下面java代码的输出是什么?

public class Test {
  
  public static void main(String[] args) {
    method(null);
  }

  public static void method(Object o) {
    System.out.println("Object method");
  }
  
  public static void method(String s) {
    System.out.println("String method");
  }
}

答案:将打印"String method".首先,null在Java中不是一个对象,在Java中我们可以将null赋给任何一个引用类型。而Java中字符串是java.lang.String类的对象,在这里,Java编辑器会选择最具体的参数类型来调用重载方法,而String类型比Object更为具体,所以会调用method(String s)方法;

2.下面java代码的输出是什么?

public class Test{
  public static void main(String[] args){
    Integer num1 = 100;
    Integer num2 = 100;
    if(num1 == num2){
      System.out.println("num1 == num2");
    }
    else{
      System.out.println("num1 != num2");
    }
  }
}

答案:将打印"num1 == num2".每当使用"=="比较两个不同的对象引用时,值总是false.但是在这里,由于Integer缓存,num1和num2是自动装箱的,因此num1==num2返回"true",同时需要注意,整数缓存只会发生在-128到127之间的值;

3.垃圾收集是否可以防止Java应用程序内存不足?

答案:Java垃圾收集器不能防Java应用程序耗尽内存,他只是在对象超出范围不在需要时清除未使用的内存.因此,他不能保证防止Java应用程序不耗尽内存;

4.Java是按 [引用传递] 还是 [按值传递]?

答案:Java总是[按值传递],然而,当我们传递一个对象的值时,我们传递对它的引用,因为变量存储对象引用,而不是对象本身.但这不是[引用传递];

5.下面的代码创建了多少个String对象?

public class Test{
  public static void main(String[] args){
    String s = new String("Hello World");
  }
}

答案:创建了2个String对象,一个在堆内存中,一个在方法区中的字符串常量池中。

6.下面的代码输出什么?

public class Test{
  public static void main(String[] arr){
    System.out.println(0.1*3 == 0.3);
    System.out.println(0.1*2 == 0.2);
  }
}

答案:第一局输出false,第二局输出true。

7.有没有可能在Java中重写或重载静态方法?

答案:重载(overload)静态Java方法时可能的,但是不可能重写(override)他们,你可以在子类中编写具有相同命名的另一个静态方法,但是它不会重写超类方法,他在Java中被称为方法隐藏。

8.测试两个double值是否相等的最可靠的方法是什么?

答案:Double.compare(d1,d2)==0;

9.如果try或catch块执行一个return语句,finally块是否会被执行?

答案:会执行,阻止finally块执行的唯一方法是使用System.exit();

10.下面代码输出什么?

public class Test{ 
  public static void main(String[] args){ 
   System.out.println("main method");
  } 
  public static void main(String args){ 
   System.out.println("Overloaded main method");
  } 
}

答案:会打印"main method".不会错误或异常,因为main方法可以在Java中重载,必须从main方法内部调用它才能像其他方法一样执行。

最后今天没有加班开森,加U!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值