尽管以C++为基础,但Java是一种更纯粹的面向对象程序设计语言,对于Java来说一切皆对象。
一、数据类型
Java数据类型大小与机器结构无关,这也正是其可移植的原因之一。
基本数据类型与C++差不多,包括boolean(1)、char(16)、byte(8)、short(16)、int(32)、long(64)、float(32)、double(64)、void。
与C++的差异在于红色部分,自己体会。
此外,数据类型全部是有符号的,没有无符号数据类型。
二、作用域
与C++一样,Java的作用域也由花括号的位置决定,但是Java不存在变量覆盖,一切覆盖都是不允许的,比如:
{
int x = 10;
{
int x = 100; /* illegal */
}
}
三、垃圾回收
C++中new出来的对象必须delete,否则会内存泄露,但是Java中的垃圾收集器能自动查找不再被引用的new出来的对象,并自动释放内存,因此,这等低级操作就不劳您大驾了,忘记内存泄露吧。
四、命名空间
C++中用using namespace来解决命名冲突问题,而Java采用与Internet域名类似的方式来解决此问题,只不过Java设计者鼓励码农们反转使用自己的“Internet域名”,比如:com.scq.utility.logs。
五、前向声明
在C++中如果要引用一个未出现的类,必须前向声明class xxx或者包含头文件#include "xxx.h",而Java不需要,只需要用import关键字告诉编译器希望使用的类即可:
import java.util.Vector
当然,如果想使用util中的几个类,也可以使用通配符*来包含util中所有的类,而不必逐一声明,比如:
import java.util.*
六、数值转换
在往屏幕输出或者写日志时,通常都会将一串各种类型转换为字符串,如果是C++就会伴随着各种格式化字符,比如:%d,在Java中,一切都如此简单,只需在字符串和int之间用+连接即可,这样Java会自动将int转换为字符串并与之前的字符串连接在一起,比如:
System.out.println("Total Memory=" + rt.totalMemory() + "Free Memory=" + rt.freeMemory());
七、类与文件
如果创建一个独立的程序,文件中的类名必须与文件名相同,且类里必须包含一个名为main()的方法,形式如下:
public static void main(String[] args) {}
举例说明如下:
// HelloWorld.java
import java.util.*
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
注意类中大括号}后面无;,这点Java不同于C++。
八、注释文档
Java与C++一样都支持//和/* ... */,但是Java提供了用于提取注释的工具javadoc,javadoc采用了部分来自Java编译器的技术,查找程序中的特殊注释标记,以提取标记指示的信息和毗邻注释的类名或方法名,以生成专业程序文档,avadoc的输出是一个HTML文件。
所有javadoc命令都只能出现于/**注释中,注释结束于*/,注释文档有一些隐性规则,即一个类注释正好位于一个类定义之前,一个变量注释正好位于变量定义之前,一个方法注释正好位于方法定义之前,举例说明如下:
/** 一个类注释 */
public class DocTest {
/** 一个变量注释 */
public int iVariant;
/** 一个方法注释 */
public void isPrime() {}
}
需要注意的是:javadoc只能处理public和protected成员注释文档,其它都被忽略。
阅读(6134) | 评论(1) | 转发(3) |