包装类
StringBuilder
StringBuilder代表可变字符串对象,相当于是一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的。
好处: StringBuilder比String更适合做字符串的修改操作,效率会更高,代码也会更简洁。
StringBuffer与StringBuilder
注意:
stringBuffer的用法与StringBuilder是一模一样的
但StringBuilder是线程不安全的 StringBuffer是线程安全的
StringJoiner
JDK8开始才有的,跟StringBuilder一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的。
好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁
BigDecimal 精度运算
用于解决浮点型运算时,出现结果失真的问题。
import java.math.BigDecimal; import java.math.RoundingMode; public class Test { public static void main(String[] args) { double a = 0.1; double b = 0.2; System.out.println(a+b); //使用 BigDecimal BigDecimal a1 = BigDecimal.valueOf(a); BigDecimal b1 = BigDecimal.valueOf(b); BigDecimal c1 = a1.add(b1); System.out.println(c1); BigDecimal k = a1.divide(b1,2, RoundingMode.HALF_UP); System.out.println(k); } }
SimpleDateFormat 日期格式化
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) throws ParseException { Date date = new Date(); System.out.println(date.getTime());//时间毫秒值 Date d2 = new Date(date.getTime()+2*1000*60); System.out.println(d2); //格式化日期对象和时间毫秒值 new SimpleDateFormat("时间格式") SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String fd = simpleDateFormat.format(date); System.out.println(fd); //字符串时间转换成日期对象 Date fd2 = simpleDateFormat.parse("2022-05-12"); System.out.println(fd2); } }
calender
import java.text.ParseException; import java.util.Calendar; public class DateTest { public static void main(String[] args) throws ParseException { Calendar instance = Calendar.getInstance(); System.out.println(instance); //获取日历中的某个信息 System.out.println(instance.get(Calendar.YEAR)); //获取日期对象 System.out.println(instance.getTime()); //获取时间毫秒值 System.out.println(instance.getTimeInMillis()); //修改日历中某个信息值 instance.set(Calendar.MONTH,9); //为某个信息增加或者减少 instance.add(Calendar.DAY_OF_YEAR,100); instance.add(Calendar.HOUR,10); } }
获取日期之间的相差 LocalDate 和 Duration
Duration:可以用于计算两个时间对象相差的天数、小时数、分数、秒数、纳秒数;支持LocalTime、LocalDateTime、Instant等时间.
import java.time.LocalDate; import java.time.Period; public class Test { public static void main(String[] args) { LocalDate start = LocalDate.of(2023, 7, 3); LocalDate end = LocalDate.of(2024, 6, 29); Period period = Period.between(start, end); //获得相差时间的信息 System.out.println(period.getYears()); System.out.println(period.getMonths()); System.out.println(period.getDays()); } }
Arrays类 操作数组的工具类
import java.util.Arrays; import java.util.function.IntToDoubleFunction; public class Test { public static void main(String[] args) { int[] arr = {30,10,49,20,55,60,27}; System.out.println(Arrays.toString(arr)); int[] ints = Arrays.copyOfRange(arr, 1, 5); System.out.println(Arrays.toString(ints)); int[] arr3 = Arrays.copyOf(arr,10); System.out.println(Arrays.toString(arr3)); double[] prices = {99.8,88.9,102}; Arrays.setAll(prices, new IntToDoubleFunction() { @Override public double applyAsDouble(int value) { return prices[value]*0.9; } }); System.out.println(Arrays.toString(prices)); Arrays.sort(arr); System.out.println(Arrays.toString(arr)); } }
lamdba表达式