new java()和new java()有什么区别?
在泛型类对象创建中,有什么区别?
如果有类似于Object obj = new Object()形式的obj引用的话,在栈区定义Object 类型引用变量obj,然后将堆区对象的地址赋值给它;
答案:
Java中泛型类对象创建有两种方法:
1.使用"new 类名()"创建泛型类对象,这种方法创建的泛型类对象不指定具体类型,需要在使用时用具体类型来替代泛型类型。例如:
List list = new ArrayList();
list.add("hello");
String str = (String) list.get(0);//需要强制转换成String类型
2.使用"new 类名()"创建泛型类对象,这种方法创建的泛型类对象指定了具体类型,在使用时不再需要指定具体类型,例如:
List<String> list = new ArrayList<String>();
list.add("hello");
String str = list.get(0);//不需要强制转换
两种方法的区别在于,第一种方法创建的泛型类对象不指定具体类型,需要在使用时用具体类型来替代泛型类型;而第二种方法创建的泛型类对象已经指定了具体类型,不需要在使用时再去指定。
需要注意的是,无论使用哪种方法创建泛型类对象,都需要在类名后面加上""来指定该类是泛型类。例如:
public class MyClass<T>{
//...
}