理解Java语言——Java学习笔记(一)

1.        Java编程语言的主要目标

Java编程语言的主要目标是提供一种易于编程的语言,消除其他语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。利用面向对象的概念使程序真正的成为可视化程序,为使代码尽可能清晰合理、简明流程提供了一种方法。

为提高开发速度和代码可移植性提供一种解释环境,为运行不止一个活动线程的程序提供了一种方式,通过允许下载代码模块,从而在程序运行时也可以动态支持程序改变。为那些保证安全性而装载的代码模块提供了一种检查方法。

2.        Java语言的特性

语法简单

面向对象

分布性

可移植性

安全性

健壮性

解释性

多线程

动态性和并发性

3.        Java中的面向对象编程

封装:将信息隐藏,隐藏对象的实现细节,将东西包装在一起,然后以新的完整形式呈现出来。

继承和子类:Java中只支持单一继承,在Java中通过接口可以实现多重继承,但接口的概念简单,使用方便,而且不仅仅限于继承,它使多个不相关的类可以具有相同的方法。

多态

模板和泛型(template/generic)

注解

4.        Java与C/C++的比较

(1)      全局变量

在Java中,不能在所有类之外定义全局变量,只能在类中定义公用、静态的变量来实现一个全局变量。

(2)      goto

Java不支持C/C++中的goto语句,而是通过异常处理语句try、catch、finally等来代替C/C++中用goto来处理遇到错误时跳转的情况,使程序可读性更强且结构清晰。

goto语句是Java中的保留关键字,没有在Java中使用。

(3)      指针

指针是C/C++中最灵活,也是最容易产生错误的数据类型。而Java对指针进行完全的控制,程序员不能直接进行任何指针操作。

(4)      内存管理

在C语言中,程序员通过库函数malloc()和free()来分配和释放内存,C++中则通过运算符new和delete来分配和释放内存。而在Java中,所有的数据结构都是对象,通过运算符new为它们分配内存堆。通过new得到对象的处理权,而实际分配给对象的内存可能随程序运行而改变,Java对此自动地进行管理并且进行垃圾收集,有效防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。

(5)      数据类型的支持

在C/C++中,对于不同的平台,编译器对于简单数据类型如int、float等分配不同长度的字节数,例如int在IBM PC中为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来声明一个常量,以实现宏定义中广泛使用的常量定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值