1、JVM(Java Virtual Machine):字节码 2、Java--编译 字节码 JVM 机器码 运行 3、JDK-- javaDevelopment Kit-- 可用于编译和运行Java程序 4、JRE --Java Runtime Environment --只用来运行Java程序 ...
分类:
编程语言 时间:
2020-05-07 01:09:22
阅读次数:
92
前言: 现代计算机都是用0和1组成的二进制来表示所有信息。前面所讲到的机器码也是使用二进制表示;其他诸如字符串、整数、浮点数等也都是使用二进制保存。具体细节需要我们了解一下。 一、二进制和逢二进一 二进制,逢二进一,常用的十进制通过短除法即可转换为二进制数,这样的表示方式称为原码表示法。为了区分正负 ...
分类:
其他好文 时间:
2020-05-05 01:12:06
阅读次数:
129
建立数据通路 指令周期(Instruction Cycle) 前面讲计算机机器码的时候,向你介绍过 PC 寄存器、指令寄存器,还介绍过 MIPS 体系结构的计算机所用到的 R、I、J 类指令。如果我们仔细看一看,可以发现,计算机每执行一条指令的过程,可以分解成这样几个步骤。 1. Fetch ( 取 ...
分类:
其他好文 时间:
2020-05-04 19:33:40
阅读次数:
72
基础知识 机器语言和汇编语言 机器语言是机器指令的集合,是一列二进制数字,每一种微处理器都有自己的机器指令集。因为机器语言难以记忆,容易出错,故诞生了汇编语言。汇编语言由汇编指令组成,汇编指令是机器指令便于记忆的格式。汇编语言可以由编译器将其编译为机器码,由计算机最终执行。 汇编语言有以下3类指令组 ...
分类:
其他好文 时间:
2020-04-30 23:01:15
阅读次数:
73
高级语言:Python =》字节码低级语言:C、汇编 =》机器码pypy 这是用CPython开发的Python解释器路径 #!/usr/bin/env python编码 #-*- coding:utf-8 -*-utf8 能用多少位表示就用多少表示utf8:3字节gbk: 2字节shift+ctr ...
分类:
编程语言 时间:
2020-04-21 18:01:39
阅读次数:
76
常量折叠 把常量表达式的值求出来作为常量嵌在最终生成的代码中。 疑问:对于一个很复杂的常量表达式,编译器会算出结果再编译吗?亦或者是把这个表达式完全翻译成机器码,最终留给程序去解决? 分情况: + 涉及的常量折叠是否为语言规范所强制要求的,如果是,则符合规范的编译器就一定要(会)进行常量折叠。 + ...
分类:
编程语言 时间:
2020-04-18 18:49:17
阅读次数:
74
1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看 ...
分类:
编程语言 时间:
2020-04-18 10:06:15
阅读次数:
69
java通过编译 源文件文件生成 字节码文件,然后字节码文件通过java虚拟机的解释器,生成机器码来执行。 .java 编译器 .class jvm解释器 机器码 Java之所以能跨平台,是因为每种平台的解释器不同,但实现的虚拟机是相同的。当一个程序运行,虚拟机就会开始实例化,多个程序运行会创建多个 ...
分类:
其他好文 时间:
2020-04-17 15:29:35
阅读次数:
82
Java介于编译型语言和解释型语言之间。编译型语言如C、C++,代码是直接编译成机器码执行,但是不同的平台(x86、ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码。解释型语言如Python、Ruby没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低。而Java是 ...
分类:
编程语言 时间:
2020-04-14 18:34:03
阅读次数:
341
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步 ...
分类:
其他好文 时间:
2020-04-06 13:53:38
阅读次数:
46