第1章 Java语言概述
Java语言是由Sun公司(已被Oracle公司收购)于1995年5月23日正式推出的纯面向对象的程序设计语言。
具有安全性、简单性、易用性和平台无关性。
JDK是Sun公司推出的Java开发工具包,包括Java类库、Java编译器、Java解释器、Java运行时环境和Java命令行工具,提供了Java程序的命令行编译和运行方式。
编译:javac helloworld.java
生成helloworld.class
运行:java helloworld
Java语言的发展历史:Gosling开发了Java的前身Oak语言。
Java语言的特点:简单性,面向对象,安全性,平台独立,多线程(具备内置的多线程功能),网络功能(是一种网络语言),执行效率(执行速度直逼C与C++)。
平台独立:Java源程序经过编译后生成字节码Byte(Code)文件,而字节码与具体的计算机无关。只要计算机安装了能解释执行字节码的Java虚拟机(Java
Virtual Machine, JVM),就可以执行字节码文件。
任何可以运行Java字节码的程序都可以看作Java的虚拟机,如浏览器和Java的开发工具等都可以看作JVM的一部分。
大部分高级语言的源程序必须经过编译或解释程序翻译成机器语言才能执行,如C、C++等属于编译性语言,BASIC和Lisp属于解释性语言。Java程序比较特殊,需要先经过编译,再经过解释才能执行。
Java源程序 ——(编译)——> 字节码文件.class ——(解释)——> 计算机执行字节码(机器码)
(字节码:与平台无关的中间编码)
JDK不提供程序的编辑环境和可视化的集成开发环境(IDE),Java的IDE有Borland公司的JBuilder,Xinox公司的JCreator,以及开放源代码的Eclipse等。
第2章 Java语言基础
Java使用Unicode标准字符集。Unicode字符集采用16位编码,最多可以表示65535个字符(2^16-1)。Unicode字符集的前256个字符与ASCII字符集(8位编码)完全一致。
标识符
标识符:就是一个名称,用来标识变量、常量、方法、类、对象等元素。由字母、数字、下划线和美元符号组成。第一个字符不能是数字。
标识符长度不限,但不宜过长。标识符区分大小写。
数据类型
Java的数据类型分为两大类:基本数据类型和引用数据类型。
基本数据类型:变量中保存数据值,int, float, char, boolean等
引用数据类型:变量中保存地址,array, class, interface等
第6章 类和对象
Java是纯面向对象的程序设计语言,每个程序中至少包含一个类,所有数据和操作都封装在类中。类要先声明后使用。
对象初始化
构造方法:①没有返回值,构造方法前面不能有返回值类型,也不能有void。
②程序中不能直接调用构造方法。当用new运算符实例化一个对象时,系统自动调用构造方法对成员变量进行初始化。构造方法仅用于实例化对象。
③一个类中可以声明多个构造方法(多态),但各构造方法的参数表不能相同。
对象销毁
通过new运算符实例化对象时,分配空间。
资源回收机制:自动销毁无用对象,回收其所占用的存储空间。
如果需要主动释放对象/在释放对象时执行特定操作,则在类中声明析构方法 finalize()
方法。当系统销毁对象时将自动执行finalize()
方法,对象也可以调用finalize()
方法销毁自己。
finalize()
方法没有参数,也没有返回值(有void!),一个类只能有一个finalize()
方法:
public void finalize()
{
方法体;
}
访问权限
Java为类设置了两种访问权限,为类中的成员变量和方法设置了四种访问权限:
类访问权限:public / 默认(不能使用protected / private)
一个Java源程序中必须且只能有一个类使用public修饰符,且该类名字和源程序文件名字相同。程序中必须包含main()方法的类。
权限 | 本类 | 本类所在包 | 其他包中的子类 | 其他包中的非子类 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
默认 | √ | √ | ||
private | √ |
类成员
Java类中包含两种成员:实例成员和类成员
实例成员:属于对象,只能通过对象访问实例成员变量/调用实例成员方法
类成员:属于类,使用static修饰,也称静态成员。通过类名来访问类成员变量/调用类成员方法。没有创建对象也可以引用类成员,类成员也可以通过对象名引用。
系统为每个对象的每个成员变量分配一个存储单元,仅为类成员变量分配一个存储单元,所有的对象共享一个类成员变量。
类成员方法只可以访问类成员变量/调用类成员方法,不能访问实例成员变量/调用类成员方法。实例成员方法都可以访问。
random() 返回一个double型随机数,此方法不带参数
随机数范围:[0.0,1.0)
产生固定范围内的随机整数:
(int)((上界-下界+1)*Math.random()+下界)
第7章 类的继承和多态
类的最高层是Object类,所有类都继承了Object类。
抽象方法在不同的子类中表现多态性。
抽象类中可以声明抽象方法、普通成员方法和构造方法。
构造方法不能声明为抽象方法。
一个接口可以继承其他接口,称为父接口?
接口中的成员变量:public, static, final
成员方法:public, abstract
实现接口的类必须实现接口中的所有抽象方法,并且实现抽象方法时,需要指定public权限,否则会产生访问权限错误。
可以声明接口变量,将实现接口的类的对象赋给接口变量,可以将子类对象赋给父类对象。
包
包提供了类的访问、保护和名字空间管理机制。
一个Java源程序文件为一个编译单元,一个编译单元只能包含一个public类。
不同的包中允许有同名的类和接口,包和类的关系,就像文件夹和文件的关系。
声明包:package xxx
使用包中的类:包名.类名
包名.接口名
父包.子包.类名
导入包中的类(导入后引用类或接口不用加包名了):import 包.类
, import 包.接口
,import 包.*
第9章 异常处理
catch(OverFlowException e){
System.out.println(e);
System.exit(0);
}
Java抽象窗口工具集AWT
在java.awt包中。
使用多线程技术可以使系统同时运行多个执行体。
JSP:Java Server Page