Java程序可移植性好的原因是虚拟机,那C++呢

问题描述

在看教学视频,讲到Java的一大特点跨平台性,说Java程序可移植性强是因为有Java虚拟机存在。那如果有C++虚拟机,C++程序的可移植性不也很好吗?初学者,不要鄙视我

解决方案

解决方案二:
是的,但那样C++也就不是C++了
解决方案三:
java就是这样出来的。嘿嘿。
解决方案四:
它们的原理不一样,java和C++都是基于C语言的,C++是对C语言的加强,本质上还是C语言;而java虽然也是基于C语言的,但它相当于C语言写的一个产品。java的跨平台性其实是在虚拟机上,java的语法一样,但不同的操作系统其实实现虚拟机是不同的,也就是你同样的java语法,虚拟机帮你转换成不同的C语言(不同的操作系统,C语言也会有差别),所以只要系统装了虚拟机,同样的java语法都可以用。但C++不同,它是C语言的加强,不同的系统不同的C语言,就会有不同的C++。
解决方案五:
你要知道linux系统和uninx系统都是c写的。c++写的代码,在没有窗体的情况下,大部分都是可以再linux上编译成功了的
解决方案六:
答案是,是的,虚拟机是作为中间的一个桥梁,Java直接与虚拟机做交互,之间的不同平台的任务就交给了虚拟机内部的实现,但是C++要比JAVA语言要早吧,那时应该是没考虑这个问题,之后肯定是想解决跨平台的问题,所以JAVA就出现了,就解决了这个问题,如果C++也做一个虚拟机也会解决这个问题,但为什么没有,由于我知道的也不是很多,可以请其他网友回答,我感觉现在要做的话,底层肯定要改,那感觉就像是变了一种语言,影响太大了
解决方案七:
反正就是模板套模板,前期处理多,后期就不用这么多。前期处理多了,灵活性就小了
解决方案八:
要是那样C++就不是C++了
解决方案九:
可移植性级别不一样而已,C++也在编译器级别也具有很好的跨平台性哦,Java是运行时跨平台性好。
解决方案十:
跨平台是个玩笑真正好的产品是不需要跨平台的众多牛X的软件比如photoshop3DsMaxMAYA你听说哪个是天生跨平台的?
解决方案十一:
引用9楼sunbo624的回复:

跨平台是个玩笑真正好的产品是不需要跨平台的众多牛X的软件比如photoshop3DsMaxMAYA你听说哪个是天生跨平台的?

我觉得还是使用量的问题,如果有一个用户体验超好、性能可媲美windows,使用人数有多的,我相信这些东西肯定也会有对应的版本的
解决方案十二:
引用10楼u011054333的回复:

Quote: 引用9楼sunbo624的回复:
跨平台是个玩笑真正好的产品是不需要跨平台的众多牛X的软件比如photoshop3DsMaxMAYA你听说哪个是天生跨平台的?

我觉得还是使用量的问题,如果有一个用户体验超好、性能可媲美windows,使用人数有多的,我相信这些东西肯定也会有对应的版本的

这些软件都有mac对应版本但这些软件不是跨平台的跨平台指的是我只要有一份就能在不同的平台运行而使用率多的东西为什么这些软件不跨平台呢因为跨平台的"平台"质量不行
解决方案十三:
引用11楼sunbo624的回复:

Quote: 引用10楼u011054333的回复:
Quote: 引用9楼sunbo624的回复:
跨平台是个玩笑真正好的产品是不需要跨平台的众多牛X的软件比如photoshop3DsMaxMAYA你听说哪个是天生跨平台的?

我觉得还是使用量的问题,如果有一个用户体验超好、性能可媲美windows,使用人数有多的,我相信这些东西肯定也会有对应的版本的

这些软件都有mac对应版本但这些软件不是跨平台的跨平台指的是我只要有一份就能在不同的平台运行而使用率多的东西为什么这些软件不跨平台呢因为跨平台的"平台"质量不行

好的,我貌似明白了,多谢讲解

时间: 2024-08-22 00:05:00

Java程序可移植性好的原因是虚拟机,那C++呢的相关文章

JAVA程序内存溢出问题原因分析_java

本文较为详细的分析了JAVA程序内存溢出问题原因.分享给大家供大家参考.具体如下: 遇到一个线上系统报 java.lang.OutOfMemoryError: PermGen space 错误,需要定位一下问题.很久之前到时弄过这个,现在还真有点不记得了,但这个真的是一个非常有意思的问题,值得好好研究一下.首先第一反应当然是加上-XX:+PrintGCDetails参数来看具体的GC日志,但是由于程序是tomcat启动的,担心里面封装的东西太多不好定位,既然在windows下面,所以还是借助可视

Java程序长时间运行时自动退出可能的原因

我有一个Java程序,启动了七个线程,这些线程都形如: public void run() { while (true) { try { ...... } catch (Throwable t) { t.printStackTrace(); } } } 但却经常跑着跑着,跑了几个小时后java退出,可能是哪些原因? 我猜测是我自己的代码或是我使用的库在哪里调用了System.exit(),但是我用程序将System.exit()hook住了,发现没有人调用这个函数.这个服务器只有我一个人在用,也

Java程序员面试失败的5大原因

下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. #1 说得太少 尤其是那些开放式的问题,如"请介绍下你自己"或"请讲一下你曾经解决过的复杂问题".面试官会通过你对这些技术和非技术问题的回答来评估你的激情.他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力. 所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊.如果你不能很好地说明你的经

Java 程序编码规范

编码|程序|规范 Java 程序编码规范 李小敏www.yway.com 软件工程师2000年12月内容: 命名惯例 Java文件样式 代码编写格式 程序编写 编程技巧 Swing 调试 性能 可移植性 参考资料 作者简介    所有的程序开发手册都包含了各种规则.一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的.这不仅仅是为了开发效率来考虑,而且也是为了后期维护考虑.命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性

谈谈JAVA程序的反编译

编译|程序   谈谈JAVA程序的反编译  如今JAVA语言在全世界范围正如火如荼般的流行,它广范地应用在INTERNET的数据库.多媒体.CGI.及动态网页的制作方面.1999年在美国对JAVA程序员的需求量首次超过C++! 最近分析一些JAVA程序,对JAVA的反编译进行了一番了解,下面将我所了解的情况作以下介绍,希望对JAVA爱好者有所帮助. JAVA是采用一种称做"字节编码"的程序结构,分为小程序(嵌入到HTML文件中)和应用程序(直接在命令状态下执行)两种类型.无论哪种结构,

Java程序编码规范!不仅仅是规范,还有为什么这样做的理由,不错哦!

编码|程序|规范 Java程序编码规范 所有的程序开发手册都包含了各种规则.一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的.这不仅仅是为了开发效率来考虑,而且也是为了后期维护考虑. 命名规范定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失.(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性) Package 的命名Package 的名字应该都是由一个小写单词组成. Class 的

自动检测并行Java程序中的错误

当 CPU 进入多核时代之后,并行编程将更加流行,但是编写并行程序更容易 出错.在开发过程中,工程师能注意到同一个程序在单线程运行时是正确的,但 是在多线程时,它会有可能出错.和并行相关的错误的产生原因通常都非常隐晦 ,而且在一次测试中,它们的出现与否具有很强的随机性.由于程序中多个线程 之间可能以任意的方式交错执行,即使一个并行程序正确的运行了成百上千次, 下一次运行仍然可能出现新的错误. Multi-Thread Run-time Analysis Tool 是由 IBM 为多线程 Java

Java程序性能优化

一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util.vector; class cel { void method (vector vector) { for (int i = 0; i < vector.size (); i++) // violation ; // ... } } 更正: class cel_fixed { void metho

阿里面试回来,想和Java程序员谈一谈

引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的. 但是,最近问LZ的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了. 其实之前LZ写过一篇文章,但是那篇文章更多的是在讨论"面试前该不该刷题"这个话题,而这篇文章将会更加聚焦在面试前如何准备,以及工作当中如何学习