Java的值传递和所谓的引用传递
本质上java只要值传递,所有的赋值传参都是一次值的拷贝
引用数据类型拷贝的是引用地址,基本数据类型拷贝的是值,不会传入实例对象本身
面试题:打印输出的结果是?
输出结果:
常用api(应用程序接口)
JDK提供一些写好的类,可以直接调用方法来解决问题
类的方法,在宏观上都可以成为接口。
时间相关的api
时区:东八区
北京时间:+8
时间戳(全世界是固定的):获取时间戳,可以通过时间戳转换成我们当前所在地的具体时间和日期。
时间戳:格林尼治时间1970.1.1 00:00:00 到尽头2022.7.28 9:29:30 的毫秒数
1s = 1000ms , 1min = 60s , 1h = 60min , 1day =24h。
获取时间戳 // 可以通过时间戳转换成我们当前所在地的具体时间和日期 System.out.println(System.currentTimeMillis());
获取系统当前日期时间 Date date = new Date(); System.out.println(date); compareTo
当返回负数时,说明调用者时间是在参数时间之前。
当返回0时,说明调用者时间和参数时间相同。
当返回正数时,说明调用者时间在阐述时间之后。
日历类:日期、时间
Calendar是一个抽象类,能new不能创建对象
初始化;
提供了一组对“年月日、时分秒、星期”等信息的操作函数。可以操作不同时区的信息。
JDK1.1版本开始,在处理时间和日期时,系统推荐使用Calendar类
Calendar要比Date强大的多
除非要一次性获取年月日时分秒,否则一律用Calendar。
时区
ZoneId(获取某一个地方的id)
日期格式化(SimpleDateFormat) format:格式化Date类型,把Date类型转成String类型 我们要展示数据到客户端。 parse:把String类型的时间,转成Date类型 从客户端传过来的时间,一般都是String类型,存入数据库。
yyyy代表年,yy代表年的后两位
MM代表月
dd代表日
HH代表小时(24小时制) hh代表小时(12小时制)
mm代表分
ss代表秒
SSS代表毫秒
工具类的方法都是静态
新的时间类
Instant
LocalDate
LocalTime
DateTimeFormatter
持续时间Duration
LocalDate:获取当前日期
执行结果:
判断是否为闰年
本地时间 LocalTime
获取日和时间 LocalDateTime
处理日期的格式化问题 DateTimeFormatter
把Instant转成Date
把Date转成Instant
把Instant转成LocalDateTime
把LocalDateTime转成Instant
把Date转成LocalDateTime
把LocalDateTime转成Date
Math 数学类
随机数 random() double
向上取整 ceil() double
向下取整 floor()double
四舍五入 round()long
BigDecimal统计类
随机类 Random
Arrays——数组的工具类
数组的排序
数组的查找
数组拷贝
数组的比较
System类——系统类
Objects(工具类)JDK1.7
判断是不是空
StringBuffer和StringBuilder——可变的字符序列
和String是有本质区别的
StringBuffer不能直接用等号赋值
![]()
追加
删除
![]()
删除指定位置
![]()
插入
![]()
反转(面试会问)
![]()
String怎么反转?
1.
![]()
2.
![]()
StringBuffer是(线程)同步的。安全,效率低
StringBuilder是异步的。不安全,效率高
面试题:三个字符串的区别