当前位置:首页 > 嵌入式 > 嵌入式教程

1.java在虚拟机上运行   java源代码并不是被编译成为普通的机器代码。而是被翻译成为虚拟机可以执行的代码。一个java解释器最终执行这些代码。
  java源代码并不是被编译成为普通的机器代码。而是被翻译成为虚拟机可以执行的代码。一个java解释器最终执行这些代码。这其中没有连接的过程;解释在需要的时候动态的加载一些类;   2.java是完全面向对象的   java是一种完全面向对象的语言。这意味着你对任何一个java对象所做的动作都是通过一个方法实现的。第一点就是,再也没有没有主函数这样的孤立的东西了。取而代之的是,你必须开始用一个对象的看法看待一个程序,一个类的对象。但是这个对象又什么对象呢?大多数java程序只是简单的通过继承java基础类object来实现所需要的东西,但是你可以通过创建程序基础类用于多个特性相似的应用程序来节省时间。   严格的面向对象的规定意味着理用原有的c/c++代码不可以直接不加改动的使用;系统调用也是这样的。c++中,你可以通过在c++正常的命名空间外声明extern"c"来使用原有的c的过程调用,包括系统调用。   在java中,只有一个类似的安全回溯的方法,但是并不是十分简单的方法。你必须定义一个本地方法,其目的是为c语言提供接口,然后提供连接的介质。java环境提供了完成这种任务的工具,但是整个过程和c++中提供的extern比微不足道,完成使用c++类的过程则更加复杂,因为这样会引入对c的借口和c函数和c++成员函数的问题。   幸运的是,许多常用的系统实用工具函数已经在系统类中的方法中提供出来,但是这些明显没有包含经过许多年来你所创建的那些类和过程。所以,在你需要的时候你应该去钻研一下。   3.java中没有独立的头文件   在java中,关于类的一切东西都被放到一个单独的文件中。方法的位置只可能在一个地方出现,一个方法的实现必须在它的定义过程中同时进行。这样做得优点是在实现程序的时候不容易因为文件的非同步错误而失败,或者获取到一个没有实现的声明。类的声明可以被java解释器利用甚至是从一个编译过的单元中获取,所以不再需要有头文件,只要有编译过的文件。   这样做的缺点与我们编程的过程有关。许多c++程序员喜欢用头文件来代替文档。要看一个成员函数的接口参数,只需要看头文件中的声明即可。你可以经常的看头文件即可了解怎样去使用这个类。在java中,没有这样的总结。因为实现类方法的代码必须在方法定义的时候出现,而且,对于一个单独的函数的代码来说就经常占据了一整页乃至更多。这样,很难通过看java的代码就初步了解类是怎样使用的。你必须为你需要的类准备足够多的文档。不言而喻,再处理非商业类库的时候文档是极度缺乏的。   在当先的java环境中提供了两个工具来补偿这些,javap来打印类标识,javadoc为嵌入式程序提供html文档。   4.用package来分解java命名空间   在大的c++工程中经常遇到的一个问题是命名空间--怎样保证工程的一些程序员不会创建和另一些程序员一样名字的类?更糟糕的是,供应商可能会提供一个包含和你的类一样名字的类的库。有许多方法可以解决这一问题,但是很可能在问题发现之前工程已经启动,改正错误是需要付出许多痛苦的。   java通过"package"这个概念解决了这个问题,package有效地通过通过集合类划分了命名空间。在不同包内的两个同名的类仍然是不同的。关键问题就变成了类是否放置到相应的包中。   记住,java并没有解决命名冲突的问题。扩展一个基类而引起了派生类的冲突。比如说,如果你最喜欢的供应商提供了一些类,然后你把它们用做基类并且派生有一个foo方法的类,当供应商提供一个新版本的类的时候就可能出现,如果供应商业也在新类中提供了一个foo的方法。   5.异常是java的重要特性   在c++中,异常和异常处理是十分深奥的事情;许多c++程序员从没有处理过它们甚至不知道它们是何物。异常是在正常的过程中出现的未预料的错误,因此,它们不会从方法中返回,或者作为参数传入;但是,它们不能被忽略!这里的一个例子是计算一个书的方根的方法。正常的接口形式是将一个正数作为参数传入方法,然后方法会返回一个正实数作为结果,方法可以检验这些并且在异常产生的时候抛出异常。在大多数系统中,程序员并不是必须这样做,这样,一个没有考虑到的异常可以使程序不正常的退出。   在java中,异常已经成为语言中非常成熟的部分。方法的说明中就包含了异常的信息,程序处理器也强制检验如果你使用了一个能够产生异常的方法,你就必须检查异常是否发生。几乎所有的java程序员都会遇到异常的情况,因为许多非常有用的库中的类都会抛出异常。处理异常并不难,但是在一些时候是需要注意的。一个方法的文档会指明方法抛出的异常的类型。如果你忘了,不要

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

好的单片机编程软件受到众多开发人员青睐,而对单片机编程软件了解较多的朋友都知道,目前市场上主要流通的单片机编程软件为Keil和IAR。本文中,主要为大家讲解IAR单片机编程软件的基础教程。如果你对IAR存在一定兴趣,不妨...

关键字: iar 单片机编程软件 基础教程

所谓动态内存分配(Dynamic Memory Allocation)就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序...

关键字: 内存 动态内存 基础教程 存储空间

PC在刚诞生的时候,其实是没有GPU的,所有的图形计算都由CPU来计算。后来人们意识到CPU做图形计算太慢了,于是他们设计了专门的图形加速卡用来帮忙处理图形计算,再后来,NVIDIA提出了GPU的概念,将GPU提升到了一...

关键字: CPU GPU pc 基础教程

我们都知道固态硬盘采用闪存颗粒NAND Flash作为存储介质,所以它是固态硬盘中最重要的构成部分,其好坏也就决定着固态硬盘质量的好坏,而我们目前常见的NAND闪存主要有四种类型:Single Level Cell(SL...

关键字: qlc 固态硬盘 基础教程 闪存芯片

随着电子技术、无线通信技术的蓬勃发展,出现了各种非接触式无线数据传输标准。技术的不断推进升级,使得人们对这些标准提出了更加严格的要求,一种低成本实现非接触式无线数据传输的技术也由此应运而生。

关键字: NFC 基础教程 无线传输 无线技术

HDMI(高清晰度多媒体接口)是首个也是业界唯一支持的不压缩全数字的音频/ 视频接口。HDMI 通过在一条线缆中传输高清晰、全数字的音频和视频内容,极大简化了布线,为消费者提供最高质量的家庭影院体验。HDMI 在单线缆中...

关键字: dtv hdmi 基础教程 音频接口

在有对Flash写入或擦除操作的代码中,如果用户误调用了写入或擦除函数或者由于程序跑飞而恰好执行了Flash擦除或写入函数,这自然会导致数据丢失或改变。

关键字: Flash rom 基础教程 存储器

对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别\"符号位\"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法.

关键字: 基础教程 补码 计算原理 数据表示

到目前为止,我们学习了十进制、二进制、八进制、十六进制等用来代表实际数值的数,称为真值,这些数我们再日常生活中都会使用到,那么在计算机中数值是怎么来表示的呢?

关键字: 原码 反码 基础教程 数据格式 补码

随着手机、智能手表等便携式设备的普及,用户对GUI的要求越来越高,嵌入式系统对GUI的需求也越来越迫切,本文将为大家介绍一个轻型、占用资源少、高性能、高可靠、便于移植、可配置及美观的GUI编程框架。

关键字: gui 图形 基础教程 嵌入式
关闭
关闭