cha*_* ro 7 java stringbuilder
StringBuilder sb = "asd";
Run Code Online (Sandbox Code Playgroud)
在Java中,这种说法显然是错误的.像eclipse这样的IDE会告诉你:
无法从String转换为StringBuilder
但是,操作员String可以初始化对象=.
我想知道一些与内存分配有关的原因.
Mar*_*oun 10
因为StringBuilder是一个对象而且需要构造它.你得到的错误,因为字符串是不是一个StringBuilder.
字符串是一个特殊的,它设计在原始和类1之间.您可以将字符串文字直接分配给String变量,而不是调用构造函数来创建String实例.
1个有趣的话题:
Java的设计者决定将原始类型保留在面向对象的语言中,而不是将所有东西都作为对象,从而提高语言的性能.基元存储在调用堆栈中,这需要较少的存储空间并且操作起来更便宜.另一方面,对象存储在程序堆中,这需要复杂的内存管理和更多的存储空间.
出于性能原因,Java的String设计在原语和类之间.
更多阅读:
"xxx"由语言*的规范定义为字符串文字,并且是 String对象.所以你可以写:
String s = "abc"; //ok we got it
Object o = "abc"; //a String is an Object
CharSequence cs = "abc"; //a String is also a CharSequence
Run Code Online (Sandbox Code Playgroud)
但是String不是StringBuilder ......
*来自JLS的引用:"字符串文字总是类型String"
| 归档时间: |
|
| 查看次数: |
2074 次 |
| 最近记录: |