String字符串
字符串的值保存在常量池中。jdk1.7后常量池放在了堆空间中。
**equals()**方法:比较的是字符数组中的每一个字符。==比较的是字符串的地址。比较字符串一般使用equals。
**intern()**方法:当常量池中不存在这个字符串的引用时,将这个对象的引用加入常量池。返回引用。
Sting是一个不可变对象,其实指的是引用本身不可变。
StringBuffer与StringBuilder
相同:
- 都是可变字符串
- 都继承自AbstractStringBuilder抽象类
不同:
- StringBuilder是线程不安全的,StringBuffer是线程安全的。
时间处理类
Date类
Date date = new Date();
System.out.println(date);// 当前系统日期
System.out.println(date.getTime());// 自 1970 年 1 月 1 日 00:00:00以来的毫秒值
System.out.println(date.getYear());// 当前年,相对于1900年
Sun May 03 09:42:07 CST 2020
1588470127155
120
DateFormat类
日期格式化类
Date date = new Date();
//给定日期格式
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//格式化
String str = format.format(date);
System.out.println(str);
//将字符串转换成对应的日期
Date date1 = format.parse("2020-4-1 10:20:30");
System.out.println(date1);
2020-05-03 09:50:24
Wed Apr 01 10:20:30 CST 2020
日期类中的很多方法都过时了,可以用日历类替代
Calendar类
calendar是一个抽象类
要使用日历类只能使用 Calendar.getInstance() 获取他的子类。
//给定日期格式
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//将字符串转换成对应的日期
Date date = format.parse("2020-4-1 10:20:30");
// 获取当前系统时间,的格林日期
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH));// 月份重零开始
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));// 星期天开始(1)
// 设置指定时间
calendar.setTime(date);
System.out.println(calendar);
java.util.GregorianCalendar[time=1588471296710,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=4,WEEK_OF_YEAR=19,WEEK_OF_MONTH=2,DAY_OF_MONTH=3,DAY_OF_YEAR=124,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=1,SECOND=36,MILLISECOND=710,ZONE_OFFSET=28800000,DST_OFFSET=0]
2020
4
1
java.util.GregorianCalendar[time=1585707630000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=3,WEEK_OF_YEAR=14,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=92,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=20,SECOND=30,MILLISECOND=0,ZONE_OFFSET=28800000,DST_OFFSET=0]
Math数学类
数学类里有一些很方便的api。如平方、开方、取整、比较大小等
Math.pow(1,2); // 1的2次方
Math.sqrt(50); // 50开平方
Math.ceil(3.14);// 向下取整
Math.floor(3.14);// 向上取整
Math.round(3.14);// 四舍五入