From 3b7b25e85138bab912ff5ae81caae0d976c0aca9 Mon Sep 17 00:00:00 2001 From: 8ga Date: Thu, 11 Sep 2025 10:10:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20Java=5F3-5.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Java_3-5.md | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/Java_3-5.md b/Java_3-5.md index 6a295cb..5d85b83 100644 --- a/Java_3-5.md +++ b/Java_3-5.md @@ -1,7 +1,5 @@ ### 问题1(考察多线程) -**问题内容** - 假设你现在需要写1个电商APP的用户订单详情接口,这个详情页包含: - 关联的商品信息,比如商品名称、尺码、图片、文字介绍等等 @@ -22,37 +20,14 @@ > 如果没反应过来,引导一下:比如说用 CompletableFuture、Future 或者 FutureTask 说一下关键,要调用哪几个函数。 -``` -Runnable task1 = () -> System.out.println("Task 1"); -Runnable task2 = () -> System.out.println("Task 2"); -Runnable task3 = () -> System.out.println("Task 3"); -``` -

方案一、使用 CompletableFuture 的 runAsync 函数包装3个task。再通过 allOf 函数添加3个task,调用 get 函数阻塞等待3个任务执行完毕。

-``` -CompletableFuture cf1 = CompletableFuture.runAsync(task1); -CompletableFuture cf2 = CompletableFuture.runAsync(task2); -CompletableFuture cf3 = CompletableFuture.runAsync(task3); -CompletableFuture.allOf(cf1, cf2, cf3).get(); -``` -

方案二、使用Future,把3个task提交给1个自定义线程池并接收Future对象,再使用get函数等待3个任务执行完毕

-``` -ExecutorService executor = Executors.newFixedThreadPool(3); -Future f1 = executor.submit(task1); -Future f2 = executor.submit(task2); -Future f3 = executor.submit(task3); -f1.get(); -f2.get(); -f3.get(); -``` - **如果回答的是CompletableFuture,继续延伸以下问题:**

CompletableFuture的默认线程池是什么?

@@ -63,3 +38,15 @@ f3.get();

答案:自定义一个IO密集型的线程池

### 问题2(考察对Mybatis-Plus或者Mybatis框架的熟练度) + +假设现在需要针对用户表里的**手机号、身份证号码**加密存储,业务上还需要根据*手机号后4位*和*身份证号后6位*的筛选。 + +

+提问:请基于 Spring Boot 和 Mybatis 或 Mybatis Plus,说一下*手机号*和*身份证号*写入时加密,查询时解密,并且支持*手机号后4位*和*身份证号后6位*的筛选的实现思路。 +

+ +

+答案:声明一个自定义注解,修饰实体类里的*手机号和身份证号码*。 +创建一个类,实现 Mybatis Plus 的 MetaObjectHandler 接口,覆写 **insertFill** 和 **updateFill** 处理数据的加密。 +再创建一个类,实现 Mybatis 的 Interceptor 接口,拦截 ResultSetHandler 的 handleResultSets 函数,处理数据的解密。 +

\ No newline at end of file