大家好,今天小编关注到一个比较有意思的话题,就是关于java语言空间的问题,于是小编就整理了1个相关介绍Java语言空间的解答,让我们一起看看吧。
如果有配套的编译器,JAVA语言可不可以编写单片机程序呢?
回答里多是不怎么懂j***a的前端小程序员,对j***a理解太狭隘,J***a最初的设计就是用于嵌入式的(当J***a还叫Oak的时候,它是用于超前于时代很多的*7(Star-7)PDA项目),J***a SE Embedded、J***a ME(其中例如Blu-ray Disc J***a(BD-J))、J***aCard、Sun SPOT是几种不同层面的嵌入式J***a开发技术。有兴趣的可以去搜索了解。
实际上嵌入式系统用j***a写软件很广泛和常见的,会把jvm一起刷到固件运行,比如身边的安卓电视,机顶盒还有车载的大屏影音***设备(常见的MTK+Android方案)都是典型的Android+J***a的应用。
此外商场饭店用于扫码的POS机,甚至有时你看到商场内展示图像和楼层信息的显示,这些也属于使用嵌入式Linux+Android+J***a的应用。
嵌入式Linux+Android系统+J***a软件的应用在影音***方向目前可以说成为主流。实现影音图像类应用
用J***A做单片机程序不但不可行而且没有必要。
单片机是最简洁的计算机。单片机程序写在内存中由CPU直接读取执行。而手机和个人电脑则需要从文件系统中将程序读到内存中再执行。J***A程序要更复杂一些,需要先编译成字节码,在执行的时候由不同操作系统上的虚拟机,根据所在系统的指令集进行实时编译之后再执行的。J***A不能脱离操作系统。
可是单片机上没有也不需要操作系统,根本不具备J***A程序的运行条件。尽管理论上可以对J***A程序静态编译后写到单片机上再执行。但这么做了J***A程序的很多特性都失去了意义,还不如直接用C语言写出来即简单又有效率。
是的,如果你能做出像gcj那样的编译器,绝对可以!但是可能会限制一些动态特性,比如动态加载类,比如反射,比如包的扫描。。。所以需要虚拟机运行时支持的特性都不能用!
通常单片机用J***a的不多,一般用C或C++。但也有的单片机可以用J***a,这样的单片机需要集成JVM,如freeRTS就可以使用J***a。现在ARM核的单片机在大量应用,ARM不仅可以支持J***a,还可以运行多种操作系统。
而J***a起源,就是用于电视机、电话、闹钟、烤面包机等家用电器的和通信。可是它诞生的太早了,后来在发展中改变了自身的主要应用方向。
事实上,目前的J***a语言没有办法运行在单片机上。J***a语言不是一种编译型语言,是一种字节码解释型语言。J***a代码的运行除了需要一个J***a虚拟机,还需要一大堆相关的基本库。以arm处理器为例,arm 32位版本的J***a虚拟机运行时占用内存空间为190M字节,基本库和你的代码运行空间还不包括在内。如果一个处理器被称为单片机,内存一般以KB计算,有些高级单片机有1M或2M内存已经不得了了。这里内存容量是指RAM,不是闪存。这个评估还是把单片机字长,操作系统,指令系统给忽略的情况下做出的。说到J***a的本质,就是运行在哪里,就要把编译器安装到哪里的累赘语言。此外,由于J***a使用了动态内存自动回收机制,使得这种语言不可能应用于***紧缺型处理器。
到此,以上就是小编对于j***a语言空间的问题就介绍到这了,希望介绍关于j***a语言空间的1点解答对大家有用。