public int capacity()
返回当前容量。容量指可用于最新插入字符的存储量,超过这一容量便需要再次分配。

返回:
当前容量。
public int length()
返回长度(字符数)。

指定者:
接口 CharSequence 中的 length
返回:
此对象表示的当前字符序列的长度。
容量是理论值,长度是实际值。
public StringBuilder append(任意类型) 
将 任意类型 参数的字符串表示形式追加到序列。 
参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

reverse

public StringBuilder reverse()
将此字符序列用其反转形式取代。如果序列中存在代理项对 (surrogate pair),在 reverse 操作中将其作为单个字符处理。因此,高-低代理项的顺序不会反转。假设 n 为执行 reverse 方法前此字符序列的字符长度(并非 char 值的长度),则新字符序列中索引 k 处的字符将等于原字符序列索引 n-k-1 处的字符。

注意,进行 reverse 操作后,执行操作前未成对的低代理项和高代理项将成为代理项对。例如,反转 "\uDC00\uD800" 将生成有效的代理项对 "\uD800\uDC00"。

返回:
此对象的一个引用。
在这里有人可能会问什么是代理项对?下面将给出详细解释。
字面意义是:代理对。实际上是指:对于一个UTF16编码改用两个UTF16编码来代替。
翻译的估计可以是:UTF16编码代理对。

为何需要surrogate pairs?本来一个字符用一个UTF16编码(两个字节)来表示即可,但是由于需要被编码的字符越来越多,只用一个UTF16编码已经不足于表示所有的字符。因此,就需要考虑使用2个UTF16来表示一个字符(四个字节)。但是如果对于所有的字符都这样编码的话,太浪费空间了(原来只需要2个字节,现在都改用4个字节),所以规定,只有使用两个一定范围内的UTF16编码才被认为是一组surrogate pairs,其一起用来表示一个字符,对于其余的情形还是用一个UTF16来表示一个字符。

the detailed annotation of StringBuilder的更多相关文章

  1. 使用Redisson实现分布式锁,Spring AOP简化之

    源码 Redisson概述 Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid).它不仅提供了一系列的分布式的Java常用对象,还提供了许多 ...

  2. redis分布式锁Redisson扩展

    如果大家项目中Redis是多机部署的可以来好好看看这篇实现,讲的非常好. 使用Redisson实现分布式锁,Spring AOP简化之   源码 Redisson概述 Redisson是一个在Redi ...

  3. 深入分析Java反射(三)-泛型

    前提 Java反射的API在JavaSE1.7的时候已经基本完善,但是本文编写的时候使用的是Oracle JDK11,因为JDK11对于sun包下的源码也上传了,可以直接通过IDE查看对应的源码和进行 ...

  4. Java Annotation 注解

    java_notation.html div.oembedall-githubrepos { border: 1px solid #DDD; list-style-type: none; margin ...

  5. 一种基于annotation的Spring-mvc权限控制方法

    简介 本文介绍一种采用annotation来对spring-mvc进行权限控制的方法. 通过枚举类来定义权限项. 将annotation标注到需要控制权限的spring-mvc方法上. 然后,在spr ...

  6. Annotation

    Annotation是给类,方法或域上加的一种特殊的标记,可以通过反射取到注解的类型和值,从而完成某种特定的操作. 定义注解需要使用元注解,元注解有@Retention和@Target p.p1 { ...

  7. java注解Annotation

    扯扯注解的蛋 为什么学习注解?学习注解有什么好处?学完能做什么? 1.能够读懂别人的代码,特别是框架相关的代码 2.让编程更加简洁,代码更加清晰 3.让别人高看你一眼 注解是java1.5引入的 概念 ...

  8. 基于Annotation与SpringAOP的缓存简单解决方案

    前言: 由于项目的原因,需要对项目中大量访问多修改少的数据进行缓存并管理,为达到开发过程中通过Annotation简单的配置既可以完成对缓存的设置与更新的需求,故而设计的该简易的解决方案. 涉及技术: ...

  9. [项目回顾]基于Annotation与SpringAOP的缓存简单解决方案

    前言: 由于项目的原因,需要对项目中大量访问多修改少的数据进行缓存并管理,为达到开发过程中通过Annotation简单的配置既可以完成对缓存的设置与更新的需求,故而设计的该简易的解决方案. 涉及技术: ...

随机推荐

  1. c#连接oracle遇到的问题

    1.最近在做项目,发现一个很有意思的现象.我在项目中引用System.Data.OracleClient进行oracle库的远程连接,一直出错.后来无意中,将.net framework 4.0框架改 ...

  2. Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)(略有修改)

    对应项目的代码地址为:https://github.com/liuxiaoming7708/springboot-dubbo-parent Dubbo与Zookeeper.SpringMVC整合和使用 ...

  3. 程序使用suid应注意的策略

    安全要求程序应使用最小权限执行,然而有的程序由于特殊性,往往在执行某段代码的时候需要提高权限. 由于suid的容易使用特性,很多编程人员往往会直接使用它来实现提高权限的功能,而不是去做代码权限分离.这 ...

  4. 【链表】Rotate List(三个指针)

    题目: Given a list, rotate the list to the right by k places, where k is non-negative. For example:Giv ...

  5. 【数组】Find Peak Element

    题目: A peak element is an element that is greater than its neighbors. Given an input array where num[ ...

  6. 解决python3与python2的pip命令冲突问题冲突(window版)

    解决方法再上一篇有大概讲解: python开发环境安装配置 这里做一些补充: 上一篇说过,删除python3和python2中的python.exe文件后关闭dos窗口,重新打开dos,就可以进行安装 ...

  7. Linux命令-用户、用户组、权限

    参考资料: http://www.linuxidc.com/Linux/2014-07/104445.htm    Linux入门教程:如何手动创建一个Linux用户 http://www.linux ...

  8. 用css实现在横线中间插入文字

    在一些登录或者注册界面中常常可看到,一个大框框上面的横线中有插入文字,大概示意图如下: 这种现象其实是相对位置作用的结果,可以通过相对定位,是某元素恰好出现在div的边框上. position: re ...

  9. 用python itchat写一个微信机器人自动回复

    首先看一下效果: 进入正题: 一.首先要去图灵机器人网站注册一个机器人账号: 链接:http://www.tuling123.com/ 你可以获取自己的图灵机器人apikey 懒得话不注册也可以,我下 ...

  10. jsp页面查询的数据导出到excel

    java导入导出excel操作(jxl) jxl.jar 包下载地址:http://www.andykhan.com/jexcelapi/真实下载地址:http://www.andykhan.com/ ...