不灭的火

革命尚未成功,同志仍须努力下载JDK17

作者:AlbertWen  添加时间:2025-05-27 19:28:43  修改时间:2025-05-31 23:05:22  分类:08.Java基础  编辑

在Java编程的世界里,空指针异常(NPE:NullPointerException)一直是困扰开发者的一大难题。它像一只潜伏的幽灵,在你最意想不到的时候跳出来,让你措手不及。然而,从Java 8开始,Optional类的出现为我们提供了一种优雅的解决方案,让我们可以在处理可能为空的对象时更加从容。

作者:AlbertWen  添加时间:2025-05-19 12:13:44  修改时间:2025-06-01 09:38:22  分类:08.Java基础  编辑

Java类名规则

  1. 类名应该始终以一个大写字母开始。如果类名包含多个单词,每个单词的首字母应该大写。例如,"MyFirstJavaClass"。
  2. 类名应该是名词,因为类代表的是对象。
  3. Java类名不能包含空格或特殊字符。
  4. 类名可以包含字母、数字、美元符号($)和下划线(_),但是应该以字母开始。
  5. 类名不能是Java的保留关键字或保留字。例如,"int"、"class"、"void"等不能作为类名。
作者:AlbertWen  添加时间:2023-10-28 23:32:36  修改时间:2025-05-29 11:15:48  分类:08.Java基础  编辑

processBuilder.start() 会立刻返回,不会待ps进程结束。所以Process提供waitFor方法,调用后线程阻塞,直到ps命令结束。

作者:AlbertWen  添加时间:2023-07-01 00:49:00  修改时间:2025-05-31 17:37:13  分类:08.Java基础  编辑

通过Period.between()获取两个日期间相差的年数、月数、天数

作者:AlbertWen  添加时间:2023-06-26 20:01:06  修改时间:2025-05-31 15:33:47  分类:08.Java基础  编辑

对于整型数a,b来说,取模运算或者求余运算的方法都是:(即 内部算法都需要执行2步)

  • 第1步:求 整数商: c = a/b
  • 第2步:计算模或者余数: r = a - c * b
作者:AlbertWen  添加时间:2023-06-20 23:32:13  修改时间:2025-05-29 13:02:14  分类:08.Java基础  编辑

Java8中引入了两个与日期相关的新类

  • Period - 计算两个“日期”间隔的类
  • Duration - 计算两个“时间”间隔的类

Period 类与 Duration 类都是一段持续时间的概念,如果需要对比时间,它们就需要一个固定的时间值,所以就需要 LocalDate 类与 Instant 、LocalTime、LocalDateTime类来配合它们使用

作者:AlbertWen  添加时间:2023-04-09 08:47:58  修改时间:2025-06-01 09:38:55  分类:08.Java基础  编辑

TemporalAdjuster是时间调节器,可以执行复杂的日期操作,例如,可以获得下一个星期日的日期、当月的最后一天(再也不用计算当月是28,29还是30天了)、下一年的第一天、下一个工作日等等。

作者:AlbertWen  添加时间:2023-04-09 00:30:52  修改时间:2025-05-27 10:51:33  分类:08.Java基础  编辑

ZonedDateTime与LocalDateTime区别

  1. LocalDateTime:这基本上是一个美化的字符串表示日期和时间;它与时区无关,这意味着它不代表时间轴上的任何时间点
  2. Instant:这是自EPOCH以来经过的时间的毫秒表示,即 时间戳。这表示时间轴上的特定时刻(注意:时间戳跟时区没有关系!)
  3. ZonedDateTime:这也表示时间轴上的某个时刻,但它表示为带有时区的日期和时间
作者:AlbertWen  添加时间:2023-04-08 23:32:22  修改时间:2025-05-30 13:08:37  分类:08.Java基础  编辑
  • java.util.Date是用于表示一个日期和时间的对象(注意与java.sql.Date区分,后者用在数据库中没有格式化的Date),它打印出的日期可读性差,可以使用SimpleDateFormat对时间进行格式化,但SimpleDateFormat又是线程不安全,包括format和parse方法,而在时间的计算方面不是很方便。
  • java.util.Canlendar 可以用于获取并设置年、月、日、时、分、秒,它和Date比,主要多了一个可以做简单的日期和时间运算的功能,Canlendar 变量是全局变量,会导致脏变量情况产生,并且这个共享变量没有做线程安全控制,也就是多线程的情况下是线程不安全的。
  • Java8出的新的时间日期API都是线程安全的比如LocalDate、LocalTime、LocalDateTime这三个类,计算功能强大,并且性能更好,代码更简洁。
作者:AlbertWen  添加时间:2023-04-08 11:29:29  修改时间:2025-05-23 19:18:54  分类:08.Java基础  编辑

Java8时间类型的好处:

  1. 明确了日期、时间概念;例如:瞬间(instant)、 长短(duration)、日期、时间、时区和周期;
  2. 继承了Joda 库按人类语言和计算机各自解析的时间处理方式;
  3. 新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全;