【动力节点 Java进阶学习笔记】第三章 常用类
1、String类的特性
java.lang.String 引用数据类型
字符串一旦创建不可变
双引号括起来的字符串存储在方法区的字符串常量池中
字符串的比较必须使用equals方法
String已经重写了toString()和equals()方法
String s = “abc”; //s为方法区中字符串常量池里字符串的引用
String s = new String(“abc”); //s为堆内存区String对象的引用,对象中再保存方法区中字符串常量池里字符串的引用
2、String类中常用方法
char charAt(int index)
int compareTo(String anotherString)
boolean contains(CharSequence s)
boolean endsWith(String suffix)
boolean startsWith(String prefix)
boolean equals(Object anObject)
boolean equalsIgnoreCase(String anotherString)
byte[] getBytes()
int indexOf(String str)
int lastIndexOf(String str)
int length()
boolean isEmpty()
String replace(CharSequence target, CharSequence replacement)
String[] split(String regex)
String substring(int beginIndex)
String substring(int beginIndex, int endIndex)
char[] toCharArray()
String toLowerCase()
String toUpperCase();
String trim();
static String valueOf() 静态方法
3、StringBuffer/StringBuilder的使用和区别,以及为什么String是不可变的,StringBuffer/StringBuilder是可变的
用于字符串的频繁拼接
StringBuffer线程安全,StringBuilder线程不安全
StringBuffer/StringBuilder初始化容量16
完成字符串拼接操作的方法名:append
String数组对象引用final修饰,并且没有提供公开的set方法来修改元素
StringBuffer/StringBuilder引用没有使用final修饰
4、八种基本数据类型对应包装类的类名、自动装箱拆箱及常用方法
基本数据类型 包装类型
---------------------------------------------------------
byte java.lang.Byte(父类Number)
short java.lang.Short(父类Number)
int java.lang.Integer(父类Number)
long java.lang.Long(父类Number)
float java.lang.Float(父类Number)
double java.lang.Double(父类Number)
boolean java.lang.Boolean(父类Object)
char java.lang.Character(父类Object)
Integer String int三种类型互相转换:
Integer --> String String.valueOf()
String --> Integer Integer.valueOf()
String --> Int Integer.parseInt()
Int --> String String.valueOf() 或 int + ""
Int --> Integer 装箱 new Integer() 或自动装箱 Integer.valueOf()
Integer --> Int 拆箱 intValue() 或自动拆箱
5、时间类java.util.Date、java.text.SimpleDateFormat、System.currentTimeMillis()的使用
获取系统当前时间:java.util.Date 输出格式:Sun Jan 09 17:31:05 CST 2022
日期格式化:Date --> String:<SimpleDateFormat对象>.format()
String --> Date:<SimpleDateFormat对象>.parse()
获取毫秒数:long begin = System.currentTimeMillis() //自1970年1月1日到系统当前时间的总毫秒数
6、数字类DecimalFormat(数字格式化)和BigDecimal(精度极高)
java.text.DecimalFormat:
无参构造方法:小数点后三位+千分位
new DecimalFormat("###,###.###"); //不补零
new DecimalFormat("###,###.000"); //补零
DecimalFormat详细讲解:https://blog.csdn.net/a1064072510/article/details/89887633
java.text.DecimalFormat:
BigDecimal详细讲解:https://blog.csdn.net/qq_35868412/article/details/89029288
7、Random生成随机数以及生成某个范围内的随机数
生成int类型随机数:<Random对象>.nextInt()
生成某个范围内随机数:<Random对象>.nextInt(Int a) 比如nextInt(101)为产生[0-100]的随机数
8、枚举Enum的定义和使用
enum 枚举类型名{
枚举值1,枚举值2,枚举值3
}
enum使用可参考:https://blog.csdn.net/mingyuli/article/details/113487078