假期学习12

第12天:基础类库(上)
对应章节:第7章
(1)今天做了什么: Scanner类用于接收键盘输入,nextInt()、nextLine()等方法远比System.in方便。System类重点out/in/err三字段、currentTimeMillis()、gc()。String类不可变——修改操作(concat、replace等)都创建新String对象。字符串常量池让相同内容的字面量复用同一引用("hello""hello"为true),但new String("hello")在堆中新建对象(比较为false)。String类数十个方法逐个练习了:length()、charAt()、substring()、indexOf()、split()、trim()、toUpperCase()等。StringBuilder(线程不安全、快)和StringBuffer(线程安全、慢)用于频繁拼接场景,替代低效的+号拼接。练习:统计字符频率;用三种方式实现字符串反转。
(2)明天准备做什么: 学习第7章中间部分——Math类静态方法,Random和ThreadLocalRandom,BigDecimal精确运算,传统Date/Calendar以及Java 8的LocalDate/LocalTime/LocalDateTime。练习日期计算器和BigDecimal收银系统。
(3)遇到的问题: Scanner的nextInt()后紧接nextLine()时,nextLine()读到了上一个回车换行符而跳过输入——因为nextInt()不消耗换行符。解决:在两者之间多加一次nextLine()消耗掉换行符。String用+号在循环中拼接1000次产生了大量中间对象,改用StringBuilder的append后效率明显提升。==比较的是引用地址,内容比较必须用equals()。

posted @ 2026-08-03 22:10  呱哒  阅读(8)  评论(0)    收藏  举报