当前位置: 首页 > news >正文

Java进阶API第三章

Java进阶API第三章

一.String存在的问题

1.认识String的存储:

2.String的特点:

String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。

问题

一但创建就无法修改,所以只能一直创建。 这样会出现大量的内存占用,浪费大量空间。

解决: 使用 StringBuffer & StringBuilder 类

二.StringBuffer 和 StringBuilder 类 

1.介绍: 

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

  1. 在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
  2. StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
  3. 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

2. StringBuilder

package com.google.apl;import org.junit.Test;public class Testing {
@Testpublic void dome(){StringBuilder stringBuilder = new StringBuilder();// 1.添加字符串,方法append// 方式一stringBuilder.append("Hello");stringBuilder.append("World");System.out.println(stringBuilder);// 方式二:链式调用stringBuilder.append("Hello").append("World");}
}
        StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("Hello").append("World");// 2.将字符串倒序,方法reverse()stringBuilder.reverse();System.out.println(stringBuilder);
        StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("Hello").append("World");// 3.尝试减少用于字符序列的存储(置空)。方法:stringBuilder.trimToSize();System.out.println("stringBuilder = " + stringBuilder);

trimToSize()方法用于最小化用于字符的存储,去除未使用的空间,也可以用于将动态数组中的容量调整为数组中的元素个数 

相关文章:

  • 用人话讲解深度学习中CUDA,cudatookit,cudnn和pytorch的关系
  • 叙永微公益:开展“活水计划-益童成长守护”周末陪伴活动
  • [EFI]Lenovo ThinkPad X280电脑 Hackintosh 黑苹果引导文件
  • 设计基于STM32F103C8T6微控制器的巡线小车
  • Angular 由一个bug说起之二:trackBy的一点注意事项
  • excel导入 Easy Excel
  • idea一键打包docker镜像并推送远程harbor仓库的方法(包含spotify和fabric8两种方法)--全网唯一正确,秒杀99%水文
  • 前台页面从数据库中获取下拉框值
  • (SpringBoot)第七章:SpringBoot日志文件
  • 15分钟,不,用模板做数据可视化只需5分钟
  • Django模板层
  • GAT里面的sofamax函数的实现:
  • 2023.11.17 -hivesql调优,数据压缩,数据存储
  • 【图像分类】【深度学习】【Pytorch版本】ResNet模型算法详解
  • asp.net core mvc之 RAZOR共享指令和标签助手 TagHelpers
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • flutter的key在widget list的作用以及必要性
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Java IO学习笔记一
  • Javascript编码规范
  • Laravel 中的一个后期静态绑定
  • MD5加密原理解析及OC版原理实现
  • Quartz初级教程
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Terraform入门 - 1. 安装Terraform
  • text-decoration与color属性
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 机器学习学习笔记一
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 老板让我十分钟上手nx-admin
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 每天一个设计模式之命令模式
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 线上 python http server profile 实践
  • 新版博客前端前瞻
  • 硬币翻转问题,区间操作
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • ionic异常记录
  • # 透过事物看本质的能力怎么培养?
  • (C#)一个最简单的链表类
  • (ibm)Java 语言的 XPath API
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)计算机毕业设计大学生兼职系统
  • (五)关系数据库标准语言SQL
  • ../depcomp: line 571: exec: g++: not found
  • .gitignore文件_Git:.gitignore
  • .naturalWidth 和naturalHeight属性,
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net core 连接数据库,通过数据库生成Modell
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET Standard 支持的 .NET Framework 和 .NET Core