java基础进阶学习笔记Day04(黑马磊哥课程)

day04-常用API

StringBuilder

StringBuilder是拼接字符串的手段(工具),String才是开发的目的

//append方法返回的是当前对象的引用,可以实现链式编程
//源码如下
public StringBuilder append(String str) {
        super.append(str);
        return this;
    }

StringBuffer 与 StringBuilder

StringJoiner

好处:自动添加间隔符号,开始符号和结束符号

Math

工具类不能创建对象,构造器私有,只会提供静态方法

Runtime

Runtime代表的是运行时环境,代表电脑中的JVM

//屁用没有,开拓思维
//启动QQ后会返回一个进程对象,代表启动的QQ软件
Process qq = runtime.exec("QQ");
Thread.sleep(1000);
qq.destroy();//关掉进程

System

currentTimeMillis()返回的是从1070-1-1 00:00:00走到此刻的总毫秒值(1s=1000ms)

BigDecimal

第一个构造器还是会失真,只是为了兼容大数据的运算,不推荐使用

阿里巴巴公司更推荐使用valueOf()方法包装浮点型数据成为BigDecimal对象。

规范代码参考

double a = 0.1;
double b = 0.2;

BigDecimal a1 = BigDecimal.valueOf(a);
BigDecimal b1 = BigDecimal.valueOf(b);
BigDecimal c1 = a1.add(b1);//接住结果
//BigDecimal是处理数据精度的手段;结果必须还是基本类型
double c11 = c1.doubleValue();
System.out.println(c11);

注意除法操作细节

BigDecimal i = BigDecimal.valueOf(0.1);
BigDecimal j = BigDecimal.valueOf(0.3);
//BigDecimal k = i.divide(j);//直接这么写会报错,因为无法得到一个精准的结果

//这时要使用重载方法,手动设置舍入模式
BigDecimal k = i.divide(j, 2, RoundingMode.HALF_UP);
System.out.println(k);

JDK8开始新增的日期、时间

LocalDate,LocalTime,LocalDateTime (重要)

三个都是不可变对象

毫秒值转LocalDateTime

        long l = f.lastModified();
        System.out.println(l);


        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        LocalDateTime ldt = LocalDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), ZoneId.systemDefault());
        String format = ldt.format(dtf);
        System.out.println(format);

ZoneId 、 ZonedDateTime

用的很少,不会也没关系

拿世界标准时间

ZonedDateTime zdt = ZonedDateTime.now(Clock.systemUTC());
System.out.println(zdt);

Instant

DateTimeFormatter(重要)

使用参考

//格式化时间
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss EEE 的 a");
LocalDateTime ldt = LocalDateTime.now();
String format = dtf.format(ldt);//格式化器格式化日期
System.out.println(format);//2025年05月27日 17:16:59 周二 的 下午

String format1 = ldt.format(dtf);//反过来调用也可以:日期用格式化器来格式化
System.out.println(format1);//2025年05月27日 17:18:55 周二 的 下午

///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////

//解析时间
String dateStr = "2023-11-23 12:12:43";
//第一步必须写一个日期时间格式化器
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parse = LocalDateTime.parse(dateStr, dtf);
System.out.println(parse);

Period(一段时期)

Duration(持续时间)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值