虚拟机栈 简介 虚拟机栈的出现背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的【如果设计成基于寄存器的,耦合度高,性能会有所提升,因为可以对具体的CPU架构进行优化,但是跨平台性大大降低】。 优点是跨平台,指令集小,编译器容易实现,缺点是 ...
分类:
其他好文 时间:
2021-06-02 15:01:36
阅读次数:
0
用基类指针或引用调用虚函数时,编译时编译器不知道调用哪个函数,只有运行时才能确定。 这个过程称为动态绑定,动态绑定和继承以及数据抽象共同构成了面向对象的基础。动态绑定可以帮助我们编写类型无关的代码,忽略有继承关系的类型之间的差异。 ...
分类:
编程语言 时间:
2021-05-25 18:20:55
阅读次数:
0
1,Linux 发行版 什么是Linux 发行版呢?这要从Linux 来源说起。Unix操作系统后期,开始收费和商业闭源了。一个叫Richard Stallman 的人就发起 GNU 计划,想模仿Unix 的界面和使用方式,从头做一个开源的版本,然后他自己也做了编辑器 Emacs 和编译器 GCC。 ...
分类:
系统相关 时间:
2021-05-24 15:40:42
阅读次数:
0
前期准备 一般来说GDB主要调试的是C/C的程序。在gdb调试之前,必须要把调试信息加到可执行文件中。使用编译 器(cc/gcc/g)的 -g 参数可以做到这一点。如: gcc -g hello.c -o hello g++ -g hello.cpp -o hello 如果没有-g,将看不见程序的函 ...
分类:
数据库 时间:
2021-05-24 15:31:37
阅读次数:
0
前言 类装载器子系统是JVM中非常重要的部分,是学习JVM绕不开的一关。 一般来说,Java 类的虚拟机使用 Java 方式如下: Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。 类加载器负责读取 Java 字节代码,并转换 ...
分类:
其他好文 时间:
2021-05-24 14:43:34
阅读次数:
0
1.提高 Webpack 打包速度 (1)优化loader的文件搜索范围 Babel 是编写下一代 JavaScript 的编译器 对于 Loader 来说,影响打包效率首当其冲必属 Babel 了。因为 Babel 会将代码转为字符串生成 AST,然后对 AST 继续进行转变最后再生成新的代码,项 ...
分类:
Web程序 时间:
2021-05-24 14:18:33
阅读次数:
0
泛型 1 泛型存在的目的 类型参数化,模板化编程,简化编程 2 泛型的原理 java的泛型参数在运行时会进行类型擦除,擦除后就是object,编译器也会转成object进行编译 那么为啥使用泛型呢? 更加安全 更好的可读性 3 泛型的使用 最常用的容器类比如List 泛型类 class Pair2< ...
分类:
编程语言 时间:
2021-05-24 13:12:20
阅读次数:
0
GRPC使用protocol buffers 作为接口定义语言(IDL)和信息交换格式。安装GRPC按照GRPC官方的教程,第一步要安装PROTOBUF的编译器下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.17.0我 ...
分类:
其他好文 时间:
2021-05-24 12:31:05
阅读次数:
0
在别人博客看到这样一句话,觉得总结得蛮到位的:程序运行平台 = CPU+OS+Compiler | | | 在C语言和C++中,经常会出现某一种数据类型所占的字节数为多大的问题,其实这些机器字长和和机器位数没有直接关系,但是和编译器有关系,由编译器在编译期间决定。 | | | | 16位编译器 | ...
分类:
编程语言 时间:
2021-05-24 11:01:21
阅读次数:
0
C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式)。那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的 ...
分类:
编程语言 时间:
2021-05-24 10:40:05
阅读次数:
0