StringBuffer str = new StringBuffer( 10 ) ;这里的10是str的容量,我要是想在这10个容量里写东西,要怎么写呢? 这里的10是str的容量,我要是想在这10个容量里写东西,要怎么写呢?不会是10的容量太小吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 StringBuffer的好处就是不需要限制它的容量大小,可以节省空间,想加内容就调用StringBuffer类中的append()方法想删除就调用delete()方法 总之这个类有很多方法很实用你可以去API里看看 StringBuffer是一个用于存放动态存放字符串数据的类,他继承自java.lang.AbstractStringBuilder这个类。所谓动态存放是指:你无需考虑StringBuffer大小的问题。当你利用StringBuffer的append方法向其自身添加字符串的时候,如果此时StringBuffer默认提供的空间大小不够用,那么它会自动扩展自身的存储空间,以保证数据能够正常的放入到StringBuffer其中。你刚才在上面写道的 new StringBuffer(10) 我告诉你,StringBuffer默认的存储空间大小是16个字符,也就是说 new StringBuffer() 就等于 new StringBuffer(16),这回知道了吧。StringBuffer的底层是利用它的父类(AbstractStringBuilder)内部的一个默认长度为16的字符数组来存放数据的。(即:char value[];)每当你利用 StringBuffer的append方法向其中添加一个字符串的时候StringBuffer都会调用其父类(AbstractStringBuilder)的append方法,然后AbstractStringBuilder会判断其内部用于存放数据的那个char[]数组是否已经满了,(1)如果没有满,就会将你传入的字符串转化为字符并存入到那个字符数组中(即: str.getChars(0, len, value, count);)。(2)而如果那个char[]数组已经满了,那么AbstractStringBuilder会创建一个大小为当前数组两倍的新的char[]数组。然后利用System.arraycopy(value, 0, newValue, 0, count);将原始数据拷贝到这个新的数组中即可。就是这样啦~~写的我手的疼了牛年大吉~~ 你这里定义的10只是初始容量,默认的是16想往这里写呢,用appand()方法就可以啦 学javaee的话javase究竟要学到什么程度 用java如何模拟管理员手动操作? java 调用 oracle 存储过程 问题 开发语言互相调用 java 播放音乐的问题 为什么用不了Vector类? 如何在html上插入图片???? 求大神帮帮忙看看这个程序到底什么问题 JBuilder数据库问题 关于jbuilder的调试问题。200分 java连接access数据库 TreeCellRenderer的问题
想删除就调用delete()方法
总之这个类有很多方法很实用你可以去API里看看
当你利用StringBuffer的append方法向其自身添加字符串的时候,如果此时StringBuffer默认提供的空间大小不够用,
那么它会自动扩展自身的存储空间,以保证数据能够正常的放入到StringBuffer其中。你刚才在上面写道的 new StringBuffer(10)
我告诉你,StringBuffer默认的存储空间大小是16个字符,也就是说 new StringBuffer() 就等于 new StringBuffer(16),这回知道了吧。StringBuffer的底层是利用它的父类(AbstractStringBuilder)内部的一个默认长度为16的字符数组来存放数据的。(即:char value[];)每当你利用 StringBuffer的append方法向其中添加一个字符串的时候StringBuffer都会调用其父类(AbstractStringBuilder)的append方法,
然后AbstractStringBuilder会判断其内部用于存放数据的那个char[]数组是否已经满了,
(1)如果没有满,就会将你传入的字符串转化为
字符并存入到那个字符数组中(即: str.getChars(0, len, value, count);)。
(2)而如果那个char[]数组已经满了,那么AbstractStringBuilder会创建一个大小为当前数组两倍的新的char[]数组。
然后利用System.arraycopy(value, 0, newValue, 0, count);将原始数据拷贝到这个新的数组中即可。
就是这样啦~~
写的我手的疼了牛年大吉~~
想往这里写呢,用appand()方法就可以啦