嵌入式技术已经很多次的出现在我们生活中了,不光这样,现在也有很多公司都开始招聘嵌入式开发技术岗位了,相对于java的话,大家还是比较熟悉的,不少人也会拿这两样最对比,下面一起来了解下嵌入式比java难多少吧。
1、Java语言与嵌入式
对于选用嵌入式编程语言,一般说,越是高级的语言,其编译和运行库施加的开销越大,你的应用程序也越大,越慢。已经公认用汇编语言能写出最小最快的程序,其次是用C或Forth,接下来较大的是C++或Basic,然后才是Java。因此一般来说,编程人员都会首选汇编和C,而然后才会考虑C++或Java。
但是嵌入式开发者为何要来关注Java呢?笔者以为,随着不断增长的市场需求,很多嵌入设备必须适应网上交流的需要,为了迎合此要求,考虑这种到开发Internet应用程序的便利,众多开发者都发现使用这种语言是有意义的。另一个原因是随着内存条及32位处理器价格的下降,最初在嵌入系统使用Java太昂贵的问题不再有了。随着使用Java的成本代价减少,它的很多优点应当被考虑作为嵌入平台。
2、Java对于嵌入式的优点分析
Java语言的优点在于:它当初就是由理解和信奉网络计算梦想的一个小巧而专注的开发组设计的,虽然该语言最初的实施方案有点缺陷,有许多后来已被解决了,但为了这个梦想,他们很少在技术上妥协,结果诞生了一种专为以相互通讯为主要目的的设备而设计的语言。
有许多技术上的优点都可能会引导嵌入系统开发者选择Java,以下就是这些优点(其中有几个也适用于通用编程)
A)与处理器无关
Java的第一个优点就是与处理器无关,这个优点似乎与嵌入式系统没什么相干。传统上,嵌入程序就是针对特定的微处理器设计并在其上运行的,而C语言程序的可移植性则可通过编译或交叉编译来保障。
B)面向对象的编程
Java是一种纯粹面向对象的语言。所有代码和数据都是某个类的一部分,没有全局变量或是独立于类存在的代码,一个对象是一个类的实例,对象是通过调用操作方法,或者说函数来操作的,而这些方法或函数也是类的一部分,对象的方法就对象的数据进行操作。Java类被组织成一个等级层次,在层次结构中,一个子类能够继承其超类的行为,并可用子类所具备的一些特有功能来扩展其超类的功能。对象模型是你能定义对应真实事物的数据结构,使得程序的任务和任务如何实现者二者之间的转换变得基本上透明。
C)安全和安全操作
由于有了JVM,一个Java应用程序与操作系统或硬件完全隔绝,因此计算机病毒或其它作祟的的代码就很难获得对设备的控制。虚拟机是主机设备和那些可能难以确定其质量和可靠性的软件之间的一个保护层。
D)内存管理
Java的内存管理远比其他语言简单,因为它不使用指针。当对象被实例化时,内存被动态分配。正如我们前面分析的,对个别内存地址的访问被Java的设计者视为一个对安全的潜在危险,因此,访问也被禁止。而且,Sun的网络模型已假定你也许不知道目标处理器,而引用专用内存地址变得没有必要。去掉指针的结果不仅提高了安全性,还简化了编程,错误也减少了。
E)垃圾收集
垃圾收集自动收集内存中未引用的内存,并将其归回空闲内存链表中。JVM使用此功能将不在使用的内存还给系统。
F)网络
由于今天的嵌入式系统通常都是网络的,采用内置网络支持的语言节约了在实现网络协议和通信程序方面耗费的大量时间和努力。在Java中,网络类包括TCP/IP流和使用TCP及UDP的数据报程序,用于HTTP和URL服务的操作方法,以及错误检查代码和恢复功能。
G)动态配置
动态配置是指一系统启动时的用户制定配置或重新配置。需载入特殊的硬件配置、网络参数或在引导期间支持特定用途的一些实用程序的系统,常常使用动态配置。
H)异常处理
与许多操作系统和程序不同,对嵌入系统而言,重新启动通常是无法接受的,就像我们都不希望打电话或者看电视时突然有技术性的中断一样。这意味着实际上所有嵌入式系统都必须足够坚实以截取错误来防止它们使程序或更糟的是使整个设备崩溃。
以上介绍的就是嵌入式比java难多少了,选择嵌入式的话,自己就要多用心去准备了,不要最后浪费了时间还没有学到嵌入式技术,也不要一心两用,学着嵌入式还想着是不是应该选择java,这样就不对了。