28K+ 次浏览
创建新的执行线程有两种方法。一种是声明一个类作为 Thread 类的子类。此子类应该重写 Thread 类的 run 方法。然后可以分配和启动子类的实例。创建线程的另一种方法是声明一个实现 Runnable 接口的类。然后该类实现 run 方法。然后可以分配类的实例,在创建 Thread 时将其作为参数传递,然后启动它。每个线程都有一个名称用于标识目的。多个线程可以…… 阅读更多
23K+ 次浏览
异常和错误都是 Throwable 类的子类。错误表示主要由于缺乏系统资源而发生的问题,我们的应用程序不应捕获这些类型的问题。一些错误示例包括系统崩溃错误和内存不足错误。错误大多在运行时发生,因此它们属于未检查类型。异常是在运行时和编译时可能发生的问题。它主要发生在开发人员编写的代码中。异常分为两类:已检查异常和未检查异常。序号关键异常错误1类型被归类为未检查类型被归类…… 阅读更多
3K+ 次浏览
序列化和外部化都是将对象转换为字节流并将字节流存储在数据库或内存中的过程。实现 java.io.Serializable 接口的类可以被序列化。另一方面,外部化用于基于应用程序需求的自定义序列化。外部化扩展了 java.io.Serializable。序号关键序列化外部化1接口序列化是一个标记接口外部化包含两个方法 readExternal 和 writeExternal。2实现逻辑实现此接口的类将 java 对象的序列化或持久化的责任交给 JVM。JVM 使用 readObject 和 writeObject 进行序列化外部化通过重写 readExternal 和 writeExternal 方法来提供对应用程序的实现逻辑控制。3方式…… 阅读更多
Comparable 和 Comparator 都是可用于对集合元素进行排序的接口。Comparator 接口属于 java.util 包,而 Comparable 属于 java.lang 包。Comparator 接口使用提供给它的两个对象对集合进行排序,而 Comparable 接口比较“this”(指的是提供给它的一个对象)。序号关键ComparableComparator1方法Comparable 接口有一个方法 compareTo(Object a)Comparator 有一个方法 compare(Object o1, Object O2)2排序用法可以使用 Collection.sort(List) 方法对 Comparable 类型对象的集合进行排序。可以使用 Collection.sort(List, Comparator) 方法对 Comparator 类型对象的集合进行排序。3排序顺序Comparable 提供单一排序…… 阅读更多
7K+ 次浏览
ConcurrentHashMap 是在 jdk1.5 中引入的一个类。ConcurrentHashMap 只在桶级别(称为片段)应用锁,而是在添加或更新映射时。因此,ConcurrentHashMap 允许对映射进行并发读写操作。SynchronizedHashMap(Collection.synchronizedHashMap()) 是 Collection 框架的一种方法。此方法对整个集合应用锁。因此,如果一个线程正在访问映射,则任何其他线程都不能访问同一映射。序号关键ConcurrentHashMapSynchronizedHashMap1实现它是一个实现 ConcurrentHashMap 和 Serializable 接口的类。它是 Collection 类中的一个方法。2锁机制锁定部分锁定…… 阅读更多
16K+ 次浏览
HashSet 和 TreeSet 都属于集合框架。HashSet 是 Set 接口的实现,而 TreeSet 实现 SortedSet。TreeSet 由 TreeMap 支持,而 HashSet 由 HashMap 支持。序号关键HashSetTreeSet1实现HashSet 使用 HashTable 实现TreeSet 使用树结构实现。2空对象HashSet 允许空对象TreeSet 不允许空对象。它会抛出空指针异常。3方法HashSet 使用 equals 方法比较两个对象TreeSet 使用 compare 方法比较两个对象。4异构对象HashSet 不允许异构对象TreeSet 允许…… 阅读更多
Iterator 和 Enumeration 都是遍历和访问集合中元素的光标。它们都属于集合框架。Enumeration 添加在 JDK1.0 中,而 Iterator 添加在集合框架的 JDK 1.2 版本中。Enumeration 无法对集合进行结构性更改,因为它对集合中的元素只有只读访问权限。它具有以下方法:*hasMoreElements()*nextElement()另一方面,迭代器可以读取和删除集合中的元素。它具有以下方法:*hasNext()*next()*remove()序号关键IteratorEnumeration1基本在 Iterator 中,我们可以在遍历集合中的元素时读取和删除元素。使用 Enumeration,我们只能…… 阅读更多
5K+ 次浏览
save 和 saveAndFlush 都可用于保存实体。它们都属于 Spring 数据库。save 可能会也可能不会立即将更改写入数据库。当我们调用 saveAndFlush 时,系统正在强制将模型状态与数据库同步。序号关键save saveAndFlush1仓库它属于 CrudRepository它属于 JPARepository2数据刷新策略它不会直接将数据刷新到数据库,除非我们显式调用 flush 和 commit 方法。它直接将数据刷新到数据库。3批量保存CrudRepository 提供批量保存方法saveAndFlush 方法不支持批量操作4保存后的数据可见性它不会直接刷新数据…… 阅读更多
21K+ 次浏览
CrudRepository 和 JPA repository 都是 Spring 数据存储库库的接口。Spring 数据存储库通过提供一些预定义的查找器来访问各种持久层的数据层,从而减少了样板代码。JPA 存储库扩展了 CrudRepository 和 PagingAndSorting 存储库。它继承了 CrudRepository 的一些查找器,例如 findOne、获取和删除实体。它还提供了一些与 JPA 相关的额外方法,例如批量删除记录、直接将数据刷新到数据库以及与分页和排序相关的方法。我们需要在我们的应用程序中扩展这个存储库,然后我们就可以访问所有方法…… 阅读更多
613 次浏览
@JsonUnwrapped 注解可用于在序列化和反序列化过程中解包值。它有助于将组合类的值呈现为属于父类。语法@Target(value={ANNOTATION_TYPE, FIELD, METHOD, PARAMETER}) @Retention(value=RUNTIME) public @interface JsonUnwrapped示例import com.fasterxml.jackson.annotation.JsonUnwrapped; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonProcessingException; public class JsonUnwrappedAnnotationTest { public static void main(String args[]) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(new Employee()); System.out.println(jsonString); } } class Employee { public int empId = 110; public String empName = "Raja Ramesh"; @JsonUnwrapped …… 阅读更多