语言

2020-11-20  本文已影响0人  jasminedj

语言:

编译语言有像C一样没有虚拟机的语言(编译完后可以直接运行),也有Java这样有虚拟机的语言(编译完后运行需要依赖java的虚拟机环境)。C语言需要程序员手动管理内存,而Java虚拟机JVM会帮助程序员管理内存。

所以有虚拟机好还是没有虚拟机好?


javascript和v8和Node

V8的作用:能够把js代码转化成为机器码(非唯一引擎,但是是目前最优秀的JS引擎,执行速度快、性能高)

V8采用即时编译技术(JIT),宏观步骤为JavaScript源码 -> 抽象语法树 -> 本地机器码,V8直接编译成机器码,而不是像Java一样先生成中间字节码(.class文件),然后其中的一部分编译成本地机器码,so(脚本语言的优势)程序会更早地开始运行,速度更快;但是,(劣势)缺少了字节码这个过程,使得代码优化困难。

问题:编译优化、内存管理、垃圾回收

NodeJS对V8引擎进行封装,并对特殊用例进行了优化,提供了替换的API,使V8在非浏览器运行环境中能够运行的更好,如V8.Node增加了Buffer类处理二进制数据。


编码

ascii:用一个字节(8位)来表示状态,0x20以下是控制码,128-255是扩展字符集

GB:中文扩展,所以一个汉字算两个英文字符

但是类俗语GB这种语言扩展太多太乱太杂,于是ISO(国际标准化组织)约定了unicode

unicode:包含了两个字节,16位,造成空间浪费,因为英文字符本来只用一个字节,但是如果这样占用空间会多几倍

utf-8就是每次8个传输位,utf-16就是每次16个传输位,变长的编码方式,使用1-4个字节表示一个符号

上一篇 下一篇

猜你喜欢

热点阅读