惊恐的发现别人都用JDK20了,最新版本都JDK24!!
java吧
全部回复
仅看楼主
吧务
level 13
穆民 楼主
软件开发这个行业真是逆水行舟不进则退~
我们还在使用JDK8~[汗]
没有关注这个JDK版本的问题,发现JDK20的有些代码写法我都看不懂了
[汗]大家都在使用JDK哪个版本?
2025年05月27日 07点05分 1
level 10
同8
2025年05月27日 07点05分 2
吧务
level 13
穆民 楼主
准备下载一个JDK24,尝试着编码。
有些写法真看不懂,突然感觉很焦虑了,不知道现在市面上大多数公司都在用哪个版本
2025年05月27日 07点05分 3
只用免费的,看看那个免费的版本最高的,基本就是那个了。新的一般不用
2025年05月28日 03点05分
再来培训一下了哦
2025年05月30日 00点05分
level 1
8,11
2025年05月27日 07点05分 4
吧务
level 13
穆民 楼主
24相比8,极大的简介了代码,以下是同一个功能的代码
jdk8:
Stream<Integer> numbers = Stream.of(1, 2, 3, 4, 5);Stream<List<Integer>> windows = numbers.collect(ArrayList::new, (list, element) -> { if (list.size() == 2) { list.remove(0); } list.add(element); if (list.size() == 2) { // 需要额外的逻辑将窗口添加到结果流 }}, (left, right) -> { // 并行合并逻辑复杂});
jdk24:
Stream<Integer> numbers = Stream.of(1, 2, 3, 4, 5);
Stream<List<Integer>> windows = numbers.gather(Gatherers.windowSliding(2));
2025年05月27日 08点05分 5
没啥用,应该不算新特性,感觉将方法封装后jdk8一样能这么简单
2025年05月27日 14点05分
为了将函数一等公民,但有时候源码嵌套太复杂,debug后碰到lamda就是黑盒,你还不容易找到在哪儿设置的这个lamda
2025年05月28日 00点05分
看不懂有啥用
2025年05月27日 11点05分
@飘渺的心意º 加大代码简化呗,复杂业务就是维护火葬场
2025年05月27日 14点05分
level 7
我在阿里外包用的也是8
2025年05月27日 08点05分 6
看来阿里也不敢轻易变更新版JDK
2025年05月27日 08点05分
@动漫34Qq 不是的,只是推荐11
2025年05月27日 15点05分
嗖嘎
2025年05月27日 16点05分
吧务
level 13
穆民 楼主
// 传统方式
String name = "Java";
String message = "Hello, " + name + "! Today is " + LocalDate.now();
// JDK 24新方式
String message = STR."Hello, \{name}! Today is \{LocalDate.now()}";
字符串方面个人感觉没啥特别大的优点,就是优化成模板方式了
2025年05月27日 08点05分 7
这个字符串模板还是丑得一言难尽,抄一下kotlin不香吗[阴险]
2025年05月27日 08点05分
这个字符串拼接感觉一坨,加上\很丑
2025年05月27日 16点05分
这个建议抄一下c#,比这个好看点[滑稽]
2025年05月27日 17点05分
建议抄python的
2025年05月27日 17点05分
吧务
level 13
穆民 楼主
// 调用C标准库的strlen函数
Linker linker = Linker.nativeLinker();
SymbolLookup stdlib = linker.defaultLookup();
MethodHandle strlen = linker.downcallHandle(
stdlib.find("strlen").orElseThrow(),
FunctionDescriptor.of(JAVA_LONG, ADDRESS)
);
try (Arena arena = Arena.ofConfined()) {
MemorySegment str = arena.allocateUtf8String("Hello");
long len = (long) strlen.invoke(str);
System.out.println(len); // 输出5
}
这块我完全看不懂了。需要去充电了~~~
2025年05月27日 08点05分 8
吧务
level 13
穆民 楼主
try (var scope = new StructuredTaskScope.ShutdownOnFailure()) {
Future user = scope.fork(() -> findUser(id));
Future order = scope.fork(() -> fetchOrder(id));
scope.join(); // 等待所有任务
scope.throwIfFailed(); // 如果有异常则抛出
return new Response(user.resultNow(), order.resultNow());
}
算了,给我一段代码,我也抄不明白~~
2025年05月27日 08点05分 9
没看出来这个和completable future的区别在哪
2025年05月27日 17点05分
level 8
别瞎折腾了,8能用到地球毁灭为止
2025年05月27日 08点05分 10
目前是不能换,项目都在运行,有新项目可以运用一下
2025年05月27日 10点05分
level 5
17
2025年05月27日 09点05分 11
level 1
我记得21有一个var类型[滑稽],动态类型
2025年05月27日 09点05分 12
@剑殇心丘 [笑眼]加个var就是动态类型?那cpp还有auto是不是弱类型语言?本来就能自动推导出来的,早就该有了[怒]
2025年05月27日 16点05分
哦叫编译时确定
2025年05月27日 09点05分
不好用,我用了
2025年05月27日 10点05分
严格来讲不是21才出的,至少在17前就有了。目前在用17,这玩意挺好用的,尤其是涉及到泛型导致类型名称很长的时候
2025年05月27日 13点05分
level 7
花个一晚上就明白了吧,实在不行就一周
2025年05月27日 10点05分 13
应该是语法糖的问题,有些写法变了,关键是不知道哪些变了,还要总结
2025年05月28日 00点05分
level 12
只要产品有人用,能赚钱,jdk版本不算啥
2025年05月27日 10点05分 14
这倒是~接项目要是用JDK 新版本,不就没法维护了吗
2025年05月28日 00点05分
领导:啥玩意儿,你就说做不做得出来[滑稽]
2025年05月28日 04点05分
level 1
等新版本不兼容java8再说[滑稽]
2025年05月27日 10点05分 15
不用SpringAI,8能用到死[滑稽]
2025年05月28日 01点05分
1 2 3 4 5 6 尾页