当前位置: 首页 > 面试题库 >

JAVA对象/字符串方法重载

周涵畅
2023-03-14
问题内容

出于好奇,我尝试了这个例子。

public class Class1 {

    public void method(Object obj){
        System.out.println("Object");
    }

    public void method(String str){
        System.out.println("String");
    }

    public static void main(String... arg){
        new Class1().method(null);
    }

}

输出为“字符串”。我想知道JVM决定在什么基础上调用以String作为参数而不是Object的方法。


问题答案:

只要可以将多个重载方法应用于参数列表,就会使用最具体的方法。

在这种情况下,传递时都可以调用这两种方法null,因为“空类型”既可以分配给也可以分配ObjectString。采取的方法String更加具体,因此将被选择。



 类似资料:
  • 可能重复: 基于参数的真实类型选择重载方法 当参数为文字空值时,如何选择重载方法? 当我执行下面的代码时,我得到以下输出: 名为“”的字符串参数为“”的方法。。。" 为什么?

  • 我们可以通过扩展String class来覆盖我们类中String class的所有方法吗?

  • 问题内容: 谁能从此链接http://www.javatpoint.com/corejava-interview- questions-3 解释问题87和89 87)在下面的代码中将创建多少个对象? 答案是:只有一个物体 89)在下面的代码中将创建多少个对象? 答案是:两个对象,一个在字符串常量池中,另一个在非池(堆)中。 问题答案: 尽管是用Java编写的类,但它是一种与JVM有特殊关系的特殊类

  • 我对编码非常陌生,刚刚接触过静态方法,所以我为这些愚蠢的错误提前道歉。在main下调用该方法时,该方法应该显示一个三角形,但我得到的控制台是空的,没有输出。但是,如果我将此写在main下: 然后,三角形将显示在控制台中,但是对于这个赋值,字符串/三角形必须仅通过使用来调用

  • 问题内容: Object o1 = new Object(); Object o2 = new Object(); //o1=o2; System.out.println(o1.equals(o2)); 它返回。如果删除了注释,则可以返回。 为什么同一件事不适用于该班级? 它返回。为什么?(因为使用实习生或其他涉及的东西?) 问题答案: 因为 String的equals() 比较内容,而不是对象本

  • 本文向大家介绍Java字符串方法,包括了Java字符串方法的使用技巧和注意事项,需要的朋友参考一下 字符串类在Java中有很多方法可以处理字符串,查找长度,格式化字符串,连接等。 以下是Java中的一些字符串方法- 序号 方法与说明 1 char charAt(int index) 返回指定索引处的字符。 2 int compareTo(Object o) 将此字符串与另一个对象进行比较。 3 i