首先,Java与C/C++相比。Java语言是一种完全的面向对象语言,虽然它的底层(运行时库)是用C语言开发的,可是并不依赖于C。因为Java的运行是在运行时库的支持下进行的,所以运行效率比起可以更接近底层的C/C++来说效率会有所影响,不过Java的类库采用很好的设计理念,非常好用,也非常实用,已经成为业界的一种标准开发孕育。它的跨平台的特性受到开发者的青睐,只需要开发一次就能在所有安装了Java运行时库的环境上运行。
其次,Java与C#相比。C#是微软开发的一种编程语言,语法类似Java,几乎就是Java的翻版。运行原理和Java也类似,也是通过运行时库的支持运行。不过支持的平台还很有限。Java几乎被所有平台支持,而C#目前只被Windows和Linux支持,Windows下的支持当然是由微软自己开发的,而Linux下的支持则有mono支持。实际上,mono也是把C#应用转化为Java应用而已,所以本质上,C#仍然只是被微软自己的操作系统支持。应用平台受到限制,是它最大的缺点。
JVM:Java虚拟机,Java Virtual Machine的缩写。是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 JDK:Java开发工具包,Java Development Kit的缩写。JDK是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。 JRE:Java运行环境,Java Runtime Environment的缩写。运行Java程序所必须的环境的集合,包含JVM标准实现及Java核心类库。 JavaSE:Java Standard Edition,标准版,是我们常用的一个版本,从JDK 5.0开始,改名为JavaSE,主要用于桌面应用软件的编程。 JavaEE:Java Enterprise Edition,企业版。JavaEE是J2EE的一个新的名称,主要用于分布式的网络程序的开发。 JavaME:Java Micro Edition,是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供Java语言平台,包括虚拟机和一系列标准化的Java API。 GC:垃圾回收,Garbage Collection的缩写。当Java虚拟机发觉内存资源紧张时,则会自动地去清理无用对象(没有被引用到的对象)所占用的内存空间。
每个Java程序对应于一个JVM实例,当一个Java程序运行时就创建一个JVM实例,因此JVM实例的个数取决于同时执行的程序个数。
Java是利用JVM(Java虚拟机)实现跨平台的。 Java源代码(✽.java)经过Java编译器编译成Java字节码( ✽.class),执行Java字节码,Java字节码经过JVM解释为具体平台的具体指令,并执行。不同平台有不同的JVM,主流平台都提供了JVM,所以Java字节码可以在主流平台上能够解释执行。在这个意义上Java是跨平台的,也就是说:Java的字节码是跨平台的。
在Java中,类的命名、方法的命名、变量的命名、包名的命名以及常量的命名首先必须符合Java标识符的命名规则,规则如下: 1)可以以字母、数字、”_”、”$”符组成; 2)首字符不能以数字开头; 3)中文可以作为变量名,但不提倡使用; 4)Java大小写敏感,命名变量时需要注意; 5)不能使用Java保留字(一些Java语言规定好的,有特殊含义的字符),如:int、if、for、break等。
其次,类的命名、方法的命名、变量的命名、包名的命名以及常量的命名要符合如下规范: 1)类命名规范:首字母大写,如果由多个单词合成一个类名,要求每个单词的首字母也要大写,如:HelloWorld。 2)方法命名规范:首字母小写,中间的每个单词的首字母都要大写,如:getName。 3)变量的命名规范:变量的命名规范和方法一样,首字母小写,中间的每个单词的首字母都要大写,如:name。 4)包的命名规范:Java包的名字都是有小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。例如:”com.sun.swt”一般公司命名会以”com.公司名.项目名.模块名”开头,所以会长一点,如com.land.oa.emp.struts.action。 5)常量的命名规范:基本数据类型的常量名为全大写,如果是由多个单词构成,可以用下划线隔开,如:WEEK_OF_MONTH。
在Java中有三种注释类型: 1)单行注释符号是”//”,只能注释一行。 2)块注释符号是”/* */”,可以跨多行。 3)javadoc注释符号是”/** */”,可以跨多行,而且生成javadoc时,这样的注释会被生成标准的Java API注释。
增加代码的清晰度和可观性常用的方法如下: 1)给代码添加注释。 2)类名包名等命名规范化。 3)缩进排版规范。 4)添加异常的处理。 5)使用测试类和测试方法。
在Java中,void仅用于无返回值的方法上,例如:
public void a(){}该方法不需要返回数据,故返回值类型设置为void。 null则代表对象/变量的值,例如:
String a = null;表示变量a没有被实例化,没有指向具体的内存地址。
Java中结构化程序设计有三种基本流程,分别是顺序、选择、循环。其中,顺序表示程序中的各操作是按照它们出现的先后顺序执行的;选择对应Java语言中的if语句和switch语句;循环对应Java语言中的for语句、do-while语句以及while语句。