标签: Java
编程

如何使用 JPA 和 Hibernate 调用原生 SQL 查询

2358 2024-07-15 03:54:00

Java 持久化查询语言(JPQL)是使用 JPA 从数据库中查询数据的最常见方法。它使你能够重用映射定义,并且比 SQL 更易于使用。但它只支持 SQL 标准的一小部分,而且也不支持数据库特定的功能。那么,如果要使用特定于数据库的查询功能,或者 DBA 为你提供了一个无法转换为 JPQL 的高度优化的查询,该怎么办呢?忽略它并在 Java 代码...

详情...
编程

Hibernate: 如何原生查询的控制缓存无效

1391 2024-07-14 01:09:00

问题描述:“有人告诉我,原生查询会从我的二级缓存中删除所有实体。但你仍然在推荐他们。它们不会对性能产生负面影响吗?”方案:是的,有些原生查询会使二级缓存失效。但是不用担心,如果你做得正确,它不会对性能产生任何负面影响,也不会改变我对于使用原生查询的建议。我们首先需要讨论哪种原生查询会使二级缓存失效。哪些原生查...

详情...
编程

Java ExecutorService 指南

2009 2024-07-08 01:15:00

ExecutorService 是一个 JDK API,它简化了在异步模式下运行任务。一般来说,ExecutorService 自动提供一个线程池和一个 API,用于向其分配任务。创建 ExecutorService 最简单的方法是使用 Executors 类的工...

详情...
编程

Java 并发面试题及答案

1566 2024-07-07 18:35:00

Java 中的并发是在技术面试中提出的最复杂和最高级的主题之一。这篇文章提供了你可能遇到的一些面试问题的答案。Q1. 进程和线程的区别进程和线程都是并发单元,但它们有一个根本的区别:进程不共享公共内存,而线程共享。从操作系统的角度来看,进程是在自己的虚拟内存空间中运行的独立软件。任何多任务操作系统(几乎所有现代操作系统)都必须在内存中分离进程,这样...

详情...
编程

OpenJDK 的 Loom 项目

1933 2024-07-06 15:58:00

本文中,我们将快速了解 Loom 项目。从本质上讲,Loom 项目的主要目标是支持 Java 中的高吞吐量、轻量级并发模型。Loom 项目是 OpenJDK 社区为 Java 引入轻量级并发结构的一次尝试。到目前为止,Loom 的原型已经在 JVM 和 Java 库中引入了一次更改。虽然 Loom 还没有计划发布,但我们可以在 ...

详情...
编程

推荐的 Spring Boot 项目的包结构

2056 2024-07-05 16:39:00

在构建一个新的 Spring Boot 项目时,我们可以高度灵活地组织我们的类。不过,还是有一些建议需要我们牢记。鉴于像 @ComponentScan、@EntityScan、@ConfigurationPropertiesScan 和 @SpringBootApplication 这样的 Spring Boot 注解使用包来定义扫描位置,...

详情...
编程

JAVA 阻塞队列 java.util.concurrent.BlockingQueue 指南

1490 2024-07-02 17:52:00

本文中,我们将研究解决并发生产者-消费者问题的最有用的构造之一 java.util.concurrent。我们将研究 BlockingQueue 接口的 API,以及来自该接口的方法如何使编写并发程序变得更容易。在本文的后面,我们将展示一个简单程序的示例,该程序具有多个生产者线程和多个消费者线程。我们可以区分两...

详情...
编程

Java Phaser 指南

1598 2024-07-01 12:58:00

本文中,我们将研究 java.util.concurrent 包中的 Phaser 构造。它是一个与 CountDownLatch 非常相似的结构,允许我们协调线程的执行。与 CountDownLatch 相比,它有一些额外的功能。Phaser 是一个屏障(barrier),在继续执行之前,动态数量的线程需要等待它。在 CountDow...

详情...
编程

如何在 Java 中编写 equals 等价方法

1390 2024-06-29 02:28:00

本文描述了一种重写 equals 方法的技术,该方法即使在具体类的子类添加新字段时也能保留 equals 的约定。子类化时保留 equals contract 的是“面向对象语言中等价关系的基本问题”。除非你愿意放弃面向对象抽象的好处,否则无法在保留 equals 契约的同时扩展可实例化类并添加值组件。...

详情...
编程

JAVA 高并发之 java.util.concurrent 概述

1401 2024-06-27 00:05:00

java.util.concurrent 包为创建高并发应用提供了工具。本文将对此包做一个概述。java.util.concurrent 包含了太多的功能,无法在一篇文章中进行讨论。本文中,我们将主要关注此包中一些最有用的实用功能,如:Executor、ExecutorService、ScheduledExecutorService、...

详情...