目录,更新ing,学习Java的点滴记录
目录放在这里太长了,附目录链接大家可以自由选择查看--------Java学习目录
String类_String类基础用法
String 是我们开发中最常用的类,我们不仅要掌握 String 类常见的方法,对于 String 的底层实现也需要掌握好
- String基础
String类又称作不可变字符序列
String位于java.lang包中,Java程序默认导入java.lang包下的所有类
Java字符串就是Unicode字符序列
,例如字符串"Java"就是4个Unicode字符’j’,‘a’,‘v’,'a’组成的
Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来
的字符串就是String的一个实例
String类_常量池
- 在 Java 的内存分析中,我们会经常听到关于“常量池”的描述,实际上常量池也分了以下三种:
1) 全局字符串常量池(String Pool)
全局字符串常量池中存放的内容是在类加载完成后存到 String Pool 中的,在每个 VM 中只有一份,存放的是字符串常量的引用值(在堆中生成字符串对象实例)
2) class 文件常量池(Class Constant Pool)
class 常量池是在编译的时候每个 class 都有的,在编译阶段,存放的是常量(文本字符串、final 常量等)和符号引用
。
3) 运行时常量池(Runtime Constant Pool)
运行时常量池是在类加载完成之后,将每个 class 常量池中的符号引用值转存到运行时常量池中,也就是说,每个 class 都有一个运行时常量池
,类在解析之后,将符号引用替换成直接引用,与全局常量池中的引用值保持一致。
String类_API文档
- 下载地址:链接:https://pan.baidu.com/s/1y-0YbzztDXWcbgdPkquv_A 提取码:u73u
- String类包含许多方法而LL,在标准库中有几千个类,要想记住所有的类和方法是一件不太不可能的事情.因此,学会使用在线API文档十分重要,从中可以查阅到标准类库中的所有类和方法
- 所有的包,点击后会展开该包下的所有类
- 以String类为例,找到java.lang,然后找到String
- 在IDEA中,鼠标左键点击一个要查看的类,然后按F2也可以快速看到对应类的部分内容
如果看不到需要修改设置:File–>Setting–>Editor–>General
String类_String类常用方法
- 方法一览表
- 子串
String类的substring方法可以从一个较大的字符串中提取出一个子串.例如:
创建了一个"Hel"字符串.substring方法的第一个参数是起始位置(包括该位置,从0开始计数),第二个位置是结束位置(不包括)
优点:容易计算子串长度,字符串s.substring(a,b)的长度为b-a - 拼接
与绝大多数程序设计语言一样,Java语言允许使用+号进行连接(拼接)两个字符串
当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串,之前已经了解到任何一个Java对象都可以转换成字符串 - 不可变字符串
String类没有提供用于修改字符串的方法。如果希望将"Hello"的内容修改为“Help!”, 不能直接地将greeting的最后两个位置的字符修改为’p’和’!’。
在Java中的步骤是首先提取需要的字符,然后再拼接上替换的字符串
由于不能修改Java字符串中的字符,所以在Java文档中将String类对象称为不可变字符串
不可变字符串却有一个优点:编译器可以让字符串共享。可以想象将各种字符串存放在公共的存储池中。字符串变量 指向存储池中相应的位置。如果复制一个字符串变量,原始字符串与复制的字符串共享相同的字符。Java的设计者认为共享带来的高效率远远胜过于提取、拼接字符串所带来的低效率。 - 检测字符串是否相等
可以使用equals方法检测两个字符串是否相等,对于表达式s.equals(t),如果字符串s与字符串t相等,则返回true ;否则,返回falseo需要注意,s与t可以是字符串变量,也可以是字符串字面量。
- 空串和Null串
1) 空串""是长度为0的字符串
。空串是一个Java对象,有自己的串长度(0)和内容(空)。可以调用以下代码检査一个字符串是否为空:
2) String变量还可以存 放一个特殊的值,名为null,这表示目前没有任何对象与该变量关联
,要检査一个字符串是否为null,要使用以下条件: