我创建一个记录用户:
\npublic record User(String name, int age, List<String> skills, boolean isActive) {\n}\nRun Code Online (Sandbox Code Playgroud)\n和用户列表:
\n private static List<User> prepareData() {\n List<User> users = new ArrayList<>();\n\n users.add(new User("Kamil", 35, List.of("Java", "Python", "JavaScript"), true));\n users.add(new User("Mariusz", 36, List.of("Java", "C++", "C#"), true));\n users.add(new User("Dominik", 30, List.of("Java", "Dart", "Python"), false));\n users.add(new User("Paulina", 36, List.of("PHP", "SQL", "Python"), false));\n users.add(new User("Rafa\xc5\x82", 40, List.of("C#", "Dart"), true));\n users.add(new User("Agnieszka", 29, List.of("Java", "Scala", "Kotlin", "Haskell", "Clojure"), false));\n users.add(new User("Weronika", 43, List.of("Python", "C#", "VBA"), true));\n\n return users;\n }\nRun Code Online (Sandbox Code Playgroud)\n … 我想创建在单独的 Java 线程池上运行的虚拟线程池。
这是我试图创建的架构:
这是为了让我能够创建单独的池来在一个 JVM 中运行批处理任务,并利用每个池的 n:m 映射的虚拟线程。因此,如果我有 12 个核心,那么我可以创建 2 个 6 线程的线程池。每个池只会执行一个特定的任务。每个池将有 N 个虚拟线程。因此,这里的映射将是 2 个 {N VirtualThreads -> 6 Platform Threads} 池。
TLDR,我想限制虚拟线程池可以运行的 PlatformThreads 数量。
我能想到的一件事是,创建线程池,当传入可运行对象时,在 run 方法内我可以创建虚拟线程,但不确定它有多实用,以及我是否会得到我想要的池分区。这种方法的另一个问题是,虚拟线程将仅在一个 java 线程中运行,因此没有 N:M 映射
java threadpoolexecutor java-threads virtual-threads java-21
LocalDateTime是抽象类.所以我写不出来:
LocalDateTime value = new LocalDateTime(); //error
Run Code Online (Sandbox Code Playgroud)
如果我想得到它的实例,我必须写:
LocalDateTime value = LocalDateTime.now(); //not error
Run Code Online (Sandbox Code Playgroud)
我有一个问题,为什么LocalDateTime可以返回实例?这是一个抽象类.
我看到了概述,但我找不到它......
我需要在我的表格中找到平衡月份。我以数字形式填写,但我需要字母形式,例如“一月,二月”。请帮忙
int lastpaid = Integer.parseInt(s); **//this is i am getting from my database**
int currentmonth = m; **// this is from georigian Calender**
int[] arr = new int[12];
int[] month = new int[12];
int count = 0;
for(int j=currentmonth;j>=lastpaid+1;j--)
{
arr[count] = j;
count++;
}
for(int k : arr)
{
if(k == 0)
{
break;
}
month[count] = k;
}
Run Code Online (Sandbox Code Playgroud) 所以我目前正在Oracle JDK 8中构建我的所有应用程序.Oracle授权策略更新是否会影响JDK 8的使用,或者仅用于JDK 11 LTS.假设如果我想在不久的将来迁移到JDK 11,我可以在GPL下选择OpenJDK进行生产吗?在GCL下BCL和OpenJDK下的Oracle JDK源代码是否有任何变化?我可以互换使用吗?
我想得到确切的当前时间.我不想要系统时间,因为任何人都可以改变它,我想在不访问互联网的情况下这样做,有办法吗?
public static void main(String[] args) {
Integer f = null;
try {
f = Integer.valueOf("12.3");
String s = f.toString();
int i = Integer.parseInt(s);
System.out.println("i = " + i);
} catch (Exception e) {
System.out.println("trouble : " + f + e);
}
}
Run Code Online (Sandbox Code Playgroud) 我有来自学校的这段代码,我似乎无法完全理解它在做什么.我知道它显示了一个单圈时间,就像来自运动的那样,以分钟,秒和毫秒换算,但我不明白2弦变量是什么以及他们做了什么.
这是代码:
public String getTimeFormat(long ms){
String s1 = ""+ms;
Date date = null;
try {
date = new SimpleDateFormat("SSS").parse(s1);
} catch (ParseException e){
e.printStackTrace();
}
String s2 = new SimpleDateFormat("mm:ss:SS").format(date);
return s2;
}
Run Code Online (Sandbox Code Playgroud) 我知道要收到日期,我必须以dd小写形式使用此代码:
DateFormat dateFormat0 = new SimpleDateFormat("yyyy/mm/dd HH:MM:SS");
Date dateNow0 = new Date();
System.out.println("Date format: " + dateFormat0.format(dateNow0));
Run Code Online (Sandbox Code Playgroud)
输出是:
日期格式:2016/28/06 09:03:493
但是当我DD以日期格式使用大写字母时.码:
DateFormat dateFormat1 = new SimpleDateFormat("yyyy/mm/DD HH:MM:SS");
Date dateNow1 = new Date();
System.out.println("Date format: " + dateFormat1.format(dateNow1));
Run Code Online (Sandbox Code Playgroud)
输出是:
日期格式:2016/28/66 09:03:494
为什么我使用资本'DD'而不是'dd'收到不同的结果?'DD'的结果是什么?
我正在尝试编写这个多线程程序,但出了问题。我有一个 HelloApplication 类,我在那里创建了两个新线程。
run 方法位于另一个名为 ThreadLocalSession 的类中。在那里,我需要存储两个不同的值,每个线程使用 ThreadLocal 变量存储一个值。这种方法失败了,因为第二个线程覆盖了第一个线程写入的值。
由于这个原因,我尝试打印线程 id,我注意到相同的线程 ID 和线程名称被打印了两次......这怎么可能?
这是 HelloApplication 类:
public class HelloApplication extends Application {
@Override
public void start(Stage stage) throws IOException {
ThreadLocalSession firstUser = new ThreadLocalSession(1);
ThreadLocalSession secondUser = new ThreadLocalSession(2);
new Thread(firstUser).start();
new Thread(secondUser).start();
}
public static void main(String[] args) {
launch();
}
}
Run Code Online (Sandbox Code Playgroud)
这是 ThreadLocal 会话类:
public class ThreadLocalSession implements Runnable{
private static final ThreadLocal<Session> usersession= new ThreadLocal<Session>();
private Integer tr_id;
public ThreadLocalSession(int i) {
this.tr_id =i;
}
@Override …Run Code Online (Sandbox Code Playgroud) 使用新的Java 8 DateTime API(java.time),我们如何检查"最后"捕获时间是否早于配置的秒集?
例...
上次拍摄时间:13:00:00当前时间:13:00:31
if (last captured time is older then 30 seconds) then
do something
Run Code Online (Sandbox Code Playgroud) 我觉得这真的很容易,但我的大脑由于某种原因不工作。我有一个功能,用户可以选择运行的时间段(以小时为单位)。我需要检查当前时间是否在这些时间之间:
int currentHour = LocalDateTime.now().getHour(); // 21 (9pm)
int startHour = 20; // (8pm)
int endHour = 1; // (1am)
if (currentHour >= startHour && currentHour < endHour)
{
...
}
Run Code Online (Sandbox Code Playgroud) 如何使用Java 8的java.timeAPI 确定日期是否在两个其他日期之间?
java ×13
java-8 ×4
java-time ×3
date ×2
abstract ×1
core ×1
date-format ×1
java-11 ×1
java-21 ×1
java-threads ×1
javafx ×1
time ×1
time-format ×1