分别在内存中什么状态。
解决方案 »
- 用Hibernate时出错.请高手帮忙解决一下.
- 类似chinaren的登录方式
- java.net.SocketException:Connect reset属于什么错误????哪为高手知道?
- 请问JAVA软件测试工具有那几种?在线等
- java中的预定义问题,急
- ckfinder上传图片不能显示并说是demo怎么回事?
- java联接delphi作的BOA方式的corba对象,为什么找不到对象呀!
- 谁帮我解释一下tomcat的web.xml内容的意思,比如examples\WEB-INF\web.xml
- JSP文件的加密?????
- 推荐一个做JSP的好工具(送分30)
- jsp获取session的值的问题!
- 业界通用的CRM功能主要包括哪些
反射
对象都创建在堆里
第一种:
String str = new String();
第二种:
String str = Class.forName(String).newInstance()两种方法创建的对象实体没有任何区别,如果硬说有区别的话,那就是第一种直接调用了本类的构造函数,如果本类有多个构造函数重载的话,可以添加参数。而第二种是调用这个类的默认构造函数,即不带任何参数的。
第一种方法是最常用,最普遍的用法。
第二种方法叫做工厂模式,是一种较安全的方法。
1.new
2.clone
3.newInstance
4.反序列化
5.String s = "abc"(这个是比较特殊的)
执行一个类的时候(main方法),会自动创建一个String数组作为参数,无需new,无需反射
我记得在深入java虚拟机第二版有讲这些问题
饿汉式class S1 {
private S1() {
System.out.println("ok1");
}
private static S1 instance = new S1();
public static S1 getInstance() {
return instance;
}
}
懒汉式class S2 {
private S2() {
System.out.println("ok2");
}
private static S2 instance = null;
public static synchronized S2 getInstance() {
if (instance == null) instance = new S2();
return instance;
}
}
隐式创建对象是没有显示的给予创建对象的语句,而由编译器或者jvm来负责创建对象的过程,例如:
String str="";
Integer i=500;等等,这些语句。
还有显示创建对象,显示创建对象包含四种形式:
1、使用new关键字创建对象。
2、使用反射库创建对象。
3、反序列化创建对象。
4、对象的克隆。
设计模式的对象创建方式包含在以上四种之内,设计模式中创建对象用到的最多的应该反射的形式来创建对象。