
Java
文章平均质量分 56
surfirst
长期就职于全球化的公司团队。领导的团队是公司第一个转型为敏捷开发模式的团队,成功推动整个部门转型为敏捷开发模式。协调全球架构师,共同构建公司的参考架构。持续的创新者,拥有6项美国专利,为树立中国团队的创新形象建立基础。
展开
-
Java和JavaScript的区别和联系
Java和JavaScript是两种不同的编程语言,但它们都具有重要的应用价值。学习Java可以帮助开发各种类型的应用程序,学习JavaScript可以帮助开发交互性强的Web页面。原创 2024-02-13 22:08:14 · 686 阅读 · 0 评论 -
为什么 IntelliJ 不能新建 Java 类,而且包都变成一个个目录了
如果我们不小心破坏了 IntelliJ 的项目文件结构,可能会出现不能新建 Java 类 和 Java 包变成了目录的情况。我们可以通过重新标记 src 文件夹为源文件跟目录来解决这个问题。原创 2022-12-13 15:56:48 · 2278 阅读 · 1 评论 -
如何解决 Spring JPA @Table 和 @Column 失效的问题
问题下面的代码,我们使用 Spring JPA 作为数据库访问层,并且用 @Table 和 @Column 定义了表和列名,但是 Hibernate 给出的 SQL 语句并没有使用我们定义的名称:/** * 节点 */@Entity@Table(name = "Node")@Datapublic class Node { @Id @GeneratedValue @Column(name = "ID") private int id; @Column(原创 2021-05-08 11:23:20 · 2815 阅读 · 0 评论 -
为什么 Java 把我的 IsActive 字段名改成 Active?
我在类里定义了一个 IsActive 字段,给它加了注释,结果在 Swagger 页面上它的名字变成了 active,而且也看不到注释了:@Datapublic class NodeInfoData { @NotNull @Schema(example = "true", description = "是否可用。可用为 true,被停用为 false", required = true) private boolean isActive;}在 Swagger 页原创 2021-05-05 09:20:18 · 277 阅读 · 0 评论 -
By default, the Java language level is set to 5 which is not supported by the current Java version.
把 IntelliJ 从 Java 12 换到 Java 16 后编译我的 Java 16 项目遇到提示说:By default, the Java language level is set to 5 which is not supported by the current Java version.直接点击升级,结果说我已经升级了:最后的解决方案是在 pom.xml 里增加下面的内容:<plugin> <groupId>org.apache.maven.plugi原创 2021-05-04 18:47:48 · 1008 阅读 · 0 评论 -
Java 多线程: Runnable 接口和 Callable 接口的异同(附代码示例)
Runnable 自 Java 1.0 时就有了,而 Callable 接口在 Java 1.5 时才被加入。两者都是 Functional 接口,也就是说可以直接使用 Lambda 表达式来实现线程函数,不一定非得实现一个类来实现接口。Runnable 可以直接传给 Thread 构造方法,Callable 不可以。 Callable 只能使用 ExecutorService,但是 Callable 可以返回线程的运行结果,Runnable 不可以,如果使用 Lambda 表达式来获得线程函数的运行结果,原创 2021-02-09 14:53:09 · 257 阅读 · 0 评论 -
Spring Boot CommandLineRunner 与 ApplicationRunner 的异同和使用方法
Spring 提供了两个在程序完成初始化后执行定制任务的接口,它们分别是 CommandLineRunner 和 ApplicationRunner。以下是两个接口的源代码:@FunctionalInterfacepublic interface CommandLineRunner { void run(String... args) throws Exception;}@FunctionalInterfacepublic interface ApplicationRunner {原创 2021-02-08 15:00:14 · 315 阅读 · 0 评论 -
Spring Boot RESTful API Open API (Swagger) 文档标注 (Annotation)
我们可以通过给 Spring Boot 项目增加以下的依赖项来给 RESTful 控制器 (Controllers) 增加 Open API 文档页面,但是这只解决了有没有的问题,那么我们如何给每一个 REST API 增加更详细的说明呢?简单来说我们可以使用 @Operation 标注, @Parameter 标注以及 @ApiResponses 标注来给我们的每个 API 增加更详细的说明,具体示例如下:@DeleteMapping("{id}")@Operation(description =原创 2021-02-07 21:39:45 · 420 阅读 · 0 评论 -
Spring Boot 返回 404 Not Found 的几种方法
假设我们有一个根据 ID 删除某个资源的操作,如果找不到相应 ID 的资源需要返回 404 Not Found。我们可以有以下几种方法来实现这个需求:使用 @ResponseStatus(HttpStatus.NOT_FOUND)使用这个方法,我们需要新建一个异常,然后使用 @ResponseStatus(HttpStatus.NOT_FOUND) 标注它。@ResponseStatus(code = HttpStatus.NOT_FOUND)public class ResourceNotFoun原创 2021-02-07 20:20:49 · 6509 阅读 · 0 评论 -
如何解决 Spring JPA 列名属性不起作用的问题
我有一个 Customer 表,表有一列的名字是 firstName,我用 @Column(name = “firstName”) 指定了它的列名,但是每次运行程序的时候,程序都找 first_name,这导致了 exception。代码如下:@Entity(name = "Customer")@Table(name = "Customer")public class Customer { @Id @Column(name = "ID") @GeneratedValue(st原创 2021-02-07 11:16:44 · 1129 阅读 · 1 评论 -
Java多线程: 创建 Java 线程的 4 种方式
Java 多线程有 4 种创建线程的方式,你都知道吗? 先直接总结,然后我会分类介绍:继承 Thread 类实现 Runnable 接口通过匿名类通过 Lambda 表达式继承 Thread 类首先我们可以通过继承 Thread 类,重载 Run 方法类创建线程。代码示例如下:public class ThreadingWithSubClass extends Thread { @Override public void run() { System.out原创 2021-02-02 10:36:40 · 140 阅读 · 1 评论 -
Java 和 C# 的 HashSet 处理数组上的异同
最近在做算法题的时候发现同样是使用 HashSet,Java 的解法有效但是 c# 的解法就是错的。问题就出在 List 类型的 HashCode 的计算上。我们来看下面的 Java 和 C# 代码的输出结果:Java 使用 HashSet 存储 int[] 以及 ArrayList:public class ArrayHashsetTest { public static void Run() { // int arrays int[] nums1 = {1,原创 2021-01-31 11:32:39 · 401 阅读 · 0 评论 -
软件设计原则之 SOLID Principle
SOLID 是面向对象设计中5个重要原则的缩写。这5个原则可以帮助我们实现软件高内聚,低耦合的目标。到目前为止,还没有编译器或者软件设计工具能帮助我们自动应用这些原则,我们还是需要通过探索和实践才能掌握和应用它们。......原创 2021-01-11 21:15:51 · 2163 阅读 · 3 评论 -
通过 IntelliJ 手把手教你用 java optional 类来解决空指针问题 (附视频)
昨天制作了一个视频,在这个不到10分钟的短视频中,我介绍了从 JDK 8 引入的 Java Optional 类的使用方法。内容包括Optional类的使用场景,以及如何使用of, ofNullable, get, isEmpty, elseOr, ifEmpty 等 Optional 的方法。每个方法都通过 IntelliJ 展示了代码编写过程和运行结果,以便于观众快速理解和上手。视频链接:https://live.youkuaiyun.com/v/142471讨论其实Java Optional 类有一个问题原创 2021-01-07 16:40:52 · 283 阅读 · 0 评论 -
给Spring Boot增加open API文档支持
给pom.xml增加下面的依赖项: <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.4.8</version> </dependency>给 properties文件增加下面的选项# swagger-ui custom pat原创 2020-11-02 21:53:01 · 460 阅读 · 0 评论 -
如何解决 Spring JPA 不自动创建数据库表的问题
用 spring jpa 创建了一个 java 项目,然后增加 Student 类,并且标注为 @Enitity 如下:package com.example.demojpa.models;import javax.persistence.Entity;import javax.persistence.Id;@Entitypublic class Student { @Id private Long Id; private String FirstName;原创 2021-01-05 19:00:57 · 4538 阅读 · 4 评论 -
如何解决 SpringBoot 校验 (Validation) 不起作用的问题
我在控制器 (Controller) 的方法上加上了 @Valid 属性但是传入无效的数据后,SpringBoot 根本就没有校验数据。经查询原因是在 SpringBoot 2.3.0 以后,我们需要给 pom.xml 加入下面的依赖项,SpringBoot 校验属性 @Valid 才会起作用。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-原创 2021-01-02 20:46:00 · 13612 阅读 · 4 评论 -
解决 IntelliJ Maven 加载慢的问题
IntelliJ 使用自己的 Maven,所以即使我们改了 Windows 的 Maven 配置去使用中国镜像,IntelliJ 也不会使用。我们需要改变下面文件夹的 settings.xml 文件,我们配置的中国镜像才能生效。C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.1.2\plugins\maven\lib\maven3\conf注意把文件路径中的版本号应该是我们所用的 IntelliJ 对应的版本号。下面是原创 2021-01-01 21:02:09 · 246 阅读 · 0 评论 -
龙芯开始支持主流开发栈: Java, .Net以及NodeJS
最近有媒体报道龙芯发布了.Net软件,好奇地点进去看了看。原来是龙芯社区发布了.Net Core 3.1的运行时 (Runtime) 和开发包 (SDK)。上龙芯开源社区可以看到到今年12月份为止,程序员已经可以在龙芯上使用 Java, .Net 和 NodeJS 开发软件。对这三大主流技术栈的支持无疑可以让更多的程序员加入龙芯的软件生态系统构建中来。在这三大技术栈中,龙芯最早支持的是 Java,从龙芯社区看到早在2014年就已经有 JDK 6 和 JDK 8 的新闻发布了,但是到目前为止看到的仅仅是 J原创 2020-12-23 16:58:17 · 785 阅读 · 1 评论