From 25385f1839ed2ee5859abc63f45a8013d5343f2b Mon Sep 17 00:00:00 2001 From: Yiming Zeng Date: Sat, 27 Apr 2024 23:33:31 +0800 Subject: [PATCH 1/2] update --- .../hongyi/apiintegration/interview/Test.java | 7 +++ .../apiintegration/test/FindLengthOfLCIS.java | 37 +++++++++++++++ .../hongyi/apiintegration/test/MaxNumber.java | 46 ++++++++++++++++++ .../test/ReversePolishNotation.java | 47 +++++++++++++++++++ 4 files changed, 137 insertions(+) create mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/interview/Test.java create mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/test/FindLengthOfLCIS.java create mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/test/MaxNumber.java create mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/test/ReversePolishNotation.java diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test.java b/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test.java new file mode 100644 index 0000000..268dac8 --- /dev/null +++ b/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test.java @@ -0,0 +1,7 @@ +package com.hongyi.apiintegration.interview; + +public class Test { + public static void main(String[] args) { + + } +} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/test/FindLengthOfLCIS.java b/api-integration/src/main/java/com/hongyi/apiintegration/test/FindLengthOfLCIS.java new file mode 100644 index 0000000..3548079 --- /dev/null +++ b/api-integration/src/main/java/com/hongyi/apiintegration/test/FindLengthOfLCIS.java @@ -0,0 +1,37 @@ +package com.hongyi.apiintegration.test; + +import java.util.ArrayList; +import java.util.Scanner; + +/** + * @Author Kisugi Takumi + * @Date 2024/4/27 23:04 + * @Version 1.0 + */ +public class FindLengthOfLCIS { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int n = sc.nextInt(); + ArrayList arr = new ArrayList<>(); + for (int i = 0; i < n; i++) { + arr.add(sc.nextInt()); + } + System.out.println("最长递增子序列:" + maxLengthOfLCIS(arr)); + } + + private static int maxLengthOfLCIS(ArrayList arr) { + int res = 0; + int count = 1; + int temp = arr.get(0); + for (int i = 1; i < arr.size(); i++) { + if (temp < arr.get(i)) { + count+=1; + } else { + res = Math.max(res, count); + count = 1; + } + temp = arr.get(i); + } + return Math.max(res, count); + } +} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/test/MaxNumber.java b/api-integration/src/main/java/com/hongyi/apiintegration/test/MaxNumber.java new file mode 100644 index 0000000..8be42c7 --- /dev/null +++ b/api-integration/src/main/java/com/hongyi/apiintegration/test/MaxNumber.java @@ -0,0 +1,46 @@ +package com.hongyi.apiintegration.test; + +import java.util.Scanner; + +/** + * @Author Kisugi Takumi + * @Date 2024/4/27 22:43 + * @Version 1.0 + */ +public class MaxNumber { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + String s = sc.next(); + System.out.println("最大正整数为: " + getMaxNumber(s)); + } + + static int getMaxNumber(String s) { + int res = 0; + char[] chars = s.toCharArray(); + StringBuilder temp = new StringBuilder(); + for (char c : chars) { + String s1 = Character.toString(c); + if (isNumber(s1) != -1) { // 是数字 + temp.append(s1); + } else { // 不是数字 + if (!temp.toString().equals("")) { + res = Math.max(res, Integer.parseInt(temp.toString())); + temp.setLength(0); + } + } + } + if (!temp.toString().equals("")) { + res = Math.max(res, Integer.parseInt(temp.toString())); + temp.setLength(0); + } + return res; + } + + static int isNumber(String s) { + try { + return Integer.parseInt(s); + } catch (NumberFormatException e) { + return -1; + } + } +} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/test/ReversePolishNotation.java b/api-integration/src/main/java/com/hongyi/apiintegration/test/ReversePolishNotation.java new file mode 100644 index 0000000..1cdcc60 --- /dev/null +++ b/api-integration/src/main/java/com/hongyi/apiintegration/test/ReversePolishNotation.java @@ -0,0 +1,47 @@ +package com.hongyi.apiintegration.test; + +import java.util.ArrayList; +import java.util.Scanner; +import java.util.Stack; + +/** + * @Author Kisugi Takumi + * @Date 2024/4/27 22:23 + * @Version 1.0 + */ +public class ReversePolishNotation { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + ArrayList expression = new ArrayList<>(); + while(sc.hasNext()) { + String temp = sc.next(); + if (temp.equals("e")) { + double res = cal(expression); + System.out.println("计算结果:" + res); + break; + } + expression.add(temp); + } + } + + static double cal(ArrayList expression) { + Stack stack = new Stack<>(); + for (String item : expression) { + if (item.matches("\\d+")) { + stack.push(item); + } else { + double num1 = Double.parseDouble(stack.pop()); + double num2 = Double.parseDouble(stack.pop()); + double res = switch (item) { + case "+" -> num1 + num2; + case "-" -> num2 - num1; + case "*" -> num1 * num2; + case "/" -> num2 / num1; + default -> 0; + }; + stack.push("" + res); + } + } + return Double.parseDouble(stack.pop()); + } +} -- Gitee From 567c9e0b3922905acb10ae91381a7aeaa1244289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E5=BC=98=E6=AF=85?= <277382367@qq.com> Date: Mon, 15 Jul 2024 11:18:17 +0800 Subject: [PATCH 2/2] update --- api-integration/pom.xml | 19 +++++ .../controller/UserController.java | 10 --- .../hongyi/apiintegration/dao/UserDao.java | 13 --- .../hongyi/apiintegration/entity/User.java | 16 ---- .../apiintegration/interview/Test1.java | 29 +++++++ .../apiintegration/interview/Test3.java | 16 ++++ .../apiintegration/interview/Test4.java | 62 ++++++++++++++ .../apiintegration/service/IUserService.java | 14 ---- .../service/impl/UserServiceImpl.java | 25 ------ .../{interview => test}/Test.java | 7 +- .../com/hongyi/apiintegration/time/Main.java | 13 +++ .../apiintegration/time/ScheduleTest.java | 26 ++++++ .../hongyi/apiintegration/time/TimeTest.java | 80 +++++++++++++++++++ .../src/main/resources/application.yml | 22 ++++- .../hongyi/apiintegration/ScheduleDemo.java | 13 +++ 15 files changed, 285 insertions(+), 80 deletions(-) delete mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/dao/UserDao.java delete mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/entity/User.java create mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/interview/Test1.java create mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/interview/Test3.java create mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/interview/Test4.java delete mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/service/IUserService.java delete mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/service/impl/UserServiceImpl.java rename api-integration/src/main/java/com/hongyi/apiintegration/{interview => test}/Test.java (39%) create mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/time/Main.java create mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/time/ScheduleTest.java create mode 100644 api-integration/src/main/java/com/hongyi/apiintegration/time/TimeTest.java create mode 100644 api-integration/src/test/java/com/hongyi/apiintegration/ScheduleDemo.java diff --git a/api-integration/pom.xml b/api-integration/pom.xml index 401cc47..c4ee0ee 100644 --- a/api-integration/pom.xml +++ b/api-integration/pom.xml @@ -75,6 +75,25 @@ org.springframework spring-test + + org.postgresql + postgresql + 42.7.3 + + + org.hibernate + hibernate-java8 + 5.0.12.Final + + + com.github.wenhao + jpa-spec + 3.1.0 + + + org.springframework.boot + spring-boot-starter-data-jpa + diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/controller/UserController.java b/api-integration/src/main/java/com/hongyi/apiintegration/controller/UserController.java index 794a41b..cc7f943 100644 --- a/api-integration/src/main/java/com/hongyi/apiintegration/controller/UserController.java +++ b/api-integration/src/main/java/com/hongyi/apiintegration/controller/UserController.java @@ -1,9 +1,7 @@ package com.hongyi.apiintegration.controller; -import com.hongyi.apiintegration.entity.User; import com.hongyi.apiintegration.entity.UserParam; import com.hongyi.apiintegration.result.ResponseResult; -import com.hongyi.apiintegration.service.IUserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -19,14 +17,6 @@ import java.util.List; @RequestMapping("/user") public class UserController { - @Autowired - private IUserService userService; - - @GetMapping("query/{name}") - public ResponseResult getUserByName(@PathVariable("name") String name) { - return ResponseResult.success(userService.getUserByName(name)); - } - @PostMapping("add") public ResponseResult add(@Valid @RequestBody UserParam userParam, BindingResult bindingResult) { if (bindingResult.hasErrors()) { diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/dao/UserDao.java b/api-integration/src/main/java/com/hongyi/apiintegration/dao/UserDao.java deleted file mode 100644 index 65589d7..0000000 --- a/api-integration/src/main/java/com/hongyi/apiintegration/dao/UserDao.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hongyi.apiintegration.dao; - -import com.hongyi.apiintegration.entity.User; -import org.springframework.stereotype.Repository; - -/** - * @Author Kisugi Takumi - * @Date 2023/11/2 10:51 - * @Version 1.0 - */ -public interface UserDao { - User getUserByName(String name); -} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/entity/User.java b/api-integration/src/main/java/com/hongyi/apiintegration/entity/User.java deleted file mode 100644 index b9b7de1..0000000 --- a/api-integration/src/main/java/com/hongyi/apiintegration/entity/User.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.hongyi.apiintegration.entity; - -import lombok.AllArgsConstructor; -import lombok.Data; - -/** - * @Author Kisugi Takumi - * @Date 2023/11/2 10:50 - * @Version 1.0 - */ -@Data -@AllArgsConstructor -public class User { - private String name; - private int age; -} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test1.java b/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test1.java new file mode 100644 index 0000000..0c53592 --- /dev/null +++ b/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test1.java @@ -0,0 +1,29 @@ +package com.hongyi.apiintegration.interview; + +import java.util.Scanner; + +public class Test1 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int n = sc.nextInt(); + int[] dp = new int[n]; + if (n == 1) { + System.out.println("一共有" + 2 + "对兔子"); + return ; + } else if (n == 2) { + System.out.println("一共有" + 3 + "对兔子"); + return ; + } else if (n == 3) { + System.out.println("一共有" + 5 + "对兔子"); + return ; + } + dp[0] = 0; + dp[1] = 2; + dp[2] = 3; + dp[3] = 5; + for (int i = 3; i < dp.length - 1; i++) { + dp[i + 1] = 2 * dp[i] - 1; + } + System.out.println("一共有" + dp[n-1] + "对兔子"); + } +} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test3.java b/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test3.java new file mode 100644 index 0000000..58292b6 --- /dev/null +++ b/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test3.java @@ -0,0 +1,16 @@ +package com.hongyi.apiintegration.interview; + +import java.util.Scanner; + +/** + * @Author Kisugi Takumi + * @Date 2024/4/28 9:26 + * @Version 1.0 + */ +public class Test3 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + Double n = sc.nextDouble(); + + } +} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test4.java b/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test4.java new file mode 100644 index 0000000..cb8ef2c --- /dev/null +++ b/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test4.java @@ -0,0 +1,62 @@ +package com.hongyi.apiintegration.interview; + +import java.util.ArrayList; +import java.util.Scanner; +import java.util.Stack; + +/** + * @Author Kisugi Takumi + * @Date 2024/4/28 9:28 + * @Version 1.0 + */ +public class Test4 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + ArrayList expression = new ArrayList<>(); + double[] res = null; + while (sc.hasNext()) { + String next = sc.next(); + if (next.equals("e")) { + res = cal(expression); // t * t + 2 * t - 5 + break; + } + expression.add(next); + } + System.out.println("计算结果:" + res); + } + + private static double[] cal(ArrayList expression) { + // 中缀转后缀 + Stack stack = new Stack<>(); + StringBuilder newEx = new StringBuilder(); + for (String s : expression) { + if ("t".equals(s)) { // 操作数 + newEx.append(s); + } else if ("+".equals(s)) { + if (stack.size() != 0) { + while (!stack.peek().equals("*") && !stack.peek().equals("/")) { + newEx.append(stack.pop()); + } + } + stack.push(s); + } else if ("-".equals(s)) { + if (stack.size() != 0) { + while (!stack.peek().equals("*") && !stack.peek().equals("/")) { + newEx.append(stack.pop()); + } + } + stack.push(s); + } else if ("*".equals(s)) { + String top = stack.peek(); + } else if ("/".equals(s)) { + String top = stack.peek(); + + } + } + // 后缀计算 + + return null; + } + + +} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/service/IUserService.java b/api-integration/src/main/java/com/hongyi/apiintegration/service/IUserService.java deleted file mode 100644 index a86bfd6..0000000 --- a/api-integration/src/main/java/com/hongyi/apiintegration/service/IUserService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.hongyi.apiintegration.service; - -import com.hongyi.apiintegration.entity.User; -import com.hongyi.apiintegration.result.ResponseResult; -import org.springframework.stereotype.Service; - -/** - * @Author Kisugi Takumi - * @Date 2023/11/2 10:51 - * @Version 1.0 - */ -public interface IUserService { - User getUserByName(String name); -} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/service/impl/UserServiceImpl.java b/api-integration/src/main/java/com/hongyi/apiintegration/service/impl/UserServiceImpl.java deleted file mode 100644 index 5ea5a3f..0000000 --- a/api-integration/src/main/java/com/hongyi/apiintegration/service/impl/UserServiceImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.hongyi.apiintegration.service.impl; - -import com.hongyi.apiintegration.dao.UserDao; -import com.hongyi.apiintegration.entity.User; -import com.hongyi.apiintegration.result.ResponseResult; -import com.hongyi.apiintegration.service.IUserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * @Author Kisugi Takumi - * @Date 2023/11/2 10:51 - * @Version 1.0 - */ -@Service -public class UserServiceImpl implements IUserService { - - @Autowired - private UserDao userDao; - - @Override - public User getUserByName(String name) { - return userDao.getUserByName("Hongyi"); - } -} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test.java b/api-integration/src/main/java/com/hongyi/apiintegration/test/Test.java similarity index 39% rename from api-integration/src/main/java/com/hongyi/apiintegration/interview/Test.java rename to api-integration/src/main/java/com/hongyi/apiintegration/test/Test.java index 268dac8..adda9f8 100644 --- a/api-integration/src/main/java/com/hongyi/apiintegration/interview/Test.java +++ b/api-integration/src/main/java/com/hongyi/apiintegration/test/Test.java @@ -1,5 +1,10 @@ -package com.hongyi.apiintegration.interview; +package com.hongyi.apiintegration.test; +/** + * @Author Kisugi Takumi + * @Date 2024/5/4 19:58 + * @Version 1.0 + */ public class Test { public static void main(String[] args) { diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/time/Main.java b/api-integration/src/main/java/com/hongyi/apiintegration/time/Main.java new file mode 100644 index 0000000..0749a9e --- /dev/null +++ b/api-integration/src/main/java/com/hongyi/apiintegration/time/Main.java @@ -0,0 +1,13 @@ +package com.hongyi.apiintegration.time; + +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @Author Kisugi Takumi + * @Date 2024/7/15 11:09 + * @Version 1.0 + */ +@SpringBootApplication +public class Main { + +} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/time/ScheduleTest.java b/api-integration/src/main/java/com/hongyi/apiintegration/time/ScheduleTest.java new file mode 100644 index 0000000..407df75 --- /dev/null +++ b/api-integration/src/main/java/com/hongyi/apiintegration/time/ScheduleTest.java @@ -0,0 +1,26 @@ +package com.hongyi.apiintegration.time; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; + +/** + * @Author Kisugi Takumi + * @Date 2024/7/15 11:06 + * @Version 1.0 + */ +@Slf4j +@Component +@EnableScheduling +public class ScheduleTest { + /** + * 每隔1min执行1次 + */ + @Scheduled(fixedRate = 1000 * 60) + public void runScheduledFixedRate() { + log.info("runScheduledFixedRate: current Datetime, {}", LocalDateTime.now()); + } +} diff --git a/api-integration/src/main/java/com/hongyi/apiintegration/time/TimeTest.java b/api-integration/src/main/java/com/hongyi/apiintegration/time/TimeTest.java new file mode 100644 index 0000000..017f55b --- /dev/null +++ b/api-integration/src/main/java/com/hongyi/apiintegration/time/TimeTest.java @@ -0,0 +1,80 @@ +package com.hongyi.apiintegration.time; + +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; + +import java.time.LocalDateTime; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +/** + * @Author Kisugi Takumi + * @Date 2024/7/15 10:29 + * @Version 1.0 + */ +@Slf4j +public class TimeTest { + public static void main(String[] args) { +// timerTest(); +// timerScheduleTest(); + ScheduledExecutorServiceTest(); + } + + private static void ScheduledExecutorServiceTest() { + ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); + executor.schedule(() -> log.info("run schedule @ {}", LocalDateTime.now()), 1000, TimeUnit.MILLISECONDS); + + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + executor.shutdown(); + } + + + private static void timerScheduleTest() { + // start timer + Timer timer = new Timer(); + timer.schedule(new TimerTask() { + @SneakyThrows + public void run() { + log.info("timer-period-task @{}", LocalDateTime.now()); + Thread.sleep(100); // 可以设置的执行时间, 来测试当执行时间大于执行周期时任务执行的变化 + } + }, 500, 1000); + + // waiting to process(sleep to mock) + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + // stop timer + timer.cancel(); + } + + public static void timerTest() { + Timer timer = new Timer(); + timer.schedule(new TimerTask() { + public void run() { + log.info("timer-task @{}", LocalDateTime.now()); + } + }, 1000); + + // waiting to process(sleep to mock) + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + // stop timer + timer.cancel(); + } +} diff --git a/api-integration/src/main/resources/application.yml b/api-integration/src/main/resources/application.yml index cd47ac7..5d67df5 100644 --- a/api-integration/src/main/resources/application.yml +++ b/api-integration/src/main/resources/application.yml @@ -2,4 +2,24 @@ server: port: 80 servlet: session: - timeout: 10s \ No newline at end of file + timeout: 10s +spring: + datasource: + url: jdbc:postgresql://81.71.84.137:5432/user + username: postgres + password: gpadmin + initial-size: 100 + max-idle: 60 + max-wait: 10000 + min-idle: 20 + max-active: 500 + jpa: + database: postgresql + generate-ddl: false + show-sql: false + open-in-view: false + database-platform: org.hibernate.dialect.PostgreSQL94Dialect + properties: + hibernate: + dialect: org.hibernate.dialect.PostgreSQL94Dialect + format_sql: true \ No newline at end of file diff --git a/api-integration/src/test/java/com/hongyi/apiintegration/ScheduleDemo.java b/api-integration/src/test/java/com/hongyi/apiintegration/ScheduleDemo.java new file mode 100644 index 0000000..863e8cc --- /dev/null +++ b/api-integration/src/test/java/com/hongyi/apiintegration/ScheduleDemo.java @@ -0,0 +1,13 @@ +package com.hongyi.apiintegration; + +import org.springframework.boot.test.context.SpringBootTest; + +/** + * @Author Kisugi Takumi + * @Date 2024/7/15 11:06 + * @Version 1.0 + */ +@SpringBootTest +public class ScheduleDemo { + +} -- Gitee