网管 发布的文章

String str1 = new String("abc")和 String str2 = "abc" 和 区别?两个语句都会去字符串常量池中检查是否已经存在 “abc”,如果有则直接使用,如果没有则会在常量池中创建 “abc” 对象。String s = new String("abc")创建了几个对象?很明显,它创建了一个或两个对象。如果字符串常量池中已经存在 "abc",则只创建一个对象;否则,创建两个对象。

- 阅读剩余部分 -

String 和 StringBuilder、StringBuffer 的区别?String: String 类型的值一旦创建就不能被修改,任何对 String 的修改都会生成一个新的 String 对象。StringBuffer: StringBuffer 类似于 String,但是它的值可以被修改。StringBuffer 使用 synchronized 来保证线程安全,在多线程环境下使用较为安全。

- 阅读剩余部分 -

Java 创建对象有哪几种方式?Java 中有以下四种创建对象的方式:使用 new 关键字创建新对象:通过调用类的构造方法,使用 new 关键字创建一个新的对象实例。使用反射机制创建对象:通过 Class 类的 newInstance() 方法或者 Constructor 类的 newInstance() 方法,可以在运行时动态地创建对象。

- 阅读剩余部分 -

深拷贝和浅拷贝?浅拷贝:浅拷贝仅复制被拷贝对象的成员变量值,包括基本数据类型的值和引用数据类型变量的地址值。对于引用类型变量指向的堆中的对象,浅拷贝只复制其地址,因此被拷贝对象和拷贝后的对象会共享同一个对象实例。

- 阅读剩余部分 -

hashCode 与 equals?重写 hashCode 和 equals 方法是为了维护对象相等性的一致性。当我们重写 equals 方法时,我们改变了对象相等的定义,通常是根据对象的内容来判断它们是否相等,而不仅仅是比较内存地址。但是,如果我们只重写 equals 方法而不重写 hashCode 方法,就会违反 hashCode 的契约条件。

- 阅读剩余部分 -