January 31, 2023 16 min read Java 10 分钟快速入门垃圾回收机制 自动内存管理是编程语言发展历程上的一项伟大发明。 在没有自动内存管理前,人们都是手动进行内存管理。在 C 语言中,我们申请内存时,会使用 malloc 函数向操作系统申请内存空间,使用结束后,我们使用 free 函数释放内存。 于是,一些写了 C 语言比较久的同学可能会发现,自己的程序经常遇到内存泄漏、double free、use after free 等错误,这都是因为我们在管理这些内存时,没有正确的释放他们导致的。 而带有自动内存管理的编程语言却不一样,它们带来了一个叫做 runtime 的东西,像操作系统一样, 继续阅读
February 09, 2019 17 min read 技术 新技能学习:教你如何阅读Java字节码 Java字节码是由 .java 文件通过Java编译器编译成 .class 文件所包含的代码,我们通常使用的Java程序就是通过Java虚拟机执行Java字节码来得到的效果。 既然我们可以口算MD5、手算二维码,这篇文章就来讲讲眼看Java字节码吧! 0x0000 - 准备工作 在开始学习之前,请先准备好下列工具: 1. 一款支持HEX格式的编辑器,如 Sublime Text(推荐)、Ultra Editor等。 2. 一个Java环境开发环境,用来编译一个.class文件。 你需要知道这些基本知识: * HEX在这里指的是十六进制 [https://baike.baidu.com/ 继续阅读
July 06, 2018 2 min read Java 浅谈 Java 9 的模块化系统 什么是模块? 一个模块是代码的集合。它以依赖关系的形式持有类,数据和其他模块。它与JAR文件类似,但更好。每个模块都包含一个module-info.java 文件,它可以让我们明确地设置必要的信息。包括它依赖的其他模块以及其他模块可以访问的内容。 这是一种更好的方式,可以为程序员共享代码并进行协作减少一些兼容性的问题。 如何使用模块? 一个模块包含一个module-info.java文件 ,它包含了模块的基本信息,比如它依赖哪些模块、它的哪些部分能被其他模块访问等。 最主要的关键词是requires和exports。 现在,我们来写举几个简单的例子: module Decoder { requires Reader; exports com.decoder; } 上面的这个例子表明了Decoder模块依赖于Reader模块。 下一行则声明其他模块只能访问com.decoder包以内的内容。 继续阅读
August 12, 2017 1 min read Java Java通过反射实例化枚举 假设我们有一个像这样的枚举: public enum Status{ ON, OFF } 在某些情况下,我们需要通过反射的方式获得其中的某一个实例。 我们可以通过调用Enum中的valueOf方法,通过String获得枚举实例。 Class> statusClass = Class.forName("Status"); Method valueOfMethod = statusClass.getMethod("valueOf",String.class); Object onStatus = valueOfMethod.invoke(null,"ON"); 或者这么写: Class statusClass 继续阅读
October 05, 2016 2 min read Java FileChooser (JavaFX的文件选择对话框) FileChooser类 提供了标准平台文件对话框的支持。这些对话框拥有JavaFX的外观效果。 一个FileChooser可以用来调用文件打开的对话框选择单个文件(showOpenDialog)、文件打开对话框中选择多个文件( showOpenMultipleDialog)和文件保存对话框(showSaveDialog )。显示的对话框的配置由的值来控制FileChooser相应的之前设置的show Dialog属性方法。此配置包括该对话框的标题,对话框和列出的文件扩展名过滤器(S)中显示的初始目录。对于价值尚未确定明确的配置属性,显示的对话框使用他们的平台默认值。一个对话框显示方法的调用被阻塞,直到用户做出选择或取消对话框。如果对话框被取消,将返回 null*. FileChooserDemo.java: package top.lss233.demo; import java.io.File; 继续阅读
May 10, 2016 1 min read Linux 在Ubuntu中使用PPA安装Oracle JDK Ubuntu 自带的Open JDK虽然方便,但是我还是比较喜欢用Oracle的JDK. 在 Ubuntu 中使用 PPA 安装Oracle Java8: sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer 完成之后就可以使用javac等命令了。 安装 Java 8 需要接受许可,如果你想自动安装,那么可以在安装之前运行: echo oracle-java8-installer shared/ 继续阅读