dragondove 最近的时间轴更新
dragondove

dragondove

V2EX 第 450638 号会员,加入于 2019-11-01 21:38:24 +08:00
今日活跃度排名 11905
dragondove 最近回复了
@shawndev 虽然是编码问题,但是 win 下默认情况直接安装 vscode 跑 python 就是这种结果。win 的编码历史遗留问题一直不解决,小白学编程的困难就会一直在这儿。( win 的 utf8 怕是一直有个 beta 标识了)
@NoNewWorld Manjaro 并不省事,起码不比 Arch 省事,可以看这篇博文: https://zhul.in/2021/01/01/Why-I-dont-recommend-Manjaro 不建议不愿意折腾的新人使用滚动发行版(包括 Manjaro )。
@Mithril Linux 下驱动更新和卸载可比 win 方便多了。声卡现在靠 sof 项目也不错的。比 win 差一点的应该也就没有杜比全景声这类玩意了。不过要改音效有 easyeffcts 这类工具。
@NoKey vsc 官方有提供预置了 java 插件的安装包(实际上和手动安装没有差别),体验嘛,就一个字 “烂”,当然,写写 LeetCode 这种单文件代码的体验还是比 eclipse 好点的。做项目就算了
@wolfie enhanced-for 是使用 iterator 的,但是 forEach 的实现取决于 Iterable 是怎么实现的,例如 ArrayList 的 forEach 是 fori ,至于性能上,使用 forEach 会创建一个 Consumer 的匿名类对象,不过这个性能影响可以忽略不记。stream 里的 foreach 实现和 Collection 里的也是完全不一样的,stream 会创建新的对象来持有容器内的数据再作处理,不过 stream 可以使用 parrel 提升性能,如果直接使用,性能是不如 enhanced-for 或者 fori 的。
关于简洁和性能,使用古老的 apache commons + google guava 工具包就能解决大部分 stream 能解决的问题,而且语法更简洁,性能也更强。例如 guava 的 Maps.uniqueIndex 和 Multimaps.index 我就经常用。关于时间类型,如果使用 Date 类型,大部项目也都会有个 DateUtils 之类的工具类,内部怎么实现没人管(很多时候我会选择使用 java.time 包下的工具实现),反正最后数据是正确的就行,而时间的 parse 和 format ,我更倾向于使用 commons 的 FastDateFormat ,性能更好,占用内存小,而且线程安全。
@karloku 一边热爱开源,一边用 vscode 搞死 atom 。一边热爱开源,一边用 winget 借鉴并搞死 AppGet
90 天前
回复了 bringyou 创建的主题 Java Java 又将进化
@nothingistrue 我的意思是官方文档只从来没说过 java 编译器能做到向后兼容,但是说过保证 vm 下运行二进制兼容。至于以前版本的不兼容性可以从 oracle 文档上找到,比如 https://www.oracle.com/java/technologies/javase/incompatibilities.html https://www.oracle.com/java/technologies/compatibility.html
jdk9 最大的改动应该也就是模块化(实际上影响并不大,大部分在 jdk8 下写的代码能在 jdk9 上编译)但是 jdk16 加了模块安全性相关的功能,需要加额外启动参数。个人尝试过升级 jdk8 的项目到 jdk17 ,遇到的问题有:1.lombok 兼容问题,升级 lombok 就可以解决 2. javaEE 模块在 jdk11 时被移除,通过 maven 重新引入即可解决。3. sun 包被移除,但是能在 java.util 下几乎都能找到替代类。4. jdk16 引入的模块安全问题,加启动参数即可解决。
90 天前
回复了 bringyou 创建的主题 Java Java 又将进化
@zrc 部分设计模式的出现是因为语言本身的表达能力不够,很多用函数式写代码的人几乎不考虑设计模式。(可以看一下 github 上的一个项目 https://github.com/niltok/magic-in-ten-mins java 写的函数式编程)。jvm 如果足够强大,可以在运行期间检测运行状况并调整自身的设置(例如根据当前运行环境的内存和对象大小自动调整 gc 触发的时间)那么也不需要调优。目前 ZGC 是宣称最大 gc 时间不超过 1ms 的。
90 天前
回复了 bringyou 创建的主题 Java Java 又将进化
@nothingistrue jdk 本身就不向下兼容,jdk 的兼容性只是二进制兼容,即 jdk8 编译出来的.class 文件可以在 jdk17 的 jvm 上运行
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4649 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 06:07 · PVG 14:07 · LAX 23:07 · JFK 02:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.