学会使用常用的API
学习心得:
今天感觉顿悟了,学习劲头很足。
学习内容: 一、开场
Java的值传递和所谓的引用传递
本质上Java只有值传递,所有的赋值传参都是一次值的拷贝
引用数据类型拷贝的就是引用地址,基本数据类型拷贝的是值,不会传入值的本身
//输出tom和6
public class Ch01 {
private String name;
public Ch01(String name){
this.name=name;
}
public static void change(Ch01 ch01){
ch01 = new Ch01("jerry");
}
public static void change(int j){
j=8;
}
@Override
public String toString() {
return "Ch01{" +
"name='" + name + ''' +
'}';
}
public static void main(String[] args) {
Ch01 ch01 = new Ch01("tom");
change(ch01);
System.out.println(ch01);
int i=6;
change(i);
System.out.println(i);
}
}
二、常用API
API(Application Programming Interface) 应用程序接口
JDK给我们提供的一些已经写好的类,我们可以直接调方法来解决问题。
我们类的方法,在宏观上都可以称为接口。
api的方法,介绍api
1.时间相关API时间:
格林尼治天文台,伦敦
北京时间:+8
时区:东八区
时间戳:1970年1.1 00:00:00 到现在 2022.7.28 09:30:00
时间戳全世界都是固定的
public class Ch03 {
public static void main(String[] args) {
//可以通过时间戳转换或我们当前所在地的具体时间和日期
long start=System.currentTimeMillis();
for (int i = 0; i < 10000000; i++) {
if (i%100==0){
System.out.println(i);
}
}
long end = System.currentTimeMillis();
System.out.println(end-start);
}
}
2. Date日期类
public class Ch04 {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
}
}
3.日历类:日期
初始化,提供了一组对年月日星期等的信息操作函数,操作不同时区的信息
在处理时间和日期时,推荐使用Clender,Clender要比Date强大得多;
4.时区类public class Ch08 {
public static void main(String[] args) {
ZoneId zoneId =ZoneId.of("America/New_York");
System.out.println(TimeZone.getTimeZone(zoneId));
}
}
5.日期格式化
yyyy:年
yy:年的后两位
MM:月
dd:日
HH:24小时制
hh:12小时制
mm:分
ss:秒
sss:毫秒
日期格式化:SimpleDateFormat
格式化Data类型,把Date类型转成String类型,我们需要展示数据到客户端
parse 把String类型的时间,转成Date类型
从客户传过来的时间,一般都是String类型,存入数据库
三、JDK8的日期和时间类在JDK8之前,处理日期和时间,基本上就是用以上的几个类。
Date和Calendar,获取到的月份都是0-11,而不是我们生活中的1-12.
阿里的明确要求
如果是JDK8的应用,可以使用instant代替Date
LocalDatetime代替Calendar
DateTimeFomatter代替SimpleDateFormat
import java.time.Instant;
import java.time.ZoneId;
public class Ch10 {
public static void main(String[] args) {
Instant instant = Instant.now();
//本时区
System.out.println(instant.atZone(ZoneId.systemDefault()));
//秒
System.out.println(instant.getEpochSecond());
//毫秒
System.out.println(instant.toEpochMilli());
//时间戳转换
long mills=System.currentTimeMillis();
System.out.println(Instant.ofEpochMilli(mills));
//字符串转时间
String text="2022-07-28T06:05:48.497Z";
Instant parse=Instant.parse(text);
System.out.println(parse);
}
}
四、数学类
随机数 random()
向上取整 ceil()
向下取整 floor()
四舍五入 round()



