出于好奇,我尝试了这个例子。
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
,因为“空类型”既可以分配给也可以分配Object
给String
。采取的方法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