本文作者:ptiyny

java 底层 语言 java底层语言

ptiyny 07-14 18
java 底层 语言 java底层语言摘要: 大家好,今天小编关注到一个比较有意思的话题,就是关于java 底层 语言的问题,于是小编就整理了4个相关介绍java 底层 语言的解答,让我们一起看看吧。什么叫底层代码?SAP主要...

大家好,今天小关注到一个比较有意思的话题,是关于java 底层 语言的问题,于是小编就整了4个相关介绍Java 底层 语的解答,让我们一起看看吧。

java 底层 语言 java底层语言
(图片来源网络,侵删)

什么叫底层代码?

“底层”代码是指被封装好的代码,可以理解为某个方面的库函数,是一些比较基础的代码。

真正的底层代码编写是非常接近机器的编,比如汇编,甚至机器码。这与使用高级语言(例如Python,Java)的程序员进行编程不同。对于java来说,底层代码一般是指框架的实现方式的代码,这些代码一般都是一些常用代码封装比较好好,能够解决某些方面性的问题,可以方便复用和调用而已。而对一些操作系统来说,含义就不同了,底层代码可能就是c或者汇编,直接调度机器资源,这个才叫真的底层开发。

编写底层代码一般要比较深厚的功底,对程序设计,代码涉及的各个方面,性能,耦合度,复用性都要很深的掌握和考虑,熟练掌握设计模式,良好的编程习惯,代码优雅,数据结构,精通各种算法。

SAP主要用什么语言开发

大家说的SAP,从产品上大多数是指SAP R3,是1992年推出的,而Java在1995年才推出,所以根本不存在SAP R3底层是Java开发的说法。

java 底层 语言 java底层语言
(图片来源网络,侵删)

它的底层是C语言开发的,这一点从st22里面系统的dump信息里面可以明显看出来。

C语言只实现了最核心的功能,所有的业务功能都是用ABAP4开发的,这是一种SAP自己发明的语言,也是运行在虚拟机上,第一次运行的时候会自动编译字节码,只是大部分人感觉不到而已。

SAP对Java开发的支持,只有Webdynpro for Java一个技术,用来开发Web应用,其动机是用来吸引众多的Java开发人员。

可惜随着Webdynpro for ABAP的推出,SAP对这方面的投入逐渐减少逐渐废弃掉了。

java 底层 语言 java底层语言
(图片来源网络,侵删)

现在SAP的新产品如CRM7中,Web界面主要是由Webdynpro for ABAP实现的。

ABAP是SAP专有的开发语言,和市面上常见的其它的开放式平台语言不同,SAP是专为处理企业数据和业务逻辑而生的,和SAP的商务套件S4/Hana是紧密集成的,在大数据量处理,复杂业务流转,高并发,事务管理等企业级应用领域有着无可比拟的优势。SAP开发环境有一定封闭性,导致公众了解程度不高,专业性比较强。

java编译器用什么语言写的

编译器本身就是一个应用程序,编译器涉及到底层的一些操作,对行要求比较高的地方使用汇编语言编写的,主要的还是用C语言来编写实现的,在Java的安装路径下的bin目录下有很多的*.exe可执行文件,像jar.exe、javac.exe、java.exe等等,Java编译器这东西它好像不是开源的,如果你对编译器的实现感兴趣的话,推荐你看一本《编译原理》这本书,这本书对你了解编译器的实现原理有很大的帮助的。

为什么安卓不去掉Java语言底层?

这就是历史的选择,当年Android为了拉拢更多的开发者建立生态选择了Java语言,现在全套API和设计以及生态都在这个环境下,即使把Java语言换成kotlin兼容性这么高的操作,要普及所有app可能还要几年,更别说另起炉灶把现在的开发者全部抛弃掉。

此外,我认为Android出现“卡”的问题,一方面是UI层面对物理模拟的高性能API提供不足,导致很多效果动画需要开发者自己实现。另一方面是开发者不按标准开发程序,都想在后台占用CPU导致的。从绝对性能来看,Android机型的CPU性能也是不如同时期iOS设备的。

而题主认为去掉Java的整套Runtime就能提高性能我认为也是不成立或是弊大于利的。从软件优化角度来讲,这套VM运行环境性能也没有想象的弱,在Server级别,现在普通开发者开发的Java程序不考虑内存占用的话,不一定比水平一般cpp开发者写的程序性能弱,对于GC算法,目前也有低延迟的算法可供提供和推广。目前Android设备普遍内存较大,对VM可能多占用的内存也有很好的补充。

退一万步说,程序中真的存在某一块计算密集型的程序造成的热点且在Java层面不可能优化的话,开发者也可以提供native的高性能模块供Java层调用。事实上,考虑到增加反编译的门槛和难度以及跨平台的复用性,目前很多App的核心模块都是native实现,您可以随便解包一个apk软件,您可以发现大多数App都提供了跨多个CPU的so库,这些库模块就是开发者针对该App的native代码编译后的结果(这些文件类似于Windows上的dll文件)。

到此,以上就是小编对于java 底层 语言的问题就介绍到这了,希望介绍关于java 底层 语言的4点解答对大家有用。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享