深入String 与StringBuffer详解那个更省资源
2019独角兽企业重金招聘Python工程师标准>>>
String类型,类似于常量,对它对象的每一个此操作相当于抛弃了原来的String对象,生成一个新的String对象,让对象指向新String对象地址,例如:
String str1 = new String("abc");//新建一个str对象,比如为其分配地址:12345,即str指向的地址是12345
String str2 = new String("def");
str1 = str1 + str2;
解析:这里其实又新建了一个String对象其值为abcdef,那么此时str指向的地址不再是12345,而是其他地址值,也就是说存储有 “abc”的地址空间已经被舍弃,成为废弃的地址空间,纵然JAVA有完美的垃圾回收机制,程序员不用担心内存溢出,但是当有很多废弃地址空间时,调用 GC来回收,仍然需耗费系统很多资源,从而减低系统性能。
StringBuffer的情形:
StringBuffer str1= new StringBuffer("abc");//假设此时地址认为:12345
String str2 = "def";
str1.append(str2);//此时str1指向的地址空间仍为12345
之所以会出现上面情形,是由StringBuffer的内部实现机制决定的,StringBuffer预先预留一部分地址空间以备扩充(一般是16个字符的预留空间),只有当需要的地址空间超过预留的地址空间时,才会创建一个新对象,这点和String对象一样的。
转载于:https://my.oschina.net/lzwenme/blog/160009
深入String 与StringBuffer详解那个更省资源相关推荐
- python string模块template_Python - 定制pattern的string模板(template) 详解
定制pattern的string模板(template) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28625179 s ...
- xss编码绕过详解(更像是在介绍实体编码和JS编码的解析过程)
xss编码绕过详解(更像是在介绍实体编码和JS编码的解析过程) 注:本文通过研究各种情况下实体编码和JS编码是否生效,进而总结了哪些情况下能够进行编码后,javascript代码依然能够正常执行. 解 ...
- String.format()方法详解
String.format()方法详解 前言: String.format()作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,这里根据查阅的资料做个学习笔记,整理成如下文章,供后续复习查阅. ...
- string头文件详解
string头文件详解 头文件 #include<string> using namespace std; 访问字符串 string str="abcd"; for(i ...
- articulate storyline 导出html5,Articulate Storyline 3详解与交互学习资源制作
Articulate Storyline 3详解与交互学习资源制作 语音 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! <Articula ...
- String类最详解(String、StringBuffer、StringBuilder、正则表达式)表格+代码让你一文读懂!!!
文章目录 String类 概述 创建字符串 第一种创建方式 第二种创建方式 构造方法 判断功能 获取功能 转换功能 替换功能 正则表达式 StringBuffer类 概述 StringBuffer的方 ...
- STL中map和string, vector 用法详解
1. map 用法详解 std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成 ...
- java中String的用法详解
在这里先分别对String.StringBuffer.StringBuilder进行解析,在比较三者异同 String String类:代表字符串.Java程序中所有的字符串字面值(如"fd ...
- Java中String类intern()详解
1.背景 在开发过程中很多朋友,由于不会正确使用intern(),导致开发的程序,执行效率比较差.同时最近发现一道非常有意思的关于intern()的面试题,这道面试题还是有不小的难度,相信很多朋友看到 ...
- 对于String的用法详解
目录 一.String的基本用法 二.对于字符串常量池的理解. 三.String类的常见操作. 四.StringBuffer和StringBuilder的使用. 一.String的基本用法 1.1St ...
最新文章
- 这是一张很有趣的图片, 通常女性会先看到月亮, 男性会先看到人脸. 如果相反, 表示你体内的异性荷尔蒙偏高哦!...
- 交换机复习笔记 广播风暴抑制
- 电脑桌面路径多了个计算机名,文件太多,电脑桌面太乱?一个技巧帮你解决!...
- linux bash命令_Ultimate Linux命令行指南-Full Bash教程
- springboot 接口文档 请求 enum_Spring Boot集成SpringFox 3:生成Swagger接口文档
- Linux C简单日志打印代码示例
- JAVA中dot的用法_Java 方法
- 引用Interop.SQLDMO.dll后的注意事项。
- python123输出hello world_2-python学习——hello world
- PHP tcp短链接,示例:建立TCP链接
- Button,LinkButton,ImageButton,HyperLink使用
- spring简易学习笔记四(jdbcTemplate和事务控制)
- 白盒分析CC网络验证
- 2020计算机考试系统office,2020年3月计算机二级考试,大学生office考试教材,仿真考试系统...
- ds18b20驱动程序Linux,ARM-linux嵌入式内核驱动——DS18B20的驱动
- 基于单片机的水温液位监测系统设计(#0513)
- linux dx游戏,10大免费 Linux 游戏
- 搭建个人网盘-owncloud
- 已解决Building wheels for collected packages: lxml
- MAC双系统U盘安装方法