Effective Java(二)—— 循环与 StringBuilder
当需要为一个类编写 toString() 方法时,如果字符串操作比较简单,便可以信赖编译器,它会为你合理地构造最终的字符串结果(而不会不断创建冗余的中间变量)。
String mongo = "mongo";
String s = "abc" + "mongo" + "def" + 47;// StringBuilder.apppend("abc").append(mongo).append("def").append(47)// StringBuilder.toString() ⇒ s
但如果要在 toString() 方法中使用循环,那么最好自己创建(而不是交由编译器)一个 StringBuilder 对象,用它来构造最终的结果。
StringBuilder result = new StringBuilder();
for () {result.append(...);
}
return result.toString();
1. String 与 StringBuilder
String 对象是不可变的,你可以赋给一个 String 对象任意多的别名。因为 String 对象具有只读特性,指向它的任何引用都不可能改变它的值。因此,也就不会对其他的引用有什么影响。
2. StringBuilder 丰富的成员函数
- 最常用的:append(), toString()
- insert(), replace(), substring(), reverse()
delete(start, end):注意端点的开闭性;
- 比如删除末尾的两个元素:
delete(seq.length()-2, seq.length())
Effective Java(二)—— 循环与 StringBuilder相关推荐
- Java while循环与dowhile循环
Java while循环与dowhile循环 1.while循环 2.do...while循环 1.while循环 语法 while(表达式){ 循环体 } 循环三要素1.变量初始化 2.循环条件的判 ...
- Effective Java读书笔记(二)
Effective Java 读书笔记 (二) 创建和销毁对象 遇到多个构造器参数时要考虑使用构建器 创建和销毁对象 何时以及如何创建对象? 何时以及如何避免创建对象? 如何确保它们能够适时地销毁? ...
- Effective Java读书笔记二:枚举和注解
第30条:用enum代替int常量 当需要一组固定常量的时候,应该使用enum代替int常量,除了对于手机登资源有限的设备应该酌情考虑enum的性能弱势之外. 第31条:用实例域代替序数 枚举的ord ...
- 《Effective Java》阅读笔记(二)
最近在看<Effective Java>这本书,顺便就记录一些笔记,记录一下书中的一些知识点以及对知识点的总结.一般情况会记录所有的知识点,但是知识点太过简单或者无归纳点总结的就不做详细记 ...
- \(^_^)/ Effective java
读<Effect Java中文版> 译者序 序 前言 第1章引言 1 第2章创建和销毁对象 4 第1条:考虑用静态工厂方法代替构造函数 4 第2条:使用私有构造函数强化singleto ...
- 读完 Effective Java,我整理了 59 条技巧!(含pdf)
点击⬆️方"逆锋起笔",公众号回复 编程资源领取大佬们推荐的学习资料 上一篇:CTO 写低级 Bug,致公司 70 GB 数据泄露! 作者:Dong GuoChao 链接:http ...
- 5天带你读完《Effective Java》(三)
<Effective Java>是Java开发领域无可争议的经典之作,连Java之父James Gosling都说: "如果说我需要一本Java编程的书,那就是它了". ...
- 《Effective Java》真的是一本值得一直去钻研的好书
文章目录 <Effective Java>读书笔记 第一章 引言 第二章 创建和销毁对象 1 考虑使用静态工厂方法替代构造方法** 2 当构造方法参数过多时使用builder(建造者) 模 ...
- 第 3 次读 Effective Java,这 58 个技巧最值!
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:Dong GuoChao <Effective ...
最新文章
- java web service_怎样新建一个Java的Web Service
- 学习使用Free RTOS ,移植最新的STM32 v3.5固件库
- 最优化——单纯形法学习心得
- C#实现RSA加密解密
- mysql char(36)_MySQL中char(36)被認為是GUID導致的BUG及解決方案
- 奔图打印机显示未连接_国货之“彩” |奔图CP2200DW彩色激光打印机首测
- L2TP OVER IPSEC原理详解
- 一大推DISCUZ系列插件模板来了,需要的免费抢!!!
- Delphi7安装及补丁安装详解
- 人工智能知识点思维导图,人工智能算法思维导图
- 石墨烯 量子计算机,带石墨烯的量子计算
- matlab学习笔记 clc和clear
- matlab信道容量函数,信息论-matlab求信道容量(迭代法) | 学步园
- Edge 被 hao123 劫持解决方法
- android系统自带system/app下载,Android 把应用APK安装包放到system/app下的方法
- wps插入I,II,III类的页码
- css保持图片原始比例
- Vue 3.0终于来了!官方凌晨开源代码,导读一波
- JDK1.8之前造成HashMap死链问题
- 未来计算机作文英语作文,2019英语作文预测:人工智能
热门文章
- android+JPEG+编码,Android_解析:android 如何从JPEG生成BufferedImage,如下所示:复制代码 代码如下 - phpStudy...
- insert执行成功 没有数据_Python—接口测试数据库封装实现原理
- 工作中遇到的问题 二 乱码问题
- android 代码循环,Android – 每5秒循环一部分代码
- chm 转 html 带索引,chm 的项目文件中包含创建 chm 文件所需的HTML文件信息、目录表文件信息、索引文件信息、窗口属 - 试题答案网问答...
- 重试次数配置_Stelnet(ssh)登陆华为交换机配置教程
- PCA算法的原理C++ Eigen库实现(附源码下载)
- Delphi Open Tools Api实例研究(一)
- 【AtCoder】ARC090
- iOS炫酷动画图案、多种选择器、网络测速、滑动卡片效果等源码