Math类:1)abs 2)ceil 3)floor 4)round
5)max 6)min 7)random
java.util.Date
Date类: Date对象记录的时间是用毫秒值来表示的。Java语言规定,1970年1月1日0时0分0秒认为是时间的起点,此时记作0,那么1000(1秒=1000毫秒)就表示1970年1月1日0时0分1秒,依次类推。
注:由于我们处于东八区,所以我们的基准时间为1970年1月1日8时0分0秒。(java会自动计算出东八区的时间)
Date默认获取当前时间,格式 Fri Jan 12 11:45:47 CST 2024
getTime 获取时间戳 setTime 通过时间戳重置时间
java.time.LocalDate怎么用?
DateFormat类:
使用其实现类
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.format(Date|时间戳)
sdf.parse(指定格式时间字符串)
**Calendar日历类:**可以单独修改某一字段的信息
Canlendar now = Calendar.getInstance();
public static void main(String[] args) {
//1.获取当前时间对应的日历类
Calendar now = Calendar.getInstance();
//这个now的输出看不懂,不能直接用。要处理。
System.out.println(now);
//获取日历中的某个信息
int year = now.get(Calendar.YEAR);
System.out.println(year);
//这里0代表一月
int month = now.get(Calendar.MONTH);
System.out.println(month);
int dayOfMonth = now.get(Calendar.DAY_OF_MONTH);
System.out.println(dayOfMonth);
//这里周日为1,周一为2
int dayOfWork = now.get(Calendar.DAY_OF_WEEK);
System.out.println(dayOfWork);
//将其转为Date类型。
Date time = now.getTime();
System.out.println(time);
//2.修改日历类中的某个信息
now.set(Calendar.YEAR,2023);
//将其转为Date类型输出
System.out.println(now.getTime());
}
运行结果:
System类:
停止jvm运行:System.exit(0);
数组拷贝: System.arraycopy(五个参数)
包装类:
//手动装箱
int num = Integer.*valueOf*(3);
//自动装箱
Integer num1 = 3;
//手动拆箱
int num2 = num1.intValue();
//自动拆箱
int nmu3 = num2 +3;
字符串与基本数据类型的转换:
1)3+‘’ 2)integer.toString() 3)String.valueOf
字符串解析为基本类型:
Integer.parseInt(str);
String类:
endwith startwith
String常用方法(之前同学面试问到过):
1)length 2)concat 3)charAt 4)indexOf 5)subString 6)startWith 7)endWith 8)split
9)repalce 10)replaceAll(正则表达式) 11)toCharArray 12)getBytes 13) trim
String类的常量池:
字符串常量池是Java中用于存储字符串常量的一个特殊区域,它位于Java Heap内存中。在Java中,字符串是不可变的,即一旦创建就不能被修改。为了提高字符串的效率和节省内存,Java引入了字符串常量池的概念。
在字符串常量池中,相同内容的字符串常量(直接双引号写出来的字符串)被存储为同一个对象。这意味着如果你创建了两个相同内容的字符串常量,它们将引用同一个实际的String对象,而不是在内存中创建两个相同内容的副本。
由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。
String str = ”a“ + “b” + “c”;语句的执行过程如下:
先在常量池保存abc三个字符串,然后拼接a和b字符串为ab,再将ab字符串存储。接着拼接ab和c,保存abc字符串。
由此可知,如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。为了解决这一问题,可以使用java.lang.StringBuilder类。
面试题:
public class Test3 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "ab";
String s3 = "ab" + "c";
String s4 = s2 + "c";
System.out.println(s1 == s3);
System.out.println(s1 == s4);
}
}
这段代码的输出结果为:
true
false
解析:s3由“ab”和“c”拼接后的“abc”是常量,放在常量池。s4由s2和“c”拼成,但是s2是字符串变量,不是常量,所以拼接后的结果不放在常量池,而是去new新的内存空间。
StringBuilder*类:
StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
原来StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。原理如下图所示:(默认16字符空间,超过自动扩充)。
常用方法:
append:添加任意类型数据的字符串形式,并返回当前对象自身。
toString:通过toString方法,StringBuilder对象将会转换为不可变的String对象。
正则表达式用处:
用于身份证,手机号,邮箱,账号,密码等内容的校验。
可以从一段文本中查找满足正则要求的内容。
目前较少使用,用到可借助GPT生成所需的正则表达式。
g方法,StringBuilder对象将会转换为不可变的String对象。
[外链图片转存中…(img-qVhOylsu-1705049913217)]
正则表达式用处:
用于身份证,手机号,邮箱,账号,密码等内容的校验。
可以从一段文本中查找满足正则要求的内容。
目前较少使用,用到可借助GPT生成所需的正则表达式。