深入理解 JVM 之——字节码指令与执行引擎
类文件结构 Write Once,Run Anywhere 对于 C 语言从程序到运行需要经过编译的过程,只有经历了编译后,我们所编写的代码才能够翻译为机器可以直接运行的二进制代码,并且在不同的操作系统下,我们的代码都需要进行一次编译之后才能运行。 而 Java 不同于 C,由于 JVM 内置了解释…
深入理解 JVM 之——垃圾回收与内存分配策略
垃圾回收策略 说起垃圾收集(Garbage Collection,下文简称GC),有不少人把这项技术当作Java语言的伴生产物。事实上,垃圾收集的历史远远比Java久远,在1960年诞生于麻省理工学院的Lisp是第一门开始使用内存动态分配和垃圾收集技术的语言。 回收三问 哪些区域的内存需要回收? J…
深入理解 JVM 之——Java 内存区域与溢出异常
本篇为深入理解 Java 虚拟机第二章内容,推荐在学习前先掌握基础的 Linux 操作、编译原理、计算机组成原理等计算机基础以及扎实的 C/C++ 功底。 该系列的 GitHub 仓库:https://github.com/Doge2077/learn-jvm 运行时数据区域 Java 虚拟机在执行…
深入理解 JVM 之——动手编译 JDK
本篇为深入理解 Java 虚拟机第一章的实战内容,推荐在学习前先掌握基础的 Linux 操作、编译原理基础以及扎实的 C/C++ 功底。 该系列的 GitHub 仓库:https://github.com/Doge2077/learn-jvm 构建编译环境 系统准备 在官方文档上要求编译 OpenJ…
浅谈 Java 中的 Lambda 表达式
Lambda 表达式是一种匿名函数,它可以作为参数传递给方法或存储在变量中。在 Java8 中,它和函数式接口一起,共同构建了函数式编程的框架。 什么是函数式编程 函数式编程是一种编程范式,也是一种思想。 它将计算视为函数求值的过程,并强调函数的纯粹性和不可变性。在函数式编程中,函数被视为一等公民,…
自动拉取 GitHub 仓库更新的脚本
自动拉取 GitHub 仓库更新的脚本 由于将 HAUE-CS-WIKI 部署到了我自己的服务器上作为国内镜像站,每次在源站更新后都需要手动拉取镜像站的更新实在是太麻烦了,因此产生了编写该脚本的需求( 读者可根据该脚本思路编写属于你自己的定时任务脚本。 脚本思路 编写脚本文件,能够执行 git pu…
数字在计算机中的表示
基本概念 单位概念 位(bit):计算机中最小的数字单位,是“二进制数字”(binary digit)的缩写,它只能取 $0$ 或 $1$ 两个值,因此bit被称作“二进制位”。 字节(byte):$8$ 个bit组成 $1$ 个字节(byte),通常也是计算机中最常见的数据大小单位,用于表示 $8…
计算机学院2023年暑期学科竞赛培训
🎉Hello, World! 首先,欢迎大家加入河南工程学院计算机学院的大家庭当中。 引用培训方案文件中的一段话作为开篇: 本着丰富学生的学习生活、提升学院教师教学水平的原则,以竞赛为载体,为学生搭建拓宽知识、激发兴趣、培养能力和展示的自我平台,提升学生的自信心和内在素质,为优秀学生的产生和发展创造…
将程序添加到右键菜单快速启动
效果如下 以 Windows Terminal 为例 打开注册表编辑器:按下 Win + R 键,输入 regedit,然后按回车键打开注册表编辑器。 在注册表编辑器中导航到以下路径: HKEY_CLASSES_ROOT\Directory\Background\shell 在左侧的树状视图中,右键…
小白如何选择笔记本电脑
前言 本篇旨在教学电脑小白如何选择笔记本电脑,而非纯粹的笔电种草文章。 本篇不包含组装台式电脑的相关讨论,图吧大佬请绕路(叠甲),请理性讨论。 笔记本电脑的分类 近年来,笔记本电脑市场基本分为三大类机型: 轻薄本:主打轻便和续航 全能本:牺牲部分便携性,提高了新能 游戏本:追求极致的性能 Mac:搭…