一 Java 程序的种类

1)Java 小应用程序(Java Applet)

— 在Web浏览器中运行(内嵌Java虚拟机)

—特定标记

<APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET>

例:

package test;
import java.awt.*;
import java.applet.*;
public class MyJava extends Applet {
 /**
  *
  */
 private static final long serialVersionUID = -3219063098121056972L;
 public MyJava(){
  super();
 }
 public void paint(Graphics g){
  g.drawString("Hello World!", 20, 20);
 }
}

输出结果:

2)Java应用程序(Java Application)

—独立的Java程序

—程序入口方法:public static void main(String[] args){...}

Java Scprit

—嵌入在HTML文件中的脚本语言

—特定标记

  <script language=javascript>...</script>

—Netscape引入javascript

二 丰富的类库

Java提供了大量的类以满足网络化、多线程、面向对象系统的需要。

1.语言包提供包括字符串处理、多线程处理、例外处理、数学函数处理;

2.实用程序包提供哈希表、堆栈、可变数组、事件和日期;

3.输入输出包用统一的“流”模型来实现所有格式的I/O,包括文件系统、网络、输入;

4.低级网络包用于实现Socket编程;

5.抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件, 包括窗口、菜单、滚动条、对话框等,使得Java可以移植到不同平台的机器;

6.网络包支持Internet的TCP/IP协议,提供了与In-ternet的接口。它支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。

三 Java和C、C++

1. 全局变量

Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。例如: 
ClassGlobalVar{ public static global_var; } 
在类GlobalVar中定义变量global_var为public static,使得其它类可以访问和修改该变量。 Java对全局变量进行了更好的封装。而在C和C++中,依赖于不加封装的全局变量常常造成系统的崩溃。

2.Goto 
Java不支持C、C++中的goto语句,而是通过例外处理语句try,Catch, final等来代替C、C++中用goto来处理遇到错误时跳转的情况,使程序更可读且更结构化。

3.指针 
指针是C、C++中最灵活,也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性,造成系统的崩溃。而Java对指针进行完全的控制,程序员不能直接进行任何指针操作,例如把整数转化为指针,或者通过指针释放某一内存地址等。同时,数组作为类在Java 中实现,良好地解决了数组访问越界这一C、C++中不作检查的错误。

4.内存管理 
在C中,程序员通过库函数malloc()和free()来分配和释放内存,C++ 中则通过运算符new和delete来分配和释放内存。再次释放已释放的内存块或 未被分配的内存块,会造成系统的崩溃;同样,忘记释放不再使用的内存块也 会逐渐耗尽系统资源。而在Java中,所有的数据结构都是对象,通过运算符new 为它们分配内存堆。通过new得到对象的处理权,而实际分配给对象的内存可能 随程序运行而改变,Java对此自动地进行管理并且进行垃圾收集,有效防止了由 于程序员的误操作而导致的错误,并且更好地利用了系统资源。

5.数据类型的支持 
在C、C++中,对于不同的平台,编译器对于简单数据类型如int,float 等分别分配不同长度的字节数,例如:int在IBMPC中为16位,在VAX-11中为 32位,这导致了代码的不可移植性,但在Java中,对于这些数据类型总是分 配固定长度的位数,如对int型,它总占32位,这就保证了Java的平台无关性。

6.类型转换 
在C、C++中,可以通过指针进行任意的类型转换,常常带来不安全性, 而Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的 转换。

7.头文件 
C、C++中用头文件来声明类的原型以及全局变量、库函数等,在大的系统中,维护这些头文件是很困难的。而Java不支持头文件,类成员的类型和访问权限都封装在一个类中,运行时系统对访问进行控制,防止对私有成员的操作。同时,Java中用import语句来与其它类进行通讯,以便使用它们的方法。

8.结构和联合 
C、C++中的结构和联合中所有成员均为公有,这就带来了安全性问题。 Java中不包含结构和联合,所有的内容都封装在类中。

9.预处理 
C、C++中用宏定义来实现的代码给程序的可读性带来了困难。在Java中,不支持宏,它通过关键字final来声明一个常量,以实现宏定义中广泛使 用的常量定义。

最新文章

  1. Codeforces Round #383 (Div. 2) 解题报告
  2. ecshop上传图片2
  3. 【HDU】1847 Good Luck in CET-4 Everybody!
  4. MVC5为WebAPI添加命名空间的支持
  5. IOS列表实现动态多列
  6. VMware系统运维(十四)部署虚拟化桌面 Horzion View Manager 5.2 配置许可
  7. 在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口(老罗学习笔记4)
  8. javaweb学习总结十五(web开发的相关概念以及常用服务器介绍)
  9. java命令行运行main时jar及其配置
  10. hi3531的hifb显示1080p60Hz
  11. SecureCRT8.1发送命令到多个或所有linux终端
  12. Python3 File
  13. 性能测试day03_前端分析调优思路
  14. 【Django】网页跳转的问题
  15. rest framework错误笔记——身份验证和权限
  16. 新建oracle用户
  17. shell命令中用source 和sh(或者bash)执行脚本的区别,以及export的作用
  18. INSTALL_FAILED_CONFLICTING_PROVIDER
  19. Web4个实验题目DOM+JS
  20. Mysql数据库安装与配置

热门文章

  1. LUA OOP 单例模式实现的 一个 方案
  2. JQuery + JSON作为前后台数据交换格式实践
  3. GIS简单计算Helper类
  4. svg学习(二)
  5. Clob类型转化String类型
  6. 学生各门课程成绩统计SQL语句大全
  7. servlet1
  8. mysql 乱码问题
  9. JS去掉数组的重复项
  10. python(五)文件操作