输入下面的命令来修改时区: sudo timedatectl set-timezone America/New_York 然后运行下面的命令来查看当前时间和时区。 timedatectl status 上面的命令能够查看当前的时区和时间。 https://www.ossez.com/t/fedora-america-new-york/13917
输入下面的命令来修改时区: sudo timedatectl set-timezone America/New_York 然后运行下面的命令来查看当前时间和时区。 timedatectl status 上面的命令能够查看当前的时区和时间。 https://www.ossez.com/t/fedora-america-new-york/13917
如果你对自增字段有什么不了解的话,你可以搜索下相关定义。 简单来说就是一个数据表中需要一个主键,但是这个主键可能又没有什么具体的意义,你可以使用 AUTO_INCREMENT 来标识这条记录。 如果你还需要官方的定义,请参考下面的说明: 在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。 通过给字段添加 AUTO_INCREMENT 属性来实现主键自增长。语法格式如下: AUTO_INCREMENT 说明 有下面的一些属性需要进行说明: 默认情况下,AUTO_INCREMENT 的初始值是 1,每新增一条记录,字段值自动加 1。 一个表中只能有一个字段使用 AUTO_INCREMENT 约束,且该字段必须有唯一索引,以避免序号重复(即为主键或主键的一部分)。 AUTO_INCREMENT 约束的字段必须具备 NOT NULL 属性。 AUTO_INCREMENT 约束的字段只能是整数类型(TINYINT、SMALLINT、INT、BIGINT 等)。 AUTO_INCREMENT 约束字段的最大值受该字段的数据类型约束,如果达到上限,AUTO_INCREMENT 就会失效。 一个用例 对 AUTO_INCREMENT 来说下一个值就是当前表格中最大的值 + 1。 如果中间有空的话,也不会返回自动填充。 这个是需要注意的。 如果你将表中的最大值修改为其他一个值的话,那么下一个值就是这个值 + 1。 上面的表格就是这个说明。 我们尝试让一个 id 从 1001 开始,1001 的值是我们手动填充到表中的。 当我插入一个新数据的时候,新插入的数据的值是自动从 1002 开始的。 哪怕我们没有对 AUTO_INCREMENT 进行修改,表也不会将数据填充会丢失的数据。 https://www.ossez.com/t/mariadb-auto-increment/13916
最常见的初始化 List 方法为: List<String> languages = new ArrayList<>(); languages.add("Java"); languages.add("PHP"); languages.add("Python"); System.out.println(languages); 但是实际上,我们并不会直接使用 new ArrayList 来初始化 List。 你可以使用 Guava 的 newArrayList 来直接初始化。 List<String> languages = Lists.newArrayList(); 上面 2 种方法初始化的 List 是可变的,因此你可以对初始化成功的 List 进行添加和删除。 Arrays 使用这个方法初始化的 List 是不可变的。 考虑使用下面的代码来初始化一个 List。 List<Integer> list1 = Arrays.asList(1,2); Arrays 是 JDK 的一个类,你可以使用这个类来初始化一个 List。 考察下面的代码: List<Integer> list1 = Arrays.asList(1,2); list1.add(3); 将会给你一个:java.lang.UnsupportedOperationException 异常。 这是一个运行时错误,不是编译错误。 因此你在编译的时候是不会提示的。 List 使用这个方法初始化的 List 是不可变的。 考虑使用下面的代码来初始化一个 List。 List<Integer> list = List.of(1,2); List 是 JDK 的一个类,你可以使用这个类来初始化一个 List。 考察下面的代码: List<Integer> list1 = List.of(1,2); list1.add(3); 将会给你一个:java.lang.UnsupportedOperationException 异常。 将不可变 List 变成可变 如果 List 是不可变的。 我们可以使用 new ArrayList<> 来包装下就可以了 考察下面的代码: List<Integer>list2 = new ArrayList<>(Arrays.asList(1,2)); list2.add(3); 如果使用上面的代码的话,你创建的 List 就可以是可变的了,可以对创建的 List 进行修改和删除。 https://www.ossez.com/t/java-list/13915
在 IntelliJ IDEA 中有下面的一个提示: 问题就是我们在使用代码; List<Integer> x = List.of(1,2); 提示我们需要是用 JDK 版本的 9 的编译级别。 问题和解决 这个问题的主要原因是你可能使用了 Maven。 IntelliJ IDEA 会根据你 Maven pom.xml 文件中的配置来设编译级别。 如果下面的图片中显示的内容。 我们对项目编译使用的级别是 1.8。 但是上面代码中对 List 的初始化只能在 JDK 9 以后的版本才能用。 因此出现了上面的编译级别错误的提示。 解决版本就是将上面的 JDK 编译级别设置到 9 以上。 或者可以考虑使用下面的代码来进行初始化: List<Integer> x = Arrays.asList(1,2); 这样就能够修正 IntelliJ IDEA 提示的代码编译错误了。 https://www.ossez.com/t/java-intellij-idea-set-the-language-level-9/13914
当前 Maven Compiler Plugin 这个插件的版本为 3.10.1 你可以使用最新的版本。 我们今天主要说一下这个插件中 --release 参数 这个插件的配置方法如下: <?xml version="1.0" encoding="UTF-8"?> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.10.1</version> <configuration> <release>11</release> </configuration> </plugin> 从 JDK 9+ 版本以后,添加了一个 --release 参数来告诉 Maven 在编译的时候使用的是那个 JDK 的版本。 通常这个参数了决定了你在 IntelliJ IDEA 中导入项目后为你设置的 JDK 编译级别。 以前,我们通常还需要添加 11 和 11 这 2 个配置参数在里面。 当你设置了 --release 参数后,上面 2 个参数就不再需要了。 这是因为 --release 设置后,将会自动把 11 和 11 2 个参数设置为 --release 相同的版本。 因此上面的 2 行代码就是多余的了,并不需要。 https://www.ossez.com/t/maven-maven-compiler-plugin/13913