JAVA语言之基础篇
JAVA语言之基础篇
(2011.09 陆岛整理)
JAVA的历史
Java技术是由美国Sun公司倡导和推出。其历史概要如下:
l 1990年,Sun公司James Gosling领导的小组设计了一种平台独立的语言Oak,主要用于为各种家用电器编写程序。
l 1995年1月,Oak被改名为Java;
l
l 1996年1月,Sun公司成立JavaSoft部,以开发、销售并支持基于Java技术的产品。同时推出Java开发工具包JDK(Java Development Kit)1.0。
l 1996年3月,Sun公司推出Java WorkShop。
l 1996年8月,JavaWorkShop成为Sun公司通过互联网提供的第一个产品。
l 1996年9月,Addison-Wesley和Sun公司推出Java虚拟机规范和Java类库。
l 1996年6月,Sun公司发布JSP1.0,同时推出JDK1.3和Java Web Server 2.0。公司发布JAVA的三个版本:标准版(J2SE),企业版(J2EE),微型版(J2ME);
l 1998年2月,JDK1.1累计被下载超过2,000,000次。
l 1999年11月,Sun公司发布JSP1.1,同时推出JSWDK
l 2000年9月,Sun公司发布JSP1.2和Java Servlet 2.3 API。
l 2002年2月,Sun公司发布J2SE1.4,至此JAVA的运算能力有了大幅提高。
l 2004年9月,Sun公司发布J2SE 1.5发布。这是一个里程碑式的版本,为了表示该版本的重要性,J2SE 1.5 更名为 Java SE 5.0
l 2006年12月,Sun公司布布 JRE 6.0
l 2009年4月,甲骨文74亿美元收购Sun。取得java的版权。从此 JAVA 属于 Oracle公司。
l 2010年9月,JDK7.0已经发布,增加了简单闭包功能。
l 2011年7月,甲骨文公司发布java7的正式版。
JAVA 语言的基本情况
Java语言是一种优秀的编程语言。它最大的优点就是与平台无关,在Windows 9x、Windows NT、Solaris、Linux、MacOS以及其它平台上,都可以使用相同的代码。“一次编写,到处运行”的特点,使其在互联网上被广泛采用。Java语言的语法结构与C++语言的语法结构十分相似,是一种比C++语言“还面向对象”的一种编程语言。
相当对C++,Java新特性包括:
1、提供了对内存的自动管理,程序员无需在程序中进行分配、释放内存,那些可怕的内存分配错误不会再打扰设计者了;
2、去除了C++语言中的令人费解、容易出错的“指针”,用其它方法来进行弥补;
3、避免了赋值语句(如a = 3)与逻辑运算语句(如a = = 3)的混淆;
4、取消了多重继承这一复杂的概念。
Java语言是一种解释型语言,相对于C/C++语言来说,用Java语言写出来的程序效率低,执行速度慢。但它正是通过在不同平台上运行Java解释器,对Java代码进行解释,来实现“一次编写,到处运行”的宏伟目标的。但由于Java语言采用了两种手段,使得其性能还是不错的。
1、Java语言源程序编写完成后,先使用Java伪编译器进行伪编译,将其转换为中间码(也称为字节码),再解释;
2、提供了一种“准实时”(Just-in-Time,JIT)编译器,当需要更快的速度时,可以使用JIT编译器将字节码转换成机器码,然后将其缓冲下来,这样速度就会更快。
Java是一种动态的语言,这表现在以下两个方面:
1、在Java语言中,可以简单、直观地查询运行时的信息;
2、可以将新代码加入到一个正在运行的程序中去。
Java编译器生成的是一种中性的对象文件格式。也就是说,Java编译器通过伪编译后,将生成一个与任何计算机体系统无关的“中性”的字节码。
Java通过Java虚拟机(JVM)作为可运行Java代码的假想计算机。JVM 通过在不同平台上运行Java解释器,对Java代码进行解释并执行。JVM根据操作系统不同有相应的版本。因此能实现在不同的操作系统上执行统一的JAVA语言。
最基本的Java程序
Java程序是由类(class)所组成,因此在完整的Java程序里,至少需要有一个类。如下:
范例:
public class Test //定义public类Test
{
…
}
Java程序是由一个或一个以上的类组合而成,程序起始的主体也是被包含在类之中。这个起始的地方称为main(),用左右大括号将属于main()段内容包围起来,称之为method(方法)。
main()方法为程序的主方法,在一个Java程序中有且只能有一个main()方法,它是程序运行的开端,通常看到的main() method如下面的语句片段所示:
范例:
public static void main(String args[]) // main() method,主程序开始
{
…
}
main() method之前必须加上public static void 这三个标识符。public代表main()公有的method;static表示main()在没有创建类对象的情况下,仍然可以被运行;void则表示main()方法没有返回值。Main后的括号()中的参数String args[]表示运行该程序时所需要的参数,这是固定的用法。
JAVA语法基础
Java程序的注释
单行注释: 就是在注释内容前面加双斜线(//)
如:
int num ; // 定义一个整数
多行注释: 就是在注释内容前面以单斜线加一个星形标记(/*)开头,并在注释内容末尾以一个星形标记加单斜线(*/)结束。
如下所示:
/*
int c = 10 ;
int x = 5 ;
*/
文档注释: 是以单斜线加两个星形标记(/**)开头,并以一个星形标记加单斜线(*/)结束。
用这种方法注释的内容会被解释成程序的正式文档,并能包含进如javadoc之类的工具生成的文档里,用以说明该程序的层次结构及其方法。
Java中的标识符
Java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是Java中的保留关键字。
·下面是合法的标识符:
yourname
your_name
_yourname
$yourname
·下面是非法的标识符:
class
67.9
Hello Careers
Java的关键字
和其他语言一样,Java中也有许多保留关键字,如public、static等,这些保留关键字不能当作标识符使用。下面列出了Java中的保留关键字,这些关键字并不需要读者去强记,因为一旦使用了这些关键字做标识符时,编辑器会自动提示错误。
Java中的保留关键字:
Abstract
boolean
break
byte
case
catch
char
class
continue
default do
double
else
extend
false
final
finally
float
for
if
implement import instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
synchronized super
this
throw
throws
transient
true
try
void
volatile
while
要特别注意的是,虽然goto、const在Java中并没有任何意义,却也是保留字,与其它的关键字一样,在程序里不能用来做为自定义的标识符。
Java的变量声明
变量的声明:变量类形 变量名称 [[符值符] 变量值];中间用空格分隔。
例如:
int N; // 声明N为整数变量
int N = 0; // 声明N为整数变量并将0赋予变量N
char C; // 声明C为整数字符变量
char C = ’A’; // 声明C为整数字符变量并将字符“A” 赋予变量C
可以同时声明多个变量,每个变量之间以逗号分开。
例如:
int num1, num2, num3; // 同时声明num,num1,num2为整数变量
Java的基本数据类型
类型 |
存储空间(字节) |
大小 |
|
byte (字节型) |
1 |
-128~127 |
|
short(短整型) |
2 |
-215~215-1 |
|
int(整型) |
4 |
-231~231-1 |
三种表示方式:十进制,八进制:以0开头,十二进制:以0x开头。 |
long(长整型) |
8 |
-263~263-1 |
Long类型可以在后面加 “l” 或 “L”,如 long longValue= |
float(浮点型) |
4 |
-3.403E38~3.403E38 |
float类型可以在后面加 “f”,如 float floatValue= |
double(双精度) |
8 |
-1.798E308~1.798E308 |
|
char(字符型) |
1 |
使用Unicode单字符 |
字符用英文的单引号(’)标识 |
Boolean(逻辑型) |
1 |
true/false |
|
|
|
|
|
数据类型的转换: int a = (int){0.25};
Java的运算符
算术运算符:
+ 加
- 减
* 乘
/ 除
% 取余
++ 累加1
-- 累减1
i++与++i的区别:i++ 是先将变量与其他运算符进行运算后,再执行++。++i 是先将执行++再将累后的i的结果与其他运算符进行运算。
例如:
int i = 1;
执行: int j = i++ + 10; // 结果是 j=11; i=2;
执行: int j = ++i + 10; // 结果是 j=12; i=2;
关系运算符:
> 大于
< 小于
>= 大于并等于
<= 小于并等于
== 等于
!= 不等于
逻辑运算符:
! 非
& 与
| 或
^ 异或
&& 短路与
|| 短路或
&&与|| 运算时,只要运算符中有一条符合条件即中止后面的表达式。
赋值运算符:=;
扩展的赋值运算符有:+=,-=,*=,/=;
i+=5 相当与 i = i + 5; 同理其他(-=,*=,/=)类似。
位运算符:
~ 按位非(NOT)(一元运算)
& 按位与(AND)
| 按位或(OR)
^ 按位异或(XOR)
>> 右移
<< 左移
&= 按位与赋值
|= 按位或赋值
^= 按位异或赋值
>>= 右移赋值
<<= 左移赋值
>>>= 右移赋值,左边空出的位以0填充
>>> 右移,左边空出的位以0填充