7、常用类(String)
帮助文档
注释
单行 //
多行 /* */
文档注释 /** */
帮助文档就是通过文档注释生成的:jdk中提供了Javado c命令。可以将源代码中的文档注释提取出来,构成html格式的帮助文档
String 的内存图
1 String s1="aaa"; 2 String s2="aaa"; 3 System.out.println(s1==s2); 4 System.out.println(s1.equals(s2)); 5 6 String s3= new String("aaa"); 7 String s4= new String("aaa"); 8 System.out.println(s3==s4); 9 System.out.println(s3.equals(s4));
字符串的常用API
String构造方法
public String()
public String(byte[] bytes)
public String(byte[] bytes,int offset,int length)
public String(char[] value)
public String(char[] value,int offset,int count)
public String(String original)
String的判断方法
boolean equals(Object obj)
boolean equalsIgnoreCase(String str)
boolean contains(String str) 参数为字符串
boolean startsWith(String str)
boolean endsWith(String str)
boolean isEmpty() 没有参数
String的获取方法(注意:indexOf的参数可以是整数或者字符串,具体可看API)
int length()
char charAt(int index)
int indexOf(int ch)
int indexOf(String str)
int indexOf(int ch,int fromIndex)
int indexOf(String str,int fromIndex)
String substring(int start)
String substring(int start,int end)(左闭右开)
String的转换方法
byte[] getBytes() (将字符串转换成字节)
char[] toCharArray() (将字符串转换为字符数组)
static String valueOf(char[] chs) (字符数组转换为字符串,静态方法,直接通过String类.方法来调用)
static String valueOf(int i)
String toLowerCase()
String toUpperCase()
String concat(String str)(将str加入到字符串的末尾)
String的其他功能
1、替换:
String replace(char old, char new)
String replace(String old, String new)
2、去除字符串空格(只去除前后的空格,作用在用户要输入账号密码时,可能有空格,传到后端就可以使用这个方法去掉空格)
String trim()
3、按字典顺序比较两个字符串
int compareTo(String str)
int compareToIgnoreCase(String str)
StringBuilder
底层也是字符数组,没有final修饰,频繁修改字符串内容,性能高。
扩容:原始容量*2+2
StringBuider 和 String 并不能兼容,不能直接转换
String转StringBuilder
直接new StringBuilder(String str)
StringBuilder转String
创建StringBuilder对象,然后通过toString()方法
也可以通过+ " "
StringBuilder常用方法
添加功能
append(String str)
insert(int offset,String str)
删除功能 delete
替换 replace
反转 reverse
这些功能的返回值都是StringBuilder
而截取功能 substring(int start, int end) 返回值是String类型
String、StringBuilder、StringBuffer的区别
String : 不可变字符串(底层是在堆里面char数组,这个数组是用final关键字修饰的),如果要频繁修改字符串,性能就比较低
StringBuilder、StringBuffer: 可变字符串(底层没有用final修饰),效率高
StringBuilder:线程不安全,性能高
StringBuffer:线程安全,性能低
Arrays工具类
提供数组的常用操作,一些常用方法
static String toString(int[ ] a)
static void sort(int[ ] a)
static int binarySearch(int[ ] a, int key): 二分查找,使用这个方法之前必须要使用sort排序
static int[ ] copyOf(int[ ] original , int newLength) 数组扩容
包装类
对基本类型的封装(主要就是解决基本类型不能点方法或者属性)
Integer Byte Short Float Double Long Boolean Character
装箱:引用类型=基本类型(这里可以把堆内存比作箱子)
拆箱:基本类型=引用类型
主要掌握方法:
static int parseInt(String s) 字符串转整数
Character
字符包装类
静态方法
static boolean isUpperCase(char ch)
boolean isLowerCase(cahr ch)
boolean isDigit(char ch)
char toUpperCase(char ch)
char toLowerCaser(cahr ch)
Math
数学运算工具类
全是静态方法
static int abs(int a) 绝对值
static double ceil(double a) 向上取整
static double floor(double a) 向下取整
static int round(float a) 四舍五入
int max(int a, int b)
double pow(double a, double b) 幂运算
double random()
double sqrt(double a)
Random
本质:底层是一个种子,(默认就是按照时秒)比如种子确定了,那么产生的随机数就是同一个
UUID
系统按照一定的算法,产生一组不重复的32位字符:底层使用硬件参数+系统时间,作为入口计算值
static UUID randomUUID( )
System(都是静态方法)
gc()
执行垃圾回收,清理对象的堆空间,调用finalize()方法
exit(int status)
整个程序结束,注意和return的区别:结束当前方法
currentTimeMillis()
获取系统当前时间毫秒数:从1770-01-01 0:0:0
和时间秒数相关的整数
int 秒
long 毫秒
数组复制扩容:
static void arraycopy()
BigInteger
大整数运算 简单来说就是数字很大的时候,通过字符串
有构造方法
以下这些方法返回值都是BigInteger
add(BigInteger val) 加法
subtract(BigInteger val) 减法
multiply(BigInteger val) 乘法
divide(BigInteger val) 除法
BIgInteger[ ] divideAndRemainder(BigInteger val)
BigDecimal
小数运算
也有构造方法
同理返回值都是BigDecimal
add(BigDecimal val) 加法
subtract(BigDecimal val) 减法
multiply(BigDecimal val) 乘法
divide(BigDecimal val) 除法
divide(BigDecimal val, int scale, int roundingMode) 除不尽的问题
Date
表示特定的瞬间,精确到毫秒
构造方法
成员方法
long getTime()
void setTime(long time)
字符串互转换日期
DateFormat 是抽象类,所以使用其子类SimpleDateFormat来实例化
字符串转日期
Date parse(String source)
日期转换字符串
final String format(Date date)