什么是null?
是null一个什么的实例?
什么集合null属于?
它是如何在记忆中表现出来的?
出于好奇,我尝试了这个例子.
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);
}
}
Run Code Online (Sandbox Code Playgroud)
输出为"String".我想知道JVM在什么基础上决定调用String作为参数而不是Object的方法.
在两天内我在java考试,我无法弄清楚这个问题的答案:
class ClassA {
public String foo(Integer x , int y) {
return "Integer, int";
}
public String foo(int x, Double y) {
return "int, Double";
}
public String foo(Number x, Number y) {
return "Number, Number";
}
public String foo(Object x, Object y) {
return "Object, Object";
}
public static void main(String... args) {
ClassA a = new ClassA();
System.out.print(a.foo(5, 1.2f) + " ");
System.out.println(a.foo(null, null));
}
}
Run Code Online (Sandbox Code Playgroud)
什么输出?
答案是:
Number, Number Number, Number
Run Code Online (Sandbox Code Playgroud)
我知道java总是选择最指定的方法,这就是为什么a.foo(null,null);要调用Number,Number方法而不是 …
我有以下代码
import java.util.List;
public class Sample {
public static void main(String[] args) {
test(null);
}
static void test(List<Object> a){
System.out.println("List of Object");
}
static void test(Object a){
System.out.println("Object");
}
}
Run Code Online (Sandbox Code Playgroud)
我在控制台中得到了以下输出
List of Object
Run Code Online (Sandbox Code Playgroud)
为什么不拨打电话test(Object a)?你能解释一下"List as"是null怎么解释的吗?
null如何在此代码中工作,为什么不打印对象?
class Test1{
public void doStuff(Object o){
System.out.println("In Object");
}
public void doStuff(String o){
System.out.println("In String");
}
}
public class TTest {
public static void main(String args[]){
Test1 t = new Test1();
t.doStuff(null);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
在字符串中
我想知道为什么下面的代码不起作用:
System.out.print(null);
response.getWriter().print(null);
Run Code Online (Sandbox Code Playgroud)
但是下面的工作:
String s = null;
System.out.print(s);
response.getWriter().print(s);
Run Code Online (Sandbox Code Playgroud)
传递a null与传递引用之间的区别是null什么?
编辑: 前面提到的工作不表示编译错误.