标签: Java

13 篇文章

thumbnail
论类型转换导致 JVM 类加载提前报错的问题
本文探讨了在Java中,通过类型转换可能导致JVM类加载提前报错的问题。作者在文章中描述了一个包含Father和Son类的情景,并展示了一段代码,验证了删除Son类后仍会导致报错的情况。作者提到,在JVM的类加载验证阶段,即使不是针对Son.class或Father.class的验证,验证Main.class时依然会触发报错,因为涉及到向上类型转换…
过去、现在和未来 —— Java 的现代化之路
本文讲述了Java语言的过去、现在和未来之路。首先介绍了Java从诞生至今一直受到其他语言比较和技术革新的影响,引发公众对其现状以及未来的担忧。然后重点回顾和展望了Java的几个重要更新,如Java 8的Lambda表达式和Stream API,Project Loom的协程支持,Project Panama的本地库访问和堆外内存API,以及Pro…
你知道吗,Java中的受查和非受查异常,其实并不存在区别……
博主在文章中提到Java中的受查异常和非受查异常之间的区别在JVM的世界中实际上并不存在。传统理念认为继承自java.lang.RuntimeException的异常是非受查异常,其他异常则是受查异常。然而,通过比较JVM字节码层面的代码表示,发现无论是受查异常还是非受查异常,在JVM字节码中并没有实质差别。此外,文章也讨论了Kotlin语言对于受…
thumbnail
Java 的 main 方法声明终于要变天了吗? —— 浅谈 JEP 445
这篇文章主要介绍了Java JEP 445,即预览中的JEP,引入了两个机制:未命名类和实例main方法,用于简化Java的main方法声明。通过这两个机制,可以使main方法更加灵活,仅需最基本的语法,方便入门学习Java。同时,在该预览版本中,如果Java代码中包含未命名类,javadoc实用工具将无法生成API文档。这两个机制并没有引入新的语…
thumbnail
读完《深入理解JVM字节码》啦!
经过我不懈(大嘘)的努力,终于读完《深入理解JVM字节码》这本书啦! 不得不说是一本非常不错的书,兼具理论和工程实践,在讲述 JVM 字节码结构的同时还穿插了 Kotlin,Android,ASM 等内容: 想起来这本书从21年年底到现在断断续续看了一年多才看完,属于是摸上加摸了,233: 接下来打算看看 C++,或者接着看那本还完全没打开过的《深…
thumbnail
论一种模块化的 Minecraft Minigame 游戏架构模型
论一种模块化的 Minecraft Minigame 游戏架构模型 TL;DR: 本文章试图说明一种可用于开发 Minecraft Minigame 或其他相似内容的,模块化的架构模型,作者基于 “分而治之” 的理念设计了它们。基本上,这些架构由 Flow, Phase 和 Module 共同组成。文章也试图说明一种基于上述架构模型的,由事件驱动的…
那些年,Kotlin 都截胡了哪些 Java 新特性
那些年,Kotlin 都截胡了哪些 Java 新特性 众所周知,Kotlin被称为最好的 Java。自 Kotlin 发布以来,凭借着其在 JVM 平台上惊人的兼容性,互操作性以及新特性支持,其迅速成为了广泛使用的 JVM 语言之一,就连 Google 也将 Kotlin 钦定为 Android 的首选开发语言。Kotlin 相对 Java 提供了…
有关 Kotlin 具名参数形参传参顺序导致输出结果发生改变问题的一些探索
有关 Kotlin 具名参数形参传参顺序导致输出结果发生改变问题的一些探索 具名参数 众所周知,Kotlin 拥有一种叫做具名参数(Named arguments)的特性,它在需要跳过可选参数,或是调整参数顺序的地方十分有效。 例如如下拥有五个参数,且后四个参数为可选参数的函数: fun reformat( str: String, normali…
thumbnail
ASM 那点事 —— 让 BungeeCord 允许 authlib-injector 中非 ASCII 的玩家 ID 连接
起因 前些天在某个群跟群友聊天时,偶然听说了当一个符合 authlib-injector 规范的以非 ASCII 玩家 ID 的玩家连接 BungeeCord 时,BungeeCord 会以玩家 ID 字符不被允许为由禁止玩家加入服务器。这个问题令我很感兴趣,思考了一番以后,决定为 authlib-injector 贡献一个功能来解决这个问题。 定…