我的前端坑
  • 关于本书
  • CSS JS 常用
    • 常用 CSS 样式
    • 坑爹的 CSS
    • sass 入门
    • canvas 总结
    • 常用 JS 函数
    • 表单和 FormData 对象
    • 水平滑动 tab 居中
    • js 中的 this
    • sse 和 fetch
    • js 原型链与 class 类
  • TypeScript
    • TS 概念
    • interface 与 type
    • interface 接口
    • Ts 配合 ESLint 和 prettier
  • 小程序
    • 常用小程序代码
  • VUE
    • VUE2 小技巧
    • VUE-CLI 中的 NODE_ENV
  • VUE3
    • VUE3 自行构建 sfc 遇到的坑
    • VUE3 v-model 的实现
    • VUE3 使用总结
    • VUE3 ref
  • vite
    • vite
  • http 请求
    • 前端实现下载
    • cors 跨域请求
    • windows hosts 文件
    • err_blocked_by_client 错误
  • 前端工具
    • npm 和 Node
      • 常见问题
      • npmTips
      • package.json 与 package-lock.json
      • npx
      • exports 与 module.exports
      • ESLint
    • VIM
      • vim 常用
    • Git
      • Git 常用命令
      • Git 小 tips
    • express
  • 后端工具
    • mysql 常见问题
    • docker 常见问题
    • docker
  • java
    • java 常用
    • lambda 表达式
    • java 字符串
    • java 泛型
    • java 反射
    • intellij IDEA
    • 多态
    • java 包管理
    • sql 查询语言
    • java 反射
    • java 异常
    • java 集合
    • spring
  • 命令行
    • 命令行 常用
  • 专利撰写 ppt
  • 后台简述
Powered by GitBook
On this page
  • 为什么 string 是不可变字符串
  • StringBuilder 和 StringBuffer
  • 字符串与编码
  • 什么是字符集(character set)
  • 什么是字符转换格式(编码格式)

Was this helpful?

  1. java

java 字符串

为什么 string 是不可变字符串

  1. String 类是一个 final 类,并且没有提供修改字符串中某个字符的方法,所以 java 文档中将 String 类对象称为是不可变的。

  2. String 类继承自 Object 类,并重写了 hashcode 方法,String 对象可变的话就违反 了 hashcode 的约定

// 把字符串“hello”改为“helon”,不能直接修改最后两个位置的字符
String a = "hello"
// 可以使用substring方法提取和拼接
a = substring(0,3) + "on"

通过截取和拼接字符串效率确实不高,但不可变字符串有一个优点:编译器可以让字符串共 享: 各种字符串存储在公共的存储池中,字符串变量指向存储池中相应字符串的位置,复制一个 字符串本质上是:原始变量和复制变量指向的是存储池中共享的同一个字符串。 不可变还带来了线程安全和存储安全的优点。

StringBuilder 和 StringBuffer

StringBuilder:线程不安全,但速度快 StringBuffer: 线程安全,但速度慢

字符串与编码

什么是字符集(character set)

  • 字符集:各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。是真 实世界文字和对应文字在计算机中存储的一一映射。

  • 常见字符集:ASCII 字符集、GB2312 字符集、BIG5 字符集、 GB18030 字符集、Unicode 字符集等。

字符
计算机编码值

牛

U+725B

0

U+0030

A

U+0041

 System.out.println("\u0041");

什么是字符转换格式(编码格式)

  • 字符在计算机世界里,需要被传输和存储等,字符转换格式规定了字符怎么被传输和存储 。

  • 常见字符转换格式:

    1. UTF-8:一种变长的 Unicode 字符编码转换格式。UTF 全称 Unicode Transformation Format

    2. UTF-16:只要不处理大于\U200000 范围的字符,每个 Unicode 代码点使用 16 位即 2 字节表示,超出部分使用两个 UTF-16 即 4 字节表示。

Previouslambda 表达式Nextjava 泛型

Last updated 2 years ago

Was this helpful?