JavaSE-常用API


Scanner 类

使用Scanner类可以很方便的获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流、字符串中解析出基本数据类型值和字符串值。Scanner提供了多个构造器,不同的构造器可以接受文件、输入流、字符串作为数据源,用于文件、输入流、字符串中解析数据

Scanner 实例方法
常用方法 返回值类型 说明
delimiter() Pattern 返回当前正在用于匹配分隔符的Pattern
useDelimiter() Scanner Scanner默认使用空白(空格/Tab/回车)作为分割符来分隔文本,但允许你指定新的分隔符
next() String 读取输入的下一个单词(以空格作为分隔符);在读取输入后将光标放在同一行中
nextInt() int 读取并转换下一个表示整数的字符序列
nextDouble() double 读取并转换下一个表示浮点数的字符序列
nextLine() String 读取输入的下一行内容,包括单词之间的空格和除回车以外的所有符号;读取完后将光标定位在下一行
hasNext() boolean 检测输入中是否还有其他单词
hasNextInt() boolean 检测是否还有表示整数的下一个字符序列
hasNextDouble() boolean 检测是否还有表示浮点数的下一个字符序列
hasNextLine() boolean 检测输入中是否还有下一行

System 类

System类代表当前Java程序的运行平台,程序不能创建System类的对象,System类提供了一些类变量和类方法,允许直接通过System类来调用这些类变量和类方法
System类提供了代表标准输入、标准输出和错误输出的类变量,并提供了一些静态方法用于访问环境变量、系统属性的方法,还提供了加载文件和动态链接库的方法
加载文件和动态链接库主要对native方法有用,对于一些特殊的功能(如访问操作系统底层硬件设备等)Java程序无法实现,必须借助C语言来完成,此时需要使用C语言为Java方法提供实现

System 静态变量
类变量 数据类型 说明
System.in InputStream 标准输入流
System.out PrintStream 标准输出流
System.err PrintStream 标准错误输出流
System 静态方法
类方法 返回值类型 说明
arraycopy(src,offset,dest,offset,length) void 数组拷贝
currentTimeMillis() long 返回当前系统的时间毫秒值
exit(int status) void 终止当前运行的JVM;非0表示异常终止,0表示终止
console() Console 获得Console控制台对象;如果JVM没有控制台,则返回null
gc() void 通知系统进行垃圾回收
getProperties() Properties 获取程序所在的平台的环境变量和系统属性
getProperty(String key) String 获取指定系统属性的值
getenv() Map 获取系统所有的环境变量
getenv(String name) String 获取指定环境变量的值
identityHashCode(Object x) int 返回指定对象的散列值,无论对象是否重写了hashCode()
System.getProperties() 相关属性
key 关联值的描述
java.version Java 运行时环境版本
java.version.date Java 运行时环境版本日期,采用 ISO-8601 YYYY-MM-DD 格式
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商 URL
java.vendor.version Java 供应商版本(可选)
java.home Java安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java Runtime Environment 规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java类路径
java.library.path 加载库时要搜索的路径列表
java.io.tmpdir 默认临时文件路径
java.compiler 要使用的 JIT 编译器的名称
os.name 操作系统名称
os.arch 操作系统架构
os.version 操作系统版本
file.separator 文件分隔符(UNIX 上的“/”)
path.separator 路径分隔符(UNIX 上的“:”)
line.separator 行分隔符(UNIX 上的“\n”)
user.name 用户的帐户名
user.home 用户的主目录
user.dir 用户当前工作目录
native.encoding 源自主机环境和/或用户设置的字符编码名称。设置此系统属性无效
Console 实例方法
实例方法 返回值类型 说明
readLine(String fmt,Object... args) String 显示字符串fmt并且读取用户输入;args参数可以用来提供输入格式
readPassword(String fmt,Object... args) char[] 输入的内容以密文显式,其他功能同readLine()方法
readLine() String 从控制台读取一行文本
readPassword() char[] 在禁用回显的情况下从控制台读取密码

Runtime 类

Runtime类代表Java程序的运行时环境,每个Java程序都有一个与之对应的Runtime实例,应用程序通过该对象与其运行时环境相连。它可以访问JVM的相关信息,如处理器数量、内存信息等
应用程序不能创建自己的Runtime实例,但可以通过 getRuntime() 方法获取与之相关的Runtime对象

Runtime 相关方法
相关方法 返回值类型 说明
Runtime.getRuntime() Runtime 返回与当前 Java 应用程序关联的运行时对象
gc() void 通知系统进行垃圾回收
runFinalization() void 清理系统资源
load(String filename) void 加载文件
loadLibrary(String libname) void 加载动态链接库
exec(String command) Process 在单独的进程中执行指定的字符串命令(直接运行操作系统的命令)
availableProcessors() int 返回 Java 虚拟机可用的处理器数(内核数)
freeMemory() long 返回 Java 虚拟机中的可用内存量(空闲内存)
maxMemory() long 返回 Java 虚拟机将尝试使用的最大内存量(最大内存)
totalMemory() long 返回 Java 虚拟机中的总内存量(总内存)

Object和Objects

Object类是所有类、数组、枚举类的父类,所有的Java类都是Object类的子类,所以任何Java对象都可以调用Object类的方法

Object 实例方法
实例方法 返回值类型 说明
equals(Object obj) boolean 默认是比较当前对象与另一个对象的地址是否相同,相同返回true,不同返回false
hashCode() int native方法;返回该对象的hashCode值;默认情况下,根据该对象的地址来计算hashCode值
toString() String 默认是返回当前对象在堆内存中的地址信息:类的全限名@内存地址
clone() Object protected native方法;实现对象的浅复制;只有实现了Cloneable接口才可以调用该方法,否则将抛出异常
getClass() Class final native方法;返回该对象的运行时类
finalize() void protected方法;当系统中没有变量引用到该对象时,垃圾回收期调用此方法来清理该对象的资源
notify() void 唤醒正在等待的单个线程;随机选择一个在该对象上调用wait方法的线程,解除其阻塞状态
notifyAll() void 唤醒正在等待的所有线程;解除那些在该对象上调用wait方法的线程的阻塞状态
wait() void 让当前线程等待并释放所占锁,直到另一个线程调用notify()方法或notifyAll()方法
wait(long timeoutMillis) void

Objects工具类提供了一些工具方法来操作对象,这些工具方法大多是“空指针”安全的。比如你不能确定一个引用变量是否为null,如果贸然调用该变量的toString()方法,则可能引发NullPointerException异常;但如果使用Objects类提供的toString(Object o)方法,就不会引发空指针异常了,当o为null时,程序将返回一个"null"字符串

Objects 静态方法
方法 返回值类型 说明
equals(Object a,Object b) boolean 用于比较两个对象的引用是否相同,还可以避免空指针异常
deepEquals(Object a,Object b) boolean 验证两个数组是否深层相等
hashCode(Object o) int 返回对象的hash code,如果参数为null,返回0
hash(Object... values) int 为输入值序列生成散列码hash code,包括数组
toString(Object o) String 调用对象的toString()方法,如果参数是null,返回字符串"null"
compare(T a, T b, Comparator c) int 用于比较两个对象
requireNonNull(T obj) T 判断一个对象是不是null,如果不是null返回对象本身,如果是null抛出空指针异常
isNull(Object obj) boolean 如果引用变量为null则返回true,否则返回false
nonNull(Object obj) boolean 如果引用变量不为null则返回true,否则返回false

Math 类

Java提供了基本的加减乘除余等基本算术运算符,但对于更复杂的数学运算,例如三角函数、对数运算、指数运算等则无能为力。因此Java提供了Math工具类来完成这些复杂的运算

Math 静态变量
静态变量 数据类型 说明
Math.E double 数学中的底数e
Math.PI double 数学中的圆周率π
Math 静态方法
静态方法 返回值类型 说明
ceil(double a) double 向上取整,返回大的值
floor(double a) double 向下取整,返回小的值
round(double a) long 四舍五入;参数为double时返回long值;参数为float时返回int值
rint(double a) double 四舍五入;返回参数最接近的整数;注意.5的时候会取偶数
abs(double a) double 绝对值
max(double a,double b) double 最大值
min(double a,double b) double 最小值
random() double 伪随机数(0≤x<1)
sqrt(double a) double 平方根
cbrt(double a) double 立方根
exp(double a) double 返回欧拉数e的double值的幂(e^x)
expm1(double x) double 返回e^x - 1的值
pow(double a,double b) double 计算乘方;返回第一个参数的第二个参数的幂的值(x^y)
log(double a) double 自然对数;也就是a的自然对数(底数是e)
log10(double a) double 返回a的底数为10的对数
log1p(double x) double 返回a+1的自然对数
sin(double a) double 正弦
cos(double a) double 余弦
tan(double a) double 正切
sinh(double x) double 双曲正弦
cosh(double x) double 双曲余弦
tanh(double x) double 双曲正切
asin(double a) double 反正弦
acos(double a) double 反余弦
atan(double a) double 反正切
toDegrees(double angrad) double 将弧度转换成角度
toRadians(double angdeg) double 将角度转换为弧度
atan2(double y, double x) double 将坐标(x,y)转换成极坐标(r,thet),并返回极坐标的角度值
hypot(double x,double y) double \(\text{sqrt(x}^2\text{+y}^2\text{)}\) ;在求两点间距离时用\(\text{sqrt((x1-x2)}^2\text{+(y1-y2)}^2\text{)}\)
signum(double d) double 返回参数的符号函数

Random和ThreadLocalRandom

Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字

ThreadLocalRandom类是Java7新增的类,它是Random的增强版。在并发访问的环境下,使用ThreadLocalRandom来代替Random可以减少多线程资源竞争,最终保证系统具有更好的县城安全性

Random 构造器
构造器 说明
Random() 以当前时间作为种子,然后使用这个种子数构造Random对象
Random(long seed) 通过显式指定long类型的种子数进行创建Random对象
Random 实例方法
实例方法 返回值类型 说明
nextBoolean() boolean 生成一个随机的boolean值,生成true和false的几率相等
nextBytes(byte[] bytes) void 生成随机字节并将其置于形参的byte数组中,取值范围为-128到127
nextInt() int 生成一个随机的int值,该值介于int的取值范围
nextInt(int bound) int 生成一个随机的int值,该值介于[0,n)区间内
nextLong() long 生成一个随机的long值
nextFloat() float 生成一个随机的float值,该值介于[0,1)之间
nextDouble() double 生成一个随机的double值,该值介于[0,1)之间
nextGaussian() double 生成一个随机的高斯分布的浮点数,其平均值是0.0,标准差是1.0
setSeed(long seed) void 重新设置Random对象中的种子数

相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。所以为了避免两个Random对象产生相同的数字序列,通常推荐使用当前时间作为Random对象的种子

Random random = new Random(System.currentTimeMillis());

ThreadLocalRandom current = ThreadLocalRandom.current();
int num1 = current.nextInt(4, 20);
double num2 = current.nextDouble(2.0, 10.0);

BigDecimal和BigInteger

  • BigDecimal:表示任意精度
  • BigInteger:表示任意长度/大小(超过long类型的数值可以使用BigInteger表示)

float、double类型的浮点数容易引起精度损失,尤其在进行算术运算时更容易发生这种情况。为了能精确表示、计算浮点数,Java提供了BigDecimal类

禁止使用BigDecimal(double val)构造器方法将double值直接转换为BigDecimal对象,因为它还是存在精度损失风险。推荐使用BigDecimal(String val)构造器方法或者BigDecimal.valueOf(double val)方法

BigDecimal 实例方法
实例方法 返回值类型 说明
add(BigDecimal augend) BigDecimal 加法
subtract(BigDecimal subtrahend) BigDecimal 减法
multiply(BigDecimal multiplicand) BigDecimal 乘法
divide(BigDecimal divisor) BigDecimal 除法
remainder(BigDecimal divisor) BigDecimal 求余
compareTo(BigDecimal val) int 比较两个值是否相等
max(BigDecimal val) BigDecimal 最大值;求两个BigDecimal类型数据的最大值
min(BigDecimal val) BigDecimal 最小值;求两个BigDecimal类型数据的最小值
abs() BigDecimal 绝对值;求BigDecimal类型数据的绝对值
negate() BigDecimal 相反数;求BigDecimal类型数据的相反数
divide(除数,保留位,取舍规则) BigDecimal 使用场景:出现不能整除的情况
setScale(保留位,取舍规则) BigDecimal 设置小数点保留位数;默认采用四舍五入方式
doubleValue() double 将BigDecimal类型的值转换为double类型
floatValue() float 将BigDecimal类型的值转换为float类型
intValue() int 将BigDecimal类型的值转换为int类型
longValue() long 将BigDecimal类型的值转换为long类型
toBigInteger() BigInteger 将BigDecimal类型的值转换为BigInteger类型
取舍规则 RoundingMode 枚举类
枚举值 说明 int值
UP 远离零方向舍入 0
DOWN 向零方向舍入 1
CEILING 向正无穷方向舍入 2
FLOOR 向负无穷方向舍入 3
HALF_UP 四舍五入 4
HALF_DOWN 五舍六入 5
HALF_EVEN 整数位若是奇数则四舍五入,若是偶数则五舍六入 6
UNNECESSARY 如果需要舍入,就抛出算术异常 7
BigInteger 相关方法
相关方法 返回值类型 说明
BigInteger.valueOf(long val) BigInteger 将一个普通的数值转换为BigInteger类型的值
add(BigInteger val) BigInteger 加法
subtract(BigInteger val) BigInteger 减法
multiply(BigInteger val) BigInteger 乘法
divide(BigInteger val) BigInteger 除法
remainder(BigInteger val) BigInteger 求余
mod(BigInteger m) BigInteger 取模(需b>0,否则出现异常) a.mod(b)=a%b=a.remainder(b)
max(BigInteger val) BigInteger 最大值
min(BigInteger val) BigInteger 最小值
abs() BigInteger 绝对值
negate() BigInteger 取反
gcd(BigInteger val) BigInteger 最大公约数
pow(int exponent) BigInteger 幂运算;a.pow(b)=a^b
compareTo(BigInteger val) int 比较两个大整数;如果相等返回0,小于返回负数,大于返回正数
toByteArray() byte[] 将BigInteger类型的值转换为二进制补码形式
intValue() int 将BigInteger类型的值转换为int类型
longValue() long 将BigInteger类型的值转换为long类型
floatValue() float 将BigInteger类型的值转换为float类型
doubleValue() double 将BigInteger类型的值转换为double类型
toString() String 将BigInteger类型的值转换为十进制字符串形式
toString(int radix) String 将BigInteger类型的值转换为radix进制字符串形式

String StringBuffer StringBuilder

字符串是一连串的字符序列,Java提供了String来封装字符串,并提供了一系列方法来操作字符串对象

String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直到这个对象被销毁

String 构造器方法
构造方法 说明
String() 创建一个空白字符串对象,不含任何内容
String(String original) 根据传入的字符串内容来创建字符串对象
String(byte[] chs) 解码;根据字节数组的内容来创建字符串对象;且使用默认字符集
String(char[] chs) 根据字符数组的内容来创建字符串对象;且使用默认字符集
String(byte[] bytes,int offset,int length) 根据字节数组从offset开始的length个字节创建对象;且使用默认字符集
String(char[] value,int offset,int count) 根据字符数组从offset开始的length个字符创建对象;且使用默认字符集
String(byte[] bytes,String charsetName) 根据字节数组的内容来创建字符串对象;且指定字符集
String(byte[] bytes,Charset charset) 根据字节数组的内容来创建字符串对象;且指定字符集
String(byte[] bytes,int offset,int length,String charset) 根据字节数组从offset开始的length个字符创建对象;且指定字符集
String(byte[] bytes,int offset,int length,Charset charset) 根据字节数组从offset开始的length个字符创建字符串对象;且指定字符集
String(StringBuffer buffer) 根据StringBuffer对象来创建字符串对象
String(StringBuilder builder) 根据StringBuilder对象来创建字符串对象
String(int[] codePoints, int offset, int count) 用数组中从offset开始的count个码点构造一个字符串
String 常用方法
常用方法 返回值类型 说明
contains(CharSequence s) boolean 判断此字符串是否包含指定的字符序列
contentEquals(CharSequence cs) boolean 判断此字符串是否与指定的字符序列完全相等
contentEquals(StringBuffer sb) boolean 判断此字符串是否与指定的StringBuffer完全相等
endsWith(String suffix) boolean 判断字符串是否以指定的字符结尾
equals(Object anObject) boolean 比较两个字符串内容是否相同,区分大小写
equalsIgnoreCase(String anotherString) boolean 比较两个字符串内容是否相同,并且忽略大小写
isBlank() boolean 如果给定的字符串为空或仅包含空格代码点,则此方法返回true,否则返回false
isEmpty() boolean 判断字符串是否为空;length()为0返回true,否则返回false
matches(String regex) boolean 判断字符串是否与给定的正则表达式regex相匹配
regionMatches(int toffset,String other,int ooffset,int len) boolean 如果字符串的指定子区域匹配字符串参数的指定子区域,则返回true;否则返回false
regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len) boolean 如果为ignoreCase为true,则比较字符时忽略大小写
startsWith(String prefix) boolean 判断字符串是否以指定字符串prefix开头
startsWith(String prefix,int toffset) boolean 判断字符串是否从指定索引开始以指定字符串prefix开头
getBytes() byte[] 编码;使用默认的字符集将字符串转换成一个新的byte数组
getBytes(String charsetName) byte[] 编码;使用指定的字符集将字符串转换为byte数组
getBytes(Charset charset) byte[] 编码;使用指定的字符集将字符串转换为byte数组
toCharArray() char[] 将字符串转换为字符数组
getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin) void 将字符串转换为字符数组
subSequence(int beginIndex,int endIndex) CharSequence 返回指定范围内的字符序列
charAt(int index) char 返回指定索引处的字符
codePointAt(int index) int 返回指定索引处的码点
codePointBefore(int index) int 返回指定索引之前字符的码点
codePointCount(int beginIndex,int endIndex) int 返回指定范围内的码点数量,没有配成对的代用字符将记入代码点
offsetByCodePoints(int index,int codePointOffset) int 返回字符串中从给定的index处偏移codePointOffset个代码点的索引
compareTo(String anotherString) int 按字典顺序比较两个字符串;如果位于anotherString之后,返回一个正数;如果位于anotherString之前,返回一个负数;如果两个字符串相等,返回0
compareToIgnoreCase(String str) int 按字典顺序比较两个字符串,不考虑大小写
length() int 返回字符串的长度
hashCode() int 返回字符串的哈希码
indexOf(int ch) int 返回字符串中首次出现的指定字符的索引位置
indexOf(int ch,int fromIndex) int 返回字符串指定位置后首次出现的指定字符的索引位置
indexOf(String str) int 返回字符串中首次出现的指定子字符串的索引位置
indexOf(String str,int fromIndex) int 返回字符串指定位置后首次出现的指定子字符串的索引位置
lastIndexOf(int ch) int 返回字符串中最后一次出现的指定字符的索引位置
lastIndexOf(int ch,int fromIndex) int 返回字符串指定位置后最后一次出现的指定字符的索引位置
lastIndexOf(String str) int 返回字符串中最后一次出现的指定子字符串的索引位置
lastIndexOf(String str,int fromIndex) int 返回字符串指定位置后最后一次出现的指定子字符串的索引位置
toString() String 将其它类型数据转换成字符串
concat(String str) String 字符串拼接;将指定字符串str连接到此字符串的结尾
repeat(int count) String 返回一个字符串,其值是此字符串重复count次数的串联 ;如果字符串为空或count为零,则返回空字符串
replace(char oldChar,char newChar) String 用字符newChar替换当前字符串中所有的oldChar字符,并返回一个新的字符串
replace(CharSequence target,CharSequence replacement) String 将字符串中所有的target替换为replacement,并返回一个新的字符串
replaceAll(String regex,String replacement) String 将字符串中符合regex格式的子串替换成replacement
replaceFirst(String regex,String replacement) String 将字符串中符合regex格式的第一个子串替换成replacement
substring(int beginIndex) String 从指定位置开始截取字符串,默认到末尾,包括start索引
substring(int beginIndex,int endIndex) String 从开始位置到结束位置截取字符串,包括start索引,不包括end索引
toLowerCase() String 将字符串转换为小写字母
toUpperCase() String 将字符串转换为大写字母
trim() String 删除字符串两端的空格
indent(int n) String 在字符串之前添加n个缩进空格
strip() String 将字符串的所有左右空格都删除
stripIndent() String 将字符串每行的开头和结尾的空格都删除
stripLeading() String 将字符串的所有左空格都删除
stripTrailing() String 将字符串的所有右空格都删除
formatted(Object... args) String 使用此字符串作为格式字符串的格式,以及提供的参数
intern() String 如果字符串常量池中已经包含一个等于此String对象的字符串,则返回常量池中字符串的引用,否则匠心的字符串放入常量池中,并返回新字符串的引用
split(String regex) String[] 根据正则表达式regex来拆分字符串,并将拆分后的单词存入字符串数组中
split(String regex,int limit) String[] 根据匹配给定的正则表达式来拆分字符串
join(CharSequence delimiter,CharSequence... elements) static String 将elements字符序列用指定的分隔符delimiter连接起来,返回这个新组成的字符串
join(CharSequence delimiter,Iterable elements) static String 用指定的分隔符链接字符序列,然后返回新的字符串
format(String format,Object... args) static String 使用指定的格式字符串和参数返回格式化的字符串
format(Locale l,String format,Object... args) static String 使用指定的语言环境、格式字符串和参数返回格式化的字符串
copyValueOf(char[] data) static String 根据字符数组创建并返回一个新的字符串
copyValueOf(char[] data,int offset,int count) static String 根据指定范围内的字符数组返回一个新的字符串
valueOf(boolean b) static String 把boolean类型的数据转换成字符串
valueOf(char c) static String 把char类型的数据转换成字符串
valueOf(char[] data) static String 把字符数组转换成字符串
valueOf(char[] data,int offset,int count) static String 把字符数组指定偏移offset开始的count个字符转换成字符串
valueOf(int i) static String 把int类型的数据转换成字符串
valueOf(long l) static String 把long类型的数据转换成字符串
valueOf(float f) static String 把float类型的数据转换成字符串
valueOf(double d) static String 把double类型的数据转换成字符串
valueOf(Object obj) static String 把Object类型的数据转换成字符串
chars() IntStream
codePoints() IntStream 将该字符串的码点作为一个流返回
lines() Stream
describeConstable() Optional
resolveConstantDesc(MethodHandles.Lookup lookup) String
translateEscapes() String
transform(Function f) R

StringBuffer是字符序列可变的字符串,而且是线程安全的

StringBuffer 构造方法
构造方法 说明
StringBuffer() 构造一个没有字符的字符串缓冲区,初始容量为 16 个字符
StringBuffer(int capacity) 构造一个字符串缓冲区,其中没有字符且具有指定的初始容量
StringBuffer(CharSequence seq) 构造一个字符串缓冲区,其中包含与指定的相同的字符CharSequence
StringBuffer(String str) 构造一个初始化为指定字符串内容的字符串缓冲区
StringBuffer 实例方法
实例方法 返回值类型 说明
append(boolean b) StringBuffer 追加一个boolean类型的数据
append(char c) StringBuffer 追加一个char类型的数据
append(CharSequence s) StringBuffer 追加一个字节序列的数据
append(CharSequence s,int start,int end) StringBuffer 追加一个指定范围字节序列的数据
append(char[] str) StringBuffer 追加一个char数组的数据
append(char[] str,int offset,int len) StringBuffer 追加一个指定范围char数组的数据
append(int i) StringBuffer 追加一个int类型的数据
append(long lng) StringBuffer 追加一个long类型的数据
append(float f) StringBuffer 追加一个float类型的数据
append(double d) StringBuffer 追加一个double类型的数据
append(Object obj) StringBuffer 追加一个Object类型的数据
append(String str) StringBuffer 追加一个String类型的数据
append(StringBuffer sb) StringBuffer 追加一个StringBuffer类型的数据
appendCodePoint(int codePoint) StringBuffer 追加一个码点
capacity() int 返回当前容量
charAt(int index) char 返回指定索引处的字符
codePointAt(int index) int 返回指定索引处的码点
codePointBefore(int index) int 返回指定索引之前字符的码点
codePointCount(int beginIndex,int endIndex) int 返回指定范围内的码点数量
compareTo(StringBuffer another) int 按字典顺序比较两个StringBuffer
delete(int start,int end) StringBuffer 删除指定范围内的字符
deleteCharAt(int index) StringBuffer 删除指定索引的字符
ensureCapacity(int minimumCapacity) void 确保容量至少等于指定的最小值
getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin) void 字符从此序列复制到目标字符数组中dst
indexOf(String str) int 返回此字符串中第一次出现指定子字符串的索引
indexOf(String str,int fromIndex) int 返回此字符串中第一次出现指定子字符串的索引,从指定索引开始
insert(int offset,boolean b) StringBuffer 在offset位置插入一个boolean类型的数据
insert(int offset,char c) StringBuffer 在offset位置插入一个char类型的数据
insert(int dstOffset,CharSequence s) StringBuffer 在offset位置插入一个字符序列
insert(int dstOffset,CharSequence s,int start,int end) StringBuffer 在offset位置插入一个指定范围内的字符序列
insert(int offset,char[] str) StringBuffer 在offset位置插入一个char数组
insert(int index,char[] str,int offset,int len) StringBuffer 在index位置插入str数组从offset开始len个字符)
insert(int offset,int i) StringBuffer 在offset位置插入一个int类型的数据
insert(int offset,long l) StringBuffer 在offset位置插入一个long类型的数据
insert(int offset,float f) StringBuffer 在offset位置插入一个float类型的数据
insert(int offset,double d) StringBuffer 在offset位置插入一个double类型的数据
insert(int offset,Object obj) StringBuffer 在offset位置插入一个Object类型的数据
insert(int offset,String str) StringBuffer 在offset位置插入一个String类型的数据
lastIndexOf(String str) int 返回StringBuffer中最后一次出现的指定字符的索引位置
lastIndexOf(String str,int fromIndex) int 返回StringBuffer指定位置后最后一次出现的指定字符的索引位置
length() int 返回StringBuffer的长度
offsetByCodePoints(int index,int codePointOffset) int 返回StringBuffer中从给定的index处偏移codePointOffset个代码点的索引
replace(int start,int end,String str) StringBuffer 在指定范围内用str替换StringBuffer中的内容
reverse() StringBuffer 将StringBuffer中的内容反转
setCharAt(int index,char ch) void 设置指定索引处的字符
setLength(int newLength) void 设置字符序列的长度
subSequence(int start,int end) CharSequence 返回指定范围内的子序列
substring(int start) String 从start开始截取并返回一个新的String
substring(int start,int end) String 在指定范围内截取并返回一个新的String
toString() String 返回StringBuffer的字符串数据
trimToSize() void 尝试减少用于字符序列的存储
chars() IntStream 返回此序列中int零扩展char值的流
codePoints() IntStream 从此序列返回代码点值流

StringBuilder是JDK5引入的,它的前身是StringBuffer,同样也是字符序列可变的字符串,而且是线程不安全的,没有实现线程安全功能,所以性能略高。如果需要创建一个内容可变的字符串对象,则应该优先考虑使用StringBuilder类

StringBuilder 构造方法

| StringBuilder() | 构造一个没有字符的字符串缓冲区,初始容量为 16 个字符 |
| StringBuilder(int capacity) | 构造一个字符串缓冲区,其中没有字符且具有指定的初始容量 |
| StringBuilder(CharSequence seq) | 构造一个字符串缓冲区,其中包含与指定的相同的字符CharSequence |
| StringBuilder(String str) | 构造一个初始化为指定字符串内容的字符串缓冲区 |

StringBuilder 常用方法
实例方法 返回值类型 说明
append(boolean b) StringBuilder 追加一个boolean类型的数据
append(char c) StringBuilder 追加一个char类型的数据
append(CharSequence s) StringBuilder 追加一个字节序列的数据
append(CharSequence s,int start,int end) StringBuilder 追加一个指定范围字节序列的数据
append(char[] str) StringBuilder 追加一个char数组的数据
append(char[] str,int offset,int len) StringBuilder 追加一个指定范围char数组的数据
append(int i) StringBuilder 追加一个int类型的数据
append(long lng) StringBuilder 追加一个long类型的数据
append(float f) StringBuilder 追加一个float类型的数据
append(double d) StringBuilder 追加一个double类型的数据
append(Object obj) StringBuilder 追加一个Object类型的数据
append(String str) StringBuilder 追加一个String类型的数据
append(StringBuffer sb) StringBuilder 追加一个StringBuffer类型的数据
appendCodePoint(int codePoint) StringBuilder 追加一个码点
capacity() int 返回当前容量
charAt(int index) char 返回指定索引处的字符
codePointAt(int index) int 返回指定索引处的码点
codePointBefore(int index) int 返回指定索引之前字符的码点
codePointCount(int beginIndex,int endIndex) int 返回指定范围内的码点数量
compareTo(StringBuilder another) int 按字典顺序比较两个StringBuilder
delete(int start,int end) StringBuilder 删除指定范围内的字符
deleteCharAt(int index) StringBuilder 删除指定索引的字符
ensureCapacity(int minimumCapacity) void 确保容量至少等于指定的最小值
getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin) void 字符从此序列复制到目标字符数组中dst
indexOf(String str) int 返回此字符串中第一次出现指定子字符串的索引
indexOf(String str,int fromIndex) int 返回此字符串中第一次出现指定子字符串的索引,从指定索引开始
insert(int offset,boolean b) StringBuilder 在offset位置插入一个boolean类型的数据
insert(int offset,char c) StringBuilder 在offset位置插入一个char类型的数据
insert(int dstOffset,CharSequence s) StringBuilder 在offset位置插入一个字符序列
insert(int dstOffset,CharSequence s,int start,int end) StringBuilder 在offset位置插入一个指定范围内的字符序列
insert(int offset,char[] str) StringBuilder 在offset位置插入一个char数组
insert(int index,char[] str,int offset,int len) StringBuffer 在index位置插入str数组从offset开始len个字符)
insert(int offset,int i) StringBuilder 在offset位置插入一个int类型的数据
insert(int offset,long l) StringBuilder 在offset位置插入一个long类型的数据
insert(int offset,float f) StringBuilder 在offset位置插入一个float类型的数据
insert(int offset,double d) StringBuilder 在offset位置插入一个double类型的数据
insert(int offset,Object obj) StringBuilder 在offset位置插入一个Object类型的数据
insert(int offset,String str) StringBuilder 在offset位置插入一个String类型的数据
lastIndexOf(String str) int 返回StringBuilder中最后一次出现的指定字符的索引位置
lastIndexOf(String str,int fromIndex) int 返回StringBuilder指定位置后最后一次出现的指定字符的索引位置
length() int 返回StringBuilder的长度
offsetByCodePoints(int index,int codePointOffset) int 返回StringBuilder中从给定的index处偏移codePointOffset个代码点的索引
replace(int start,int end,String str) StringBuilder 在指定范围内用str替换StringBuilder中的内容
reverse() StringBuilder 将StringBuilder中的内容反转
setCharAt(int index,char ch) void 设置指定索引处的字符
setLength(int newLength) void 设置字符序列的长度
subSequence(int start,int end) CharSequence 返回指定范围内的子序列
substring(int start) String 从start开始截取并返回一个新的String
substring(int start,int end) String 在指定范围内截取并返回一个新的String
toString() String 返回StringBuilder的字符串数据
trimToSize() void 尝试减少用于字符序列的存储
chars() IntStream 返回此序列中int零扩展char值的流
codePoints() IntStream 从此序列返回代码点值流

Arrays

Arrays类是一个工具类,它里包含的一些static修饰的方法可以直接操作数组

Arrays 常用方法
  • type:byte、short、int、long、float、double、char、boolean
  • parallel开头的方法都表示该方法可利用CPU并行的能力来提高性能
常用方法 返回值类型 说明
asList(T... a) static List 把数组转换为List集合
binarySearch(type[] a,type key) static int 使用二分法查询key元素值在a数组中出现的索引(调用该方法时要求数组中元素已经按升序排列好)
binarySearch(type[] a,int fromIndex,int toIndex,type key) static int 使用二分法在指定区域内查询key元素值在a数组中出现的索引
copyOf(type[] original,int length) static type[] 把original数组的length个元素复制成一个新数组;如果length小于original数组的长度,则新数组就是原数组前面length个元素;如果length大于original数组的长度,则新数组的前面元素就是原数组的所有元素,后面补充type类型的默认值
copyOfRange(type[] original,int from,int to) static type[] 把original数组在指定区间内的length个元素复制成一个新数组
equals(type[] a,type[] a2) static boolean 如果a和a2数组的长度相等,且a数组和a2数组的元素也一一相同,该方法返回true
fill(type[] a,type val) static void 把数组a的所有元素都赋值为val
fill(type[] a,int fromIndex,int toIndex,type val) static void 把数组a在指定区间内的元素都赋值为val
sort(type[] a) static void 对数组a的数据元素进行排序
sort(type[] a,int fromIndex,int toIndex) static void 对数组a指定区间内的数据元素进行排序
toString(type[] a) static String 将数组转换为一个字符串;按顺序将多个数组元素连缀在一起,多个元素使用英文逗号和空格隔开
stream(XXX[] array) static XXXStream 将数组转换为Stream流
stream(XXX[] array,int startInclusive,int endExclusive) static XXXStream 将数组指定范围内的数据转换为Stream流
deepEquals(Object[] a1,Object[] a2) static boolean 如果两个指定的数组彼此完全相等,则返回true

注意:Arrays.asList()方法得到的是一个固定长度的List集合。它既不是ArrayList实现类,也不是Vector实现类的实例,而是ArrayList的内部类ArrayList的实例。它只能遍历访问该集合里的元素,不可增加、删除该集合里的元素,否则会引发异常

List list = Arrays.asList(1, 2, 3);
list.forEach(System.out::println);
list.add(4); // 报异常:UnsupportedOperationException

八大包装类

自动装箱:基本类型的数据和变量可以直接赋值给包装类型的变量
自动拆箱:包装类型的变量可以直接赋值给基本数据类型的变量

包装类的特有功能

  • 包装类的变量的默认值可以是null,容错率更高
  • 可以把基本类型的数据转换成字符串类型(用处不大)
  • 可以把字符串类型的数值转换成真实的数据类型(真的很有用)

八大包装类:Byte、Short、Integer、Long、Float、Double、Boolean、Character

Integer 静态常量
静态常量 说明
MAX_VALUE 最大值
MIN_VALUE 最小值
Integer 常用方法
常用方法 返回值类型 说明
byteValue() byte Integer类型转换为byte类型
shortValue() short Integer类型转换为short类型
intValue() int Integer类型转换为int类型
longValue() long Integer类型转换为long类型
floatValue() float Integer类型转换为float类型
doubleValue() double Integer类型转换为double类型
valueOf(int b) static Integer int类型转换为Integer类型
valueOf(String s) static Integer String类型转换为Integer类型
valueOf(String s, int radix) static Integer String类型的指定进制数据转换为Integer类型
parseInt(String s) static int String类型转换int类型
parseInt(String s,int radix) static int String类型转换指定进制的int类型
max(int a, int b) static int 返回两个int值中的较大者
min(int a, int b) static int 返回两个int值中的较小者
sum(int a, int b) static int 根据 + 运算符将两个整数相加
toBinaryString(int i) static String 返回二进制表示形式的字符串
toHexString(int i) static String 返回十六进制表示形式的字符串
toOctalString(int i) static String 返回八进制表示形式的字符串

Java常用包

常用包 说明
java.lang 包含了Java和核心类;如String、Math、System 和 Thread 类等,系统自动导入该包下的所有类
java.util 包含了Java的大量工具类/接口和集合框架类/接口;如Arrays 和 List、Set等
java.net 包含了Java网络编程的相关类/接口
java.io 包含了Java输入/输出编程相关的类/接口
java.text 包含了Java格式化相关的类
java.sql 包含了Java进行JDBC数据库编程的相关类/接口
java.awt 包含了抽象窗口工具集的相关类/接口,主要用于构建图形用户界面程序(GUI)
java.swing 包含了Swing图形用户界面编程的相关类/接口,这些类可用于构建平台无关的GUI程序