从语言设计的角度看,可以通过重新设计编译器来实现,但从工程实践的角度看是不可行的。
首先,Java语言最大的特点是跨平台的可移植性,一次开发,一次编译,多平台执行。这个特性是通过JVM(Java虚拟机)实现的。如果重写编译器直接编译成C语言这样的可执行程序,它将失去跨平台特性。
其次,Java语言在设计之初就被设计成严重依赖JRE(Java运行时环境)的语言。一些语言设计缺陷必须依靠JVM来解决,比如GC(垃圾收集)。我们知道Java语言没有内存恢复能力,所以我们不得不依赖JVM。在工程实践中,如果软件不能进行内存恢复,后果将是灾难性的。
第三,Java语言是面向对象的,不同于同样面向对象的C语言,Java还具有动态特性。
它允许程序动态加载运行过程中所需的类,这在面向对象编程中是C语言无法实现的。在C语言编程过程中,每次向类中添加实例变量或成员函数时,引用该类的所有子类都必须重新编译,否则会导致程序崩溃。Java从以下几个方面采取措施来解决这个问题。java编译器没有将对实例变量和成员函数的引用编译成数值引用,而是将符号引用信息保存在字节码中并传递给解释器,解释器在动态连接类后将符号引用信息转换成数值偏移量。这样,在内存中生成的对象不会在编译期间确定,而是延迟到运行时并由解释器确定。这样,更新类中的变量和方法不会影响现有代码。在解释和执行字节码时,只有在出现新名称时才执行一次符号信息的搜索和转换,然后才能全速执行代码。在运行时确定引用的好处是可以使用更新的类,而不用担心影响原始代码。如果程序连接到网络中另一个系统中的类,则该类的所有者可以自由更新该类,而不会使引用该类的任何程序崩溃。这完全取决于JRE。
以上几点决定了Java不能像C语言那样直接编译成机器代码。当然,还有其他一些因素,但我认为以上几点是最重要的。
PS怎么制作图片的虚实线?1. 打开PS软件并创建新图片(快捷键:Ctrl N)2。右键单击工具栏下的矩形,然后单击圆角矩形工具(快捷键:U)3。单击路径,然后将半径调整为15px(如果您认为半径调整不够好,可以修改它)4。在图上创建一条路
wifi域名怎样设置才快?1. 找运营商刷新互联网数据记录每个手机号码对应一个GPRS互联网账号,该账号记录了相应账号的互联网数据,运营商分配给每个账号的存储空间非常小。长期以来,积累的历史数据占据了大部分的空间,速度较慢。拨打本地运营商的
特步官方网站和特步官方旗舰店有什么区别?特步的官方网站有特步公司直接建立网站销售,旗舰店可以放在其他电子商务平台上销售。两者质量相同。旗舰店作为一种新型的销售场所,近两年来非常受欢迎,各类旗舰店在繁华商业区异军突起。“旗舰”一词是指载有舰队
企业邮箱邮件怎么批量导出?1. 网易企业邮箱网页肯定是无法实现的。2. 您可以先在客户端创建帐户;3。使用网易收集您的企业电子邮件;4。打开输入框(查找收集的企业电子邮件),选择要导出的电子邮件,然后单击打开;5。在电子邮件标题上方的功能按
一键ghost恢复系统步骤?1.进入XP系统后,单击桌面上的一个按钮。此时,您什么都不做…2.单击一个按钮还原系统,然后选择下面的还原按钮。3.此时,系统界面中间会弹出一个小内容。我们会直接忽略它,然后提示您重新启动它…4.重新启动后,系统
邓超、陈赫、李晨、郑恺、王祖蓝、王宝强、包贝尔、鹿晗、baby和热巴,哪些才是你心中兄弟团?邓超、李晨、陈鹤、郑凯、王祖兰
在阿里云购买的新域名,被腾讯标记为危险网站,申诉不通过,怎么办?如果您的网站没有发布非法信息,很可能是域名没有安装SSL安全证书,即没有HTTP加密安全升级。我以前写过一篇关于这方面的文章,这只是一种加密手段,以防止网络钓鱼或被监视。大型电
制作宣传海报哪个免费App好用?现在的应用程序不是那么容易使用的小程序。你试过制造者岗位吗?maker post应用程序不易使用,但这个小程序基本上复制了web版本的功能。海量模板非常容易使用。电脑端的在线平面设计网站,在线素材,具有基本图
网页设计就业率怎么样?自学的话会不会很难?各行各业的公司都需要网页设计师,他们更多地集中在互联网公司,从他们的网站盈利。因此,网页设计师的就业范围非常广泛。市场对网页设计师的需求不断增加,各大网站、广告公司、设计公司都在招聘大量的网页设计师
fastreport中文版教程之报表预览、打印导出的办法?FastReport使用不多,但finereport一直在使用。finereport中的导出方法非常简单,如下图所示(我不知道FastReport是否设置为这样):report怎么读