Java学习笔记:JDK8日期时间API与String特性
64 浏览量
更新于2024-09-01
收藏 129KB PDF 举报
"30天搞定Java–day21:涵盖了Java常用类,包括JDK 8之前和新日期时间API,以及String类的不可变性、比较器接口、System类、Math类、BigInteger与BigDecimal的相关知识。"
在Java编程语言中,`String`类是一个非常重要的部分,它代表不可变的字符序列。在`day21`的学习中,我们深入探讨了`String`类的一些关键特性。例如,当创建`String`对象时,如`s1="hello"`和`s2="hello"`,它们都会指向常量池中的同一实例,因为"hello"是一个字面量。然而,使用`new String("hello")`会创建一个新的对象在堆中,这在内存中产生了两个对象。
`String`类的不可变性意味着一旦创建,它的值就不能改变。例如,当我们执行`s1+="world"`,实际上会创建一个新的`String`对象,包含"hello world",而原始的`s1`并没有改变。由于这个特性,`String`类被声明为`final`,不能被继承。
在处理大量字符串操作时,`StringBuffer`和`StringBuilder`提供了更高效的选择。它们都是可变的,允许在原有基础上进行修改,而不是每次都创建新对象。其中,`StringBuffer`是线程安全的,适合多线程环境,而`StringBuilder`没有同步机制,因此在单线程环境中性能更好。
在JDK 8之前,日期和时间的处理主要依赖于`SimpleDateFormat`和`Calendar`类。这两个类虽然功能强大,但使用起来较为复杂。JDK 8引入了全新的日期时间API,包括`LocalTime`、`LocalDateTime`、`LocalDate`等,这些类提供了更加简洁和直观的接口,使得日期时间的处理变得更加容易。
`Comparable`接口用于实现对象的自然排序,比如`String`类已经实现了这个接口,可以根据字典顺序比较字符串。`Comparator`接口则允许自定义比较逻辑,可以用于任何类型的对象,提供了更大的灵活性。
`System`类提供了一些系统级别的功能,如获取当前时间`System.currentTimeMillis()`,或者清理输出流`System.out.flush()`。`Math`类则包含各种数学函数,如平方根`Math.sqrt()`和随机数`Math.random()`。
对于大整数运算,`BigInteger`和`BigDecimal`是Java中两个重要的类,它们分别用于表示任意精度的整数和浮点数,避免了因溢出或精度损失问题导致的计算错误。
复习`day20`的内容,我们可能学习了`String`、`StringBuffer`和`StringBuilder`之间的转换方法,以及如何在它们之间进行操作以提高效率。
`day21`的学习涵盖了Java开发中常用的类和接口,为后续更深入的Java编程打下了坚实的基础。通过理解和熟练运用这些知识点,开发者能够更高效地编写和优化Java代码。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-12-21 上传
2021-01-20 上传
2020-12-21 上传
2021-01-20 上传
点击了解资源详情
点击了解资源详情
weixin_38711643
- 粉丝: 1
- 资源: 902
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器