首页 > 其他分享 >跨平台理解

跨平台理解

时间:2022-11-05 19:45:43浏览次数:61  
标签:Java 操作系统 编译 跨平台 理解 指令 cpu

转自:https://zhuanlan.zhihu.com/p/49639722,https://www.zhihu.com/question/40527999

1.介绍

跨平台是指跨不同的操作系统(有不同的系统调用),有不同的cpu指令集。应用程序的执行本质是cpu指令的执行,而cpu指令分为特权指令非特权指令。(特权指令可以理解为系统调用吗?)

一种语言要想跨平台,首先要在多个平台都有编译器或解释器,但是不同平台的编译器对某些相同的源代码转化成不同的cpu指令

2.跨平台语言

Java的跨平台是“一次编译,到处运行”。Java在编译的时候没有编译成指定CPU类型的汇编代码,也没有和具体操作系统的系统调用相关联,所以编译出来的结果是和CPU,操作系统都不相关的。

C编译出来后,就是指定CPU类型的汇编代码,编译过程中肯定也要和具体操作系统的系统库相关连,所以做不到Java那种跨平台。

 

标签:Java,操作系统,编译,跨平台,理解,指令,cpu
From: https://www.cnblogs.com/BlueBlueSea/p/16860917.html

相关文章

  • 聊聊我对敏捷项目交付的理解
    前言今年Q1,我负责内部一个技术项目的产品、项目管理以及质量和运营工作,目前项目第一阶段规划的需求都交付了。我将做这个项目过程中的一些经历和感受总结了下,就是今天这......
  • JavaIO流理解
    JavaIO流理解文件什么是文件?文件是我们保存数据的地方。文件流文件在程序中是以流的形式来操作的。流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从......
  • 观察变换的理解与存在价值
    假设我们已经用世界坐标系变换把模型放在了场景的某处(x,y,z):  然后我们要在camera(x,y,z)这个点去看这个物体,并且设置好相机的朝向(Dir,Up,Right)、那么以相机为原点也会......
  • ThreadLocal的使用及原理解析
    #基本使用JDK的lang包下提供了ThreadLocal类,我们可以使用它创建一个线程变量,线程变量的作用域仅在于此线程内。<br/>用2个示例来展示一下ThreadLocal的用法。**示例一:*......
  • 首选线程池,而不是多线程; 创建线程的方法; 存储过程和for循环插入数据; String字符串一般
    首选线程池,而不是多线程首选线程池,而不是多线程/**corePoolSize:线程长期为维持线程数核心线程数,常用线程数maximumPoolSize:线程数的上限,最大线程数keepAliveTime:超过线......
  • 代码点和代码单元的理解-Java
    摘要​​1.概念​​​​2.获取方法​​​​3.代码点与代码单元的代码示例​​1.概念代码点(codepoint):与一个编码表中的某个字符对应的代码值.在Unicode标准中,代码点采用......
  • 乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - .Net应用架构示例项目集锦,研
    .NETApplicationArchitecturehttps://github.com/dotnet-architecture位于Github上dotnet-architecture名下的项目是集结了开源社区智慧的示范结晶,是研究和学习最新D......
  • 深入理解sed模式空间——sed 'n;p'
    在进入正题之前我们先来了解一下sed的模式空间,如下什么是sed的模式空间?答(仅供参考):就是从文件读取一行文本然后存入的缓冲区,然后命令操作模式空间的内容,在初始状态下模式......
  • [ASM]汇编语言栈的理解
    [ASM]汇编语言栈的理解引言众所周知,栈是一种数据类型在汇编语言中自然也包含(PS:好像ASM只能使用栈访问内存空间,即使能直接访问也极其麻烦)汇编语言的栈遵从"先进后......
  • 深入理解 Spring 事务原理
    Spring事务的基本原理Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤......