我是StringBuilder
第一次遇到,很惊讶,因为Java已经具有一个非常强大的String
类,可以追加。
为什么要上第二String
堂课?
在哪里可以了解更多信息StringBuilder
?
String
不允许附加。你在上调用的每个方法都会String
创建一个新对象并返回它。这是因为String它是不可变的-无法更改其内部状态。
另一方面StringBuilder
是可变的。调用时,append(..)
它会更改内部char数组,而不是创建新的字符串对象。
因此,拥有:
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 500; i ++) {
sb.append(i);
}
而不是str += i
,这将创建500个新的字符串对象。
请注意,在示例中,我使用了循环。正如Helios
在注释中指出的那样,编译器会自动将类似的表达式转换String d = a + b + c
为类似
String d = new StringBuilder(a).append(b).append(c).toString();
另请注意StringBuffer
,除了StringBuilder
。区别在于前者具有同步方法。如果将其用作局部变量,请使用StringBuilder
。如果碰巧有可能被多个线程访问,请使用StringBuffer(这种情况较为罕见)
我应该如何在Java中声明方法? 这样地: 或者像这样: 字符串[]和字符串之间的区别是什么 如果有?
问题内容: 我应该如何用Java 声明方法? 像这样: 或像这样: 和如果有的话,实际上有什么区别? 问题答案: 我应该如何在Java中声明main()方法? 和在内部同样的事情,即,字符串的数组。区别在于,当您使用varargs参数()时,可以像下面这样调用方法: 并且当您将参数声明为String数组时, 必须以 这种方式调用: 和…(如果有)之间到底有什么区别? 约定是用作主要的方法参数,但也
Java中的String是什么,我应该在什么时候使用它,为什么?
我对下面的程序有一个问题 请看下面的程序 我所期望的是,一旦我运行这个程序,我会认为putput是最好的,但令我惊讶的是,输出是测试。 谁能告诉我,为什么会这样?? 提前感谢。
问题内容: 我正在使用Apache Commons HttpClient PostMethod 3.1。 在PostMethod类中,还有三种用于设置POST方法的请求正文的方法: NameValuePair API 不建议使用前两种方法。有人知道为什么吗?因为如果我想将XML放入请求正文,NameValuePair不会对我有帮助。 有人知道解决方法或解决方案吗? 问题答案: Javadoc说:
错误 java.text.ParseException: Unparseable date: "April 25, 2024 20:28" 是不是我格式不对,应该怎么写