From dad0be25f26afc6404945eed0ab60c5186a3a07d Mon Sep 17 00:00:00 2001 From: lijun695 Date: Mon, 27 May 2024 21:19:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../truman/concurrent/ConcurrentMapTest.java | 17 +++++++ .../ScheduledThreadPoolExecutorTest.java | 29 +++++++++++ .../java/com/diguage/truman/io/FileTest.java | 48 +++++++++++++++++++ .../diguage/truman/math/BigDecimalTest.java | 13 +++++ .../com/diguage/truman/time/FormatTest.java | 22 +++++++++ .../com/diguage/truman/time/ZoneTest.java | 17 +++++++ 6 files changed, 146 insertions(+) create mode 100644 src/main/java/com/diguage/truman/concurrent/ConcurrentMapTest.java create mode 100644 src/main/java/com/diguage/truman/concurrent/ScheduledThreadPoolExecutorTest.java create mode 100644 src/main/java/com/diguage/truman/io/FileTest.java create mode 100644 src/main/java/com/diguage/truman/math/BigDecimalTest.java create mode 100644 src/main/java/com/diguage/truman/time/FormatTest.java create mode 100644 src/main/java/com/diguage/truman/time/ZoneTest.java diff --git a/src/main/java/com/diguage/truman/concurrent/ConcurrentMapTest.java b/src/main/java/com/diguage/truman/concurrent/ConcurrentMapTest.java new file mode 100644 index 0000000..eacfa9b --- /dev/null +++ b/src/main/java/com/diguage/truman/concurrent/ConcurrentMapTest.java @@ -0,0 +1,17 @@ +package com.diguage.truman.concurrent; + +import org.junit.jupiter.api.Test; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.atomic.AtomicInteger; + +public class ConcurrentMapTest { + @Test + public void test() { + ConcurrentMap map = new ConcurrentHashMap<>(); +// AtomicInteger cnt = map.putIfAbsent("abc", new AtomicInteger(10)); + AtomicInteger cnt = map.computeIfAbsent("abc", (k) -> new AtomicInteger(10)); + System.out.println(cnt); + } +} diff --git a/src/main/java/com/diguage/truman/concurrent/ScheduledThreadPoolExecutorTest.java b/src/main/java/com/diguage/truman/concurrent/ScheduledThreadPoolExecutorTest.java new file mode 100644 index 0000000..5b3afe3 --- /dev/null +++ b/src/main/java/com/diguage/truman/concurrent/ScheduledThreadPoolExecutorTest.java @@ -0,0 +1,29 @@ +package com.diguage.truman.concurrent; + +import org.junit.jupiter.api.Test; + +import java.time.LocalDateTime; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.LockSupport; + +public class ScheduledThreadPoolExecutorTest { + @Test + public void test() { + ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(0); + executor.scheduleAtFixedRate(() -> System.out.println("OKKK"), 0, 10, TimeUnit.MINUTES); + LockSupport.parkNanos(TimeUnit.MINUTES.toNanos(1)); + System.out.println(executor); + } + + @Test + public void testSchedule() { + ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(0); + for (int i = 0; i < 100; i++) { + executor.schedule(() -> System.out.println(LocalDateTime.now() + " OKKK"), 0, TimeUnit.MINUTES); + } + LockSupport.parkNanos(TimeUnit.SECONDS.toNanos(10)); + System.out.println(executor); + } +} diff --git a/src/main/java/com/diguage/truman/io/FileTest.java b/src/main/java/com/diguage/truman/io/FileTest.java new file mode 100644 index 0000000..cd21979 --- /dev/null +++ b/src/main/java/com/diguage/truman/io/FileTest.java @@ -0,0 +1,48 @@ +package com.diguage.truman.io; + +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Date; + +import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING; + +public class FileTest { + + private static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"); + + @Test + public void test() { + File file = new File("/Users/lijun695/vm.log"); + long mod = file.lastModified(); + System.out.println(new Date(mod).toInstant().atZone(ZoneId.systemDefault())); + System.out.println(file.getName()); + } + + public static void main(String[] args) throws IOException { + for (int i = 0; i < 10; i++) { + Files.write(Paths.get("/tmp/abc123/456/20230609183256983"), + ("" + i + " -- D瓜哥 · https://www.diguage.com").getBytes(StandardCharsets.UTF_8), TRUNCATE_EXISTING); + } + } + + public static void createDirectory(String path) { + File file = new File(path); + if (file.exists() && !file.isDirectory()) { + file.delete(); + } + if (!file.exists()) { + try { + Files.createDirectories(Paths.get(path)); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/main/java/com/diguage/truman/math/BigDecimalTest.java b/src/main/java/com/diguage/truman/math/BigDecimalTest.java new file mode 100644 index 0000000..24c1907 --- /dev/null +++ b/src/main/java/com/diguage/truman/math/BigDecimalTest.java @@ -0,0 +1,13 @@ +package com.diguage.truman.math; + +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; + +public class BigDecimalTest { + @Test + public void test() { + BigDecimal decimal = new BigDecimal("10."); + System.out.println(decimal); + } +} diff --git a/src/main/java/com/diguage/truman/time/FormatTest.java b/src/main/java/com/diguage/truman/time/FormatTest.java new file mode 100644 index 0000000..dfcee66 --- /dev/null +++ b/src/main/java/com/diguage/truman/time/FormatTest.java @@ -0,0 +1,22 @@ +package com.diguage.truman.time; + +import org.junit.jupiter.api.Test; + +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; + +public class FormatTest { + + @Test + public void test() { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"); +// ZonedDateTime time = ZonedDateTime.parse("20230815114735092", formatter); + LocalDateTime t3 = LocalDateTime.parse("20230609143033001", formatter); + LocalDateTime t1 = LocalDateTime.parse("20230815114735092", formatter); + LocalDateTime t2 = LocalDateTime.parse("20230815114735099", formatter); + System.out.println(); + } +} diff --git a/src/main/java/com/diguage/truman/time/ZoneTest.java b/src/main/java/com/diguage/truman/time/ZoneTest.java new file mode 100644 index 0000000..4d34de0 --- /dev/null +++ b/src/main/java/com/diguage/truman/time/ZoneTest.java @@ -0,0 +1,17 @@ +package com.diguage.truman.time; + +import org.junit.jupiter.api.Test; + +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.temporal.ChronoUnit; + +public class ZoneTest { + @Test + public void test() { + ZonedDateTime now = ZonedDateTime.now(ZoneId.of("Asia/Shanghai")); + ZonedDateTime tomorrow = now.plusDays(1L).truncatedTo(ChronoUnit.DAYS).plusHours(5L); + System.out.println(now); + System.out.println(tomorrow); + } +}