Java持久性是指Java程序在运行时保存数据的能力。它可以让程序在重新启动后仍然保留之前的状态,而不需要重新输入数据。
Java持久性的实现方式有很多,其中最常用的是使用文件来存储数据。这样,当程序重新启动时,可以读取文件中的数据,并根据需要进行处理。
此外,还可以使用数据库来实现Java持久性。使用数据库可以将数据存储在一个中央位置,便于跟踪和维护。此外,使用数据库还可以实现对数据的安全性和一致性。
此外,Java还可以使用XML来实现持久性。XML是一种通用的标记语言,可以将数据存储在XML文件中,并且易于读写和分享。
public class PersistenceExample { public static void main(String[] args) { // 创建一个对象 Person person = new Person("John", "Doe"); // 存储对象 savePerson(person); // 载入对象 Person loadedPerson = loadPerson(); System.out.println("Loaded person: " + loadedPerson); } private static void savePerson(Person person) { // TODO: 存储person对象到文件或者数据库中 } private static Person loadPerson() { // TODO: 载入person对象 return null; } }
实例和持续时间允许我们记录时间戳和已用时间。
我们可以从瞬间添加和减去持续时间,以获得另一个瞬间。
通过添加两个持续时间,我们可以获得另一个持续时间。
即时和持续时间类别分别存储秒和纳秒。
即时和持续时间更常使用机器级时间。
瞬间表示独特的时刻。
一个时代是用作测量其他时刻的起源的瞬间。 时代是在1970-01-01T00:00:00Z。
两个连续时刻之间的时间是1纳秒。
时代之后的时刻具有正值,而时代之前的时刻具有负值。
在时期的瞬间被分配零值。
我们可以使用Instant.now()来获取使用系统默认时钟的当前时刻。
import java.time.Instant; public class Main { public static void main(String[] args) { Instant instantNow = Instant.now(); System.out.println(instantNow); } }
上面的代码生成以下结果。
您可以从历元偏移创建即时。
以下代码创建一个Instant对象以表示从时代开始的9秒。
import java.time.Instant; public class Main { public static void main(String[] args) { Instant instance9 = Instant.ofEpochSecond(9); System.out.println(instance9); instance9 = Instant.ofEpochSecond(-9); System.out.println(instance9); } }
上面的代码生成以下结果。
两个时刻可以比较知道是否发生在其他之前或之后。
实例和持续时间用于记录两个事件之间的时间戳和经过时间。
Duration
对象表示两个时刻之间的时间跨度。
Duration类可以具有正值和负值。
我们可以使用它的一个XXXX()静态工厂方法创建Duration类。
import java.time.Duration; public class Main { public static void main(String[] args) { Duration d1 = Duration.ofDays(2); System.out.println(d1); Duration d2 = Duration.ofMinutes(2); System.out.println(d2); } }
上面的代码生成以下结果。
乘法,除法和否定适用于Duration对象。
import java.time.Duration; public class Main { public static void main(String[] args) { Duration d = Duration.ofSeconds(200); // 3 minutes and 20 seconds Duration d1 = d.multipliedBy(2); // 6 minutes and 40 seconds Duration d2 = d.negated(); // -3 minutes and -20 seconds System.out.println(d); System.out.println(d1); System.out.println(d2); } }
上面的代码生成以下结果。
以下代码显示了如何从Instant中获取秒和纳秒:
import java.time.Instant; public class Main { public static void main(String[] args) { Instant i1 = Instant.now(); long seconds = i1.getEpochSecond(); System.out.println(seconds); int nanoSeconds = i1.getNano(); System.out.println(nanoSeconds); } }
上面的代码生成以下结果。
以下代码显示了如何进行即时和持续时间计算。
import java.time.Duration; import java.time.Instant; public class Main { public static void main(String[] args) { Duration d1 = Duration.ofSeconds(55); Duration d2 = Duration.ofSeconds(-17); Instant i1 = Instant.now(); Instant i4 = i1.plus(d1); Instant i5 = i1.minus(d2); Duration d3 = d1.plus(d2); System.out.println(d3); } }
上面的代码生成以下结果。
Java流连接Collectors类的joining()方法返回一个收集器,它连接CharSequence流,并将结果作为String返回。joining()方法是重载的...
Java IO教程 -Java扫描器要从标准输入读取数字,我们必须将其读取为字符串并将其解析为数字。java.util包中的Scanner类根据模式...
JavaFX教程 -JavaFX组合框组合框允许用户选择几个选项之一。用户可以滚动到下拉列表。组合框可以是可编辑和不可编辑的。创建组合...
Java Lambda语法使用lambda表达式的一般语法是(Parameters) -{ Body }- 分隔参数和lambda表达式主体。参数括在括号中,与方法相...
Java脚本教程 -Java脚本范围范围与绑定一起使用。绑定的范围决定了其键值对的可见性。一个绑定仅发生在一个作用域中。脚本引擎首...