SimpleDateFormat的实例对象 打印出一样内存地址
时间: 2023-07-25 22:34:24 浏览: 38
如果两个 SimpleDateFormat 的实例对象打印出一样的内存地址,这是非常不寻常的,因为每个对象都应该具有唯一的内存地址。在 Java 中,如果两个对象的内存地址相同,那么它们实际上是同一个对象,这种情况很少见,通常只会出现在一些特殊的情况下。
如果你真的想要创建两个具有相同内存地址的对象,可以使用 Java 的序列化和反序列化机制来实现。例如:
```java
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
oos.writeObject(sdf1);
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bis);
SimpleDateFormat sdf2 = (SimpleDateFormat) ois.readObject();
System.out.println("sdf1.hashCode() = " + sdf1.hashCode());
System.out.println("sdf2.hashCode() = " + sdf2.hashCode());
```
这段代码将创建一个 SimpleDateFormat 对象 sdf1,并将其序列化到一个字节数组中。然后,将该字节数组反序列化为另一个 SimpleDateFormat 对象 sdf2。由于这两个对象的所有属性都相同,因此它们具有相同的内存地址。