String

String概述

  • java.lang.String类代表字符串,String类定义的变量都可以用于指向字符串对象,然后操作该字符串
  • java程序中的所有字符串文字(例如:“abc”)都为此类的对象

String类的特点详解

  • String其实常被称为不可变字符串类型,它的对象在创建后不可被更改

字符串对象存在哪里?

  • 以“”方式给出的字符串对象,在字符串常量池中存储

String是不可变字符串的原理

  • String变量的每次修改其实都是产生并指向了新的字符串对象
  • 原来的字符串对象都是没有改变的,所以称为不可变字符串

创建字符串对象的两种方式

  • 方式一:直接使用 “” 定义。(推荐方式)
    String name = “abulivyet”
  • 方式二:通过String类的构造器创建对象

两种创建字符串的方式有什么区别?

  • 以 “” 方式创建出来的字符串对象,在字符串常量池中存储,而且相同的内容只会在其中存储一份。
  • 通过构造器new对象,每new一次都会产生一个新新对象,放在堆内存中。

通过 “” 定义字符串内存原理

通过new构造器得到字符串对象内存原理

String常见面试题

  • 问题:第一行代码创建了几个对象 2个 “ ”创建出来的对象保存在常量池中,new出来的对象保存在堆内存中
  • 第二行代码创建了几个对象 0个
  • 运行结果 false
  • 问题2

字符串的内容比较

  • 字符串的比较不适合用”==“
  • 推荐使用String类提供的”equals“比较,只关心内容一样即可

String类常用api