String/StringBuffer/StringBuilder的区别 String:不可变的字符序列 StringBuffer:可变的字符序列,线程安全,效率低 StringBuilder:可变的字符序列,线程不安全,效率高 它们的共同点是底层都是用char[]存储的。 StringBuilder常用方法 StringBuffer与StringBuilder用法几乎完全一致,区别就在于一个线程…
首先我们需要知道时区的概念,同一时刻不同时区他们的表上的时间是不一样的。所以,我们在存取时间的时候,尽量存时间戳而不是时间字符串。特别是国际化的项目,一定是存时间戳(Epoch Time),而不能是时间字符串。 在java中,用长整型来存放时间戳(毫秒数); 标准库API 我们再来看一下Java标准库提供的API。Java标准库有两套处理日期和时间的API: 一套定义在java.util这个包里面…
从Java 8开始,java.time包提供了新的日期和时间API,主要涉及的类型有: 本地日期和时间:LocalDateTime,LocalDate,LocalTime; 带时区的日期和时间:ZonedDateTime; 时刻:Instant; 时区:ZoneId,ZoneOffset; 时间间隔:Duration。 以及一套新的用于取代SimpleDateFormat的格式化类型DateTim…
从Java 8开始,java.time包提供了新的日期和时间API,主要涉及的类型有三个重要的处理时间日期的类: LocalDateTime 通过日期时间来创建 DateTimeFormatter 日期时间格式化工具 Instant:通过时间戳来创建 下面来通过几个例子来看看这几个类的用法: 日期时间戳互相转换 首先看给定一个日期,获取时间戳的操作。 import java.time.*; imp…
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInterger和BigDecimal。这两个类可以处理任意长度数字序列的数值。BigInterger实现任意精度的整数运算,BigDecimal实现任意精度的浮点数运算。 使用大数需要注意的是,不能使用人们习惯的算术运算符(+、-、*、/)等,而需要使用大数自己的方法。 import java.m…