标签: Java

11 篇文章

你知道吗,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 贡献一个功能来解决这个问题。 定…
有关 C++ 指针(*)和引用(&)区别的小结
众所周知,C 语言存在一个叫做指针的东西,我们可以用指针来指向一个值的内存地址,然后进行内存地址各种操作。但是在 C++ 中,又多了一个叫做引用的东西,这二者之间存在着细微的差别,通过研读了知乎上的一篇文章(下),对于我之前不太明白的地方,作出了如下小结: 指针可空,引用不可空 指针可以改变指向,也就是说转而指向其他对象,但是引用却是不可变的 指针…
thumbnail
Java 方法实参是传值(pass-by-value)还是传引用(pass-by-reference)?
传值还是传引用? 一直以来,我认为在 Java 中传递方法实参时,当传入的类型为基本数据类型时,则传入的是值;当传入的类型为对象时,则传入的是引用。但是,这个观念是实际上是错误的。事实上,Java 始终传递值。 为什么这么说呢,让我们看一下如下代码: public static void main(String[] args) { ... int …