gpt4 book ai didi

java - 字符串实例化与字符串缓冲区实例化

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:34:56 24 4
gpt4 key购买 nike

我不知道如果

String ab = "hello";        //straight initialization

String ab_1 = new String ("hello_1"); //initializing using new

两者都有效,但是

StringBuffer bfr = new StringBuffer("hi");   //works only with new

只有在使用 new 创建时才有效。

为什么String可以直接实例化,StringBuffer需要new操作符。谁能解释一下主要原因。

最佳答案

所有对象都需要用new实例化。只有原语可以从文字中实例化 (int i = 0;)。

唯一的异常(exception)是:

  • 字符串,允许特殊的初始化结构:
   String s = "abc"; //can be instantiated from a literal, like primitives
  • 空实例化:Object o = null;

它在 Java Language Specification #3.10 中定义:

A literal is the source code representation of a value of a primitive type, the String type, or the null type.

注意:数组也有一个专用的初始化模式,但那不是文字:

   int[][] a = { { 00, 01 }, { 10, 11 } };

关于java - 字符串实例化与字符串缓冲区实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11986152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com