知识大全 问题解决分析:String Buffer的小问题
Posted 知
篇首语:获致幸福的不二法门是珍视你所拥有的、遗忘你所没有的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 问题解决分析:String Buffer的小问题相关的知识,希望对你有一定的参考价值。
问题解决分析:String Buffer的小问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在String对象中有个构造函数是直接接受StringBuffer的 程序如下 public String (StringBuffer buffer) synchronized(buffer) buffer setShared(); this value = buffer getValue(); this offset = ; unt = buffer length(); 在StringBuffer中 final char[] getValue() return value; 很明显的 这个构造函数直接把StringBuffer的char[]数组返回给了String对象 也就是现在新生成的String和StringBuffer共用同一个char[]数组 但是下面的程序为什么会打印出以下结果呢 StringBuffer sb = new StringBuffer( abc ); System out println( StringBuffer: + sb toString()); String s = new String(sb); System out println( String: + s); sb append( ); System out println( StringBuffer: + sb); System out println( String: + s); ///////////////////////////////////////////////////////////////////// StringBuffer: abc String: abc StringBuffer: abc String: abc 分析 这个问题的核心答案在 unt = buffer length() 这句话上 这句话的意思是String中的count的大小为这个char[]数组中实际含有的字符的个数 而不是这个数组的大小 所以在打印的时候对于上面的String对象 只会打印 个字符 而不是六个字符!! 新的问题 如果我从StringBuffer中删除了一个字符 那么String对象也应该受到影响了?但是为什么实际上这个String没有发生变化呢?问题的答案在buffer setShared()上 这句话的含义就是告诉这个StringBuffer 有其它的String对象与它共享它的char[]数组 这个时候 当它进行delete insert等操作的时候 它会新生成一个char[]数组 然后再进行操作 所以这个时候String和StringBuffer就不共享同一个数组了 String自然也就不会受到影响了 为什么要用这么复杂的方法呢?答案是 节省内存资源 可以想想 我们在程序中使用最频繁的对象都有哪些?答案肯定包含String 而我们知道 在拼装一个String的时候 使用StringBuffer效率最高 所以我们会先用StringBuffer动态的拼装好一个字符串 然后再把它转化成String对象 这个时候就会突显这种方式的经典之处了 下面是StringBuffer的toString()方法 public String toString() return new String(this); cha138/Article/program/Java/hx/201311/26156相关参考
跟你一起分析JAVA中文比较问题的解决 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java的
Java编程技术中汉字问题的分析及解决 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在基于Ja
(1)选择与分析系统的结构,如分级分布式系统、环形系统等。它表明在整个系统中,各子系统之间的关系及其所处的地位,也指明了系统中各台计算机之间的网络连接方式。各类结构分别有其功能和优缺点,必须全面分
(1)选择与分析系统的结构,如分级分布式系统、环形系统等。它表明在整个系统中,各子系统之间的关系及其所处的地位,也指明了系统中各台计算机之间的网络连接方式。各类结构分别有其功能和优缺点,必须全面分
知识大全 关于include标签导致js路径找不到的问题分析及解决
关于使用jsp:include标签及<%@include标签时要注意的事项先回忆一下二者的区别(对于此篇文章而言二者在用法上没有区别)jsp:include是先编译一下includedjsp
用人们既有的自然知识、社会知识和__指导人们去分析和解决问题,就转化为方法论
用人们既有的自然知识、社会知识和_____指导人们去分析和解决问题,就转化为方法论。A、思维知识B、传统知识C、文化知识D、科学知识答案:A解析:哲学是哲学家依据一定的自然知识、社会知识和思维知识,把
毛泽东指出,解决中国一切革命问题的最基本的根据是_____。A、正确分析中国社会的阶级状况B、认清中国社会的特殊国情C、正确分析中国社会的经济结构D、认清中国社会的主要矛盾答案:B解析:毛泽东在《中国
宋老师发现教学中的某一问题并对其进行描述,继而形成解决计划并实施,随后搜集数据和材料分析计划的有效性,最后把结果应用于处
宋老师发现教学中的某一问题并对其进行描述,继而形成解决计划并实施,随后搜集数据和材料分析计划的有效性,最后把结果应用于处理后续课堂中出现的类似问题,这种研究方法是_____。A、叙事B、行动C、文献D
其实搞这个小程序只是为了更好的解决现在遇到的问题什么问题呢? 现在在做关于图像处理的课题用CCD批量拍摄了几百副图像命名方式为bmpbmpbmp按顺序来的因为有些图像因为模糊或者不符合处理 条
假如你是小何,你怎样解决这一“苦恼”问题?(9分)答案:假如我是小何,将从以下几方面人手解决这一问题:(1)增强工作主动性,要强化主动意识,超前谋划、主动分析,力求考虑问题快半拍;(2)在信息反馈上情