Java String:面向对象编程中的独特实体
尽管是一个类,但 Java String 对象可以使用双引号初始化。这个看似悖论可以通过检查 Java 字符串的特殊性质来解释。
Java 的设计注意事项
Java 的创建者认识到在对象中保留基本类型的效率优势 -导向的环境。与驻留在程序堆中并需要复杂内存管理的对象相比,存储在调用堆栈中的基元提供紧凑的存储和易于操作的功能。
字符串:混合实体
为了获得最佳性能,Java 的 String 对象被设计为基元和类之间的混合体。虽然它与基元共享某些特征,例如高效的存储和操作,但它还表现出类似对象的属性。
字符串文字和对象
考虑以下示例:
String s1 = "Hello"; // String literal String s2 = "Hello"; // String literal String s3 = s1; // Same reference String s4 = new String("Hello"); // String object String s5 = new String("Hello"); // String object
字符串文字(本例中为“Hello”)存储在公共池中,从而实现相同字符串的存储共享。相比之下,通过“new”运算符创建的 String 对象存储在堆中,并且不会从存储共享中受益。
注意: 字符串文字存储在字符串常量池中,这是内存中存储常量的位置。这确保了如果两个或多个变量引用相同的字符串值,它们实际上引用内存中的同一个对象,而不是创建多个副本。
以上是Java 的字符串对象如何协调其类似原始的行为与其面向对象的本质?的详细内容。更多信息请关注PHP中文网其他相关文章!