Java常用类

  • 字符串相关:String、 StringBuffer、 StringBuilder
  • 包装类:Integer等
  • 日期相关: Date、 Calendar、 SimpleDateFormat
  • 其他:Math、Random、Runtime、System

String类

创建方式1:赋值常量

1
String str = "hello word";

使用双引号括起来的内容叫字符串常量值,字符串常量值分配在方法区的常量池中。
常量池的好处:

  1. 节约内存,反复使用,不需要重新分配
  2. 性能高,直接调用,省去创建对象的时间

通过字节数组创建字符串

1
2
3
String(byte[] bytes,String charset)
bytes 字节数组
charset 字符编码,一般使用UTF-8通过字符数组创建字符串

通过字符数组创建字符串

1
2
3
String(char[] chars)
char[] chars = {‘z’,'h','a','n','g'};
String name = new String(chars);

String常用方法

获得字符串长度

1
int length();

获得子字符串出现的位置

1
int indexOf(String s);

在字符串中查找子字符串第一次出现的位置,没找到返回-1;

1
int indexOf(String s,int start); 

指定了开始查找的位置

1
int lastIndexOf(String s);

截取字符串

1
2
String substring(int start,int end);
String substring(int start);

替换

1
String replace(String oldStr,String newStr);

比较字符串内容

1
2
3
4
5
6
7
8
9
10
// 是否完全相同
boolean equals(String s);
// 忽略大小写进行比较
boolean equalsIgnoreCase(String s);
// 判断字符串是否以某字符串开头
boolean startsWith(String s);
// 判断字符串是否以某字符串结尾
boolean endsWith(String s);
// 比较大小,返回正数(大于)、负数(小于)、0(相等)
int compareTo(String s);

大小写转换

1
2
String toUpperCase(); // 大写
String toLowerCase(); // 小写

去左右空格

1
String trim();

拆分字符串

1
2
// 注意:某些特殊符号分割符需要进行转义,如:\\+
String[] split(String separator);

StringBuilder类

如果字符串变量需要频繁修改,就会创建大量字符串对象,大量消耗内存空间。
为了解决这个问题,可以使用StringBuilder。

String和StringBuilder的区别:

  • String的字符串是不可修改,如果修改会创建新字符串,浪费内存。
  • StringBuilder的字符串是可以修改的,不会创建新字符串。

创建方法:

1
2
3
4
// 创建空值的对象
StringBuilder strb = new StringBuilder();
// 创建有默认值的对象
StringBuilder strb = new StringBuilder("默认值");

StringBuilder常用方法
转换为String

1
String toString();

追加

1
StringBuilder append(String str);

替换

1
StringBuilder replace(int start,int end,String newS);

插入

1
StringBuilder insert(int offset,String s);

删除

1
StringBuilder delete(int start,int end);

反转

1
StringBuilder reverse();

StringBuffer类
StringBuffer的特点和StringBuilder相似,都是在自身的数组上进行的修改,常用方法也一样。
不同点:

  • StringBuffer的方法是线程安全的,StringBuilder是非线程安全
  • StringBuilder的执行效率高于StringBuffer

包装类

基本类型 包装类
int Integer
byte Byte
short Short
long Long
float Float
double Double
char Character
boolean Boolean

创建方法

1
2
Integer num1 = 1000;
Integer num2 = new Integer(1000);

Date类

处理日期时间
创建方法1:

1
2
// 获得当前的时间
Date date = new Date();

创建方法2:

1
2
// 指定时间的1900-1-1到现在的毫秒数
Date date = new Date(long);

常用方法

1
2
3
4
5
6
7
8
int getYear();			// 获得年
int getMonth(); // 获得月
int getDate(); // 获得天
int getHours(); // 获得小时
int getMinutes(); // 获得分钟
int getSeconds(); // 获得分钟
void setYear(int year); // 设置年
...

Calendar 类

日历类可以获得和修改日期的某个部分
创建Calendar对象

1
Calendar calendar = Calendar.getInstance();

常用方法:

1
2
3
4
5
6
get(日期类型)	   		// 获得日期的某个部分
Calendar.YEAR
Calendar.MONTH // 月份从0开始
....
set(日期类型,数值) // 设置日期的某个部分
add(日期类型,数值) // 实现日期某个部分的追溯

SimpleDateFormat类

对日期进行格式化
创建对象

1
2
3
4
5
6
7
8
9
10
SimpleDateFormat sdf = new SimpleDateFormat("日期格式字符串");
日期格式字符串,如:"yyyy-MM-dd hh:mm:ss"
yyyy 代表4位的年份
MM 代表2位的月份
dd 代表2位的日期
hh/HH 12小时制/24小时制
mm 代表分钟
ss 代表秒钟
a 代表AM/PM
将日期进行格式化
1
String format(Date对象);

将字符串转换为日期

1
Date parse(String对象);

Math类

数学运算

作用 用法
求绝对值 Math.abs(-10) --> 10
四舍五入取整 Math.round(2.6) --> 3
求两个数最大值 Math.max(2,10) --> 10
求两个数最小值 Math.min(2,10) --> 2
随机数 Math.random() --> 0 ~ 1之间任意小数
求平方根 Math.sqrt(16) – > 4
求幂 Math.pow(2,3) – > 8

Random类

获得随机数

1
2
Random random = new Random();
random.nextInt(100); //0 ~ 100间随机整数

Runtime类
系统运行时,获得和系统有关的信息

1
Runtime rt = Runtime.getRuntime();
作用 用法
freeMemory() 获得系统空闲内存数
totalMemory() 获得总内存数
availableProcessors() 获得处理器个数
gc() 调用垃圾收集器
exec(String cmd) 调用系统程序
exit(int status) 退出系统

PS:GC(Garbege Collector)垃圾收集器,JVM会单独开一线程,定时扫描内存中没有使用的对象。
GC的启动没有特定的时间,如果想唤醒GC,可以调用gc方法。

1
2
String s = new String("xxxx"); //新的String对象
s = null; //没有引用指向的String对象会被回收

System类

作用 用法
currentTimeMillis() 获得当前系统时间的毫秒数
gc() 调用垃圾收集器
exit(int status) 退出系统