a)连网
b)连接(通过JDBC)
c)多线程
d)分布式对象(通过RMI和CORBA)
e)压缩
f)商贸
由于这些库简单易用,而且非常标准,所以能极大加快应用程序的开发速度。
(41) Java 1.1包含了Java Beans标准,后者可创建在可视编程环境中使用的组件。
由于遵守同样的标准,所以可视组件能够在所有厂商的开发环境中使用。由于我们并不依赖一家厂商的方案进行可视组件的设计,所以组件的选择余地会加大,并可提高组件的效能。除此之外,Java Beans的设计非常简单,便于程序员理解;而那些由不同的厂商开发的专用组件框架则要求进行更深入的学习。(42) 若访问Java句柄失败,就会丢弃一次异常。
这种丢弃测试并不一定要正好在使用一个句柄之前进行。根据Java的设计规范,只是说异常必须以某种形式丢弃。许多C运行期系统也能丢弃那些由于指针错误造成的异常。
(43) Java通常显得更为健壮,为此采取的手段如下:
a)对象句柄初始化成null(一个关键字)
b)句柄肯定会得到检查,并在出错时丢弃异常
c)所有数组访问都会得到检查,及时发现边界违例情况
d)自动垃圾收集,防止出现内存漏洞
e)明确、“傻瓜式”的异常控制机制
f)为多线程提供了简单的语言支持
g)对网络程序片进行字节码校验
(44)自动内存管理机制
Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类于c的new操作符。下面的语句由一个建立了一个类Read的对象,然后调用该对象的work方法:
Readr=new Read();
r.work();
语句Readr=new Read();在堆栈结构上建立了一个Read的实例。Java自动进行无用内存回收操作,不需要程序员进行删除。而c十十中必须由程序来释放内存资源 (就是通过new和delete运算符来分配和释放内存),增加了程序设计者的负担。Java中当一个对象不被再用到时,无用内存回收器将给它加上标签以 示删除。JAVA里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。
C有栈内存与堆内存两种分配方式,程序员可以根据自己的需要来选择使用哪种内存分配的方式,Java中对象只有堆分配。区别是C中的堆分配必须程 序员手动释放,Java通过垃圾收集器自动释放。其实Java和C的区别也主要在这里:对于一个问题,C实现了几乎所有的解决方法,程序员可以根 据自己的需要来选择一种实现方法;而Java只提供一两种实现方法,但通常是他认为最容易用最灵活的方法。
(45)Java不支持缺省函数参数,而c十十支持
在c中,代码组织在函数中,函数可以访问程序的全局变量。c十十增加了类,提供了类算法,该算法是与类相连的函数,c十十类方法与Java类方法十分相 ,然而,由于c十十仍然支持c,所以不能阻止c十十开发人员使用函数,结果函数和方法混合使用使得程序比较混乱。(#ff0000也就是说C++里边既 有方法又有函数,我认为不能作为等同的概念来把二者混为一谈。)
Java不再有函数在Java程序语言中,去掉了程序向导语言中最重要的单元--函数(Function)。如果我们以对象向导的观念来看待函数,就可以 了解函数在对象向导的概念中,是不必要的。在对象向导的程序观念里,对象的数据才是真正的主体,而处理对象数据的方法则必须依附在对象内才有意义。因此, 去掉函数并不表示不再有子程序等模组化程序的概念,相反地,是利用对象中的方法来取代函数,再一次强化对向导的发展策略。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-58491-13.html
吴亦凡
小米公司知道国家质检总局抢不到小米手机后马上赶过来送上几部意思意思