java里,string的长度是固定的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里,string的长度是固定的?相关的知识,希望对你有一定的参考价值。
看面试题string和stringbuffer的区别,提到string长度是固定的,这个长度是多少啊
String s;这个只是声明了一个变量,除了变量本身,是没有长度的;String s = "sss";这个与"sss"的值的长度有关,此时s.length将为3;
但即使给s执行s + "1"操作,Java虚拟机也将创建一个新的字符串"sss1",这个与刚才的"sss"指向了不同的地址空间,此时s.length为4;
这是因为String的实现是final类型的char[],一旦对其赋值,其所对应的地址空间将不会改变;如果再次赋值或者执行"s"都将开辟新空间创建新对象,所以说每一个Java栈上的String对象的长度是固定的。 参考技术A 所谓长度固定不是你理解的意思
而是说String类中存储的char[]是final的,不能修改,你对String的操作实际上是产生了一个新的String,对于某一个String来说,长度就是固定的了本回答被提问者采纳 参考技术B 你理解错了。
Java 中的 String 对象是一旦创建不可被修改的,对它的任何操作(如用 + 号连接都会导致新的 String 对象被创建);
而 StringBuffer 是可以对同一个对象进行 append(添加)、delete(删除字符)、insert(插入字符)等操作。
因此经常说如果你想提高字符串处理性能的话,最好用 StringBuffer 的 append 方法而不是用 String 的 + 号来连接两个字符串。
题目其实是这个意思,只是说法不太好。 参考技术C String 的长度被设计成只能通过方法读取。为了防止出现类似 str.length = 5; 之类的语句。因为这是不合理的语句,用户是不应该这样设定字符串的长度的,应该只能读取它。
字段text类型以大括号开头 Java里获取不到
参考技术A TINYTEXT和CHAR。CHAR,保存固定长度的字符串(可包含字母,数字以及特殊字符)。在括号中指定字符串的长度。最多255个字符。TINYTEXT,存放最大长度为255个字符的字符串。TEXT,存放最大长度为65535个字符的字符串。
以上是关于java里,string的长度是固定的?的主要内容,如果未能解决你的问题,请参考以下文章
Java String类型的日期怎么转为Date类型,不要SimpleDateFormat给的固定形式,因为String有多个长度时间