SrtingBuffer和String 当StringBuffer和String都使用new的时候 是怎么能一回事? 栈、堆和常量区在那里分别得作用? 怎么存储的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 StringBuffer是字符串缓冲区,其中封装了String数组来存储添加进的字符信息而String只是一个字符串,前者共能更强大点,当我们StringBuffer sb=new StringBuffer();时,sb引用存在于栈内存中而new StringBuffer对象存在于堆内存中;而我们 String str=new String("字符串");时内存情况情况跟前者差不多,只是前者内部使用了(或者说封装了)String数组; 一般推荐使用StringBuilder,这个效率相对高些,只是相对于StringBuffer少了多线程的锁但是我们可以自己添加线程锁;建议楼主多看看书!强烈推荐传智播客的java视频教程 String s = new String("字符串"); 这样创建了几个object? 不是说在常量去也存着一个值吗? 用==比较字符串 画个关于堆、栈和常量区的图出来 如果前面已经有String str = “字符串” ;那么此时当然常量池中就有一个"字符串"的这个值 如果前面没有 用new的时候当然没存这个值了 所以现在王里面加 那么此时就是两个如果有就是一个 常量区不止存有String类型的 其他常量也存着 只是在不同的区 如果不好理解堆和栈的话 就把堆看着存变量名 栈存地址这样考虑其关系起来应该就好理解多了 FileInputStream的read方法 如何获取字节中的位信息 String转byte 数组???? java中锁对象的题目 急,求一个正则表达式! 问一个匹配模式的问题 Java就业培训教程 燕子轻呢精品软件园提供高速下载 大家能不能给说说Collections的Sort方法? 发个帖问个小问题,主要是送分,来者都有的 高价急求高手编写简单GUI游戏--内有详细解析 java中的引用和句柄是啥玩意? 为什么运行输出的不对(新手请教)
而String只是一个字符串,前者共能更强大点,
当我们StringBuffer sb=new StringBuffer();时,sb引用存在于栈内存中而
new StringBuffer对象存在于堆内存中;
而我们 String str=new String("字符串");时内存情况情况跟前者差不多,
只是前者内部使用了(或者说封装了)String数组;
但是我们可以自己添加线程锁;建议楼主多看看书!强烈推荐传智播客的java视频教程
那么此时当然常量池中就有一个"字符串"的这个值 如果前面没有 用new的时候当然没存这个值了
所以现在王里面加 那么此时就是两个
如果有就是一个
常量区不止存有String类型的 其他常量也存着 只是在不同的区
如果不好理解堆和栈的话 就把堆看着存变量名 栈存地址
这样考虑其关系起来应该就好理解多了