目录
一、Java简介:
1、Java特性:
简单
语法简单明了,容易掌握:语法规则和 C++ 类似,且对 C++ 进行了简化和提高。例如,Java 使用接口取代了多重继承,并取消了指针。
面向对象
面向对象是Java语言的基础,也是Java语言的重要特征。Java语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。
分布性
Java 的分布性包括操作分布和数据分布,其中操作分布是指在多个不同的主机上布置相关操作,而数据分布是将数据分别存放在多个不同的主机上,这些主机是网络中的不同成员。Java 可以凭借统一资源定位器(URL)访问网络对象,访问方式与访问本地系统相同。
可移植性
Java 程序具有与体系结构无关的特性,可以非常方便的移植到网络上的不同计算机中。同时,Java 的类库也实现了针对不同平台的接口,使得这些类库也可以被移植。
解释性
运行 Java 程序需要解释器。任何移植了 Java 解释器的计算机或其他设备都可以用 Java 字节码进行解释执行。字节码独立于平台,它本身携带了许多编译时的信息,使得连接开发过程更便捷。
安全性
Java 语言删除了类 C 语言中的指针和内存释放等语法,有效避免了用户对内存的非法操作。Java 程序代码要经过代码校验,指针校验等很多测试步骤才能运行,所以未经允许的 Java 程序不可能出现损害系统平台的行为,而且使用 Java 可以编写出防病毒和放修改的系统。
健壮性
Java 会检查程序在编译和运行时的错误,并消除错误。类型检查能帮助用户检查出开发早期出现的错误,集成工具的出现也使得 Java 程序的编译和运行更加容易。
多线程
多线程机制能够使应用程序在同一时间并行执行多项任务,且相应的同步机制可以保证不同线程能够正确地共享数据。使用多线程可以带来更好的交互能力和实时行为。
高性能
Java 编译后的字节码实在编译器中运行的,所以它的速度较多数交互式应用程序提高了很多。另外,字节码可以在程序运行时被翻译成特定平台的机器指令,从而进一步提高运行速度。
动态
Java 在很多方面比 C 和 C++ 更能够适应发展的环境,可以动态调整库中方法和增加变量,而客户端却不需要任何更改。在 Java 中进行动态调整是非常简单和直接的。
2、Java应用领域:
Java是独立与平台的,所以Java程序可以在便携式计算机、电视、手机和其他的大量电子设备上运行。Java的应用领域主要有以下方面:
- 桌面应用系统开发。
- 嵌入式系统开发。
- 电子商务应用。
- 企业级应用开发。
- 交互式系统开发。
- 多媒体系统开发。
- 分布式系统开发。
- Web应用系统开发
二、Java基础语法:
1、Java主类结构
第一个Java程序:
//例2.1
package package01;
public class hello_world {
/*第一个Java程序:
打印Hello World,这是一个Java程序。*/
static String str1 = "这是一个Java程序。";
public static void main(String[] args) {
String str2 = "Hello World!";
System.out.println(str2 +" "+ str1);
}
}
运行结果:Hello World! 这是一个Java程序。
类:Java的基本组成对象是类,类体中又包括属性与方法两部分。类是一个模板,它描述一类对象的行为和状态。在例2.1中就是一个类名为 package01 的类。
包:语句 package package01 为声明该类所在的包,package 为包的关键字。
对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
变量:通常将类的属性称为类的全局变量(成员变量),将方法中的属性称为局部变量。全局变量声明在类体中,局部变量声明在方法体中。在例2.1中 str1 是全局变量,str2 是局部变量。
方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。main() 方法是类体中的主方法,是程序开始执行的位置。public、static 和 void 分别是main()方法的权限修饰符、静态修饰符和返回值修饰符,Java程序中的 main() 方法声明为public static void。String[] args 是一个字符串类型的数组,他是 main() 方法的参数。
API类库:在Java语言中可以通过 import 关键字导入相关的类。在 JDK 的API中提供了130多个包,可以通过 JDK 的 API 文档来查看这些类,其中主要包括类的继承结构、类的应用、成员变量表、构造方法表等,并对每个变量的使用目的做了详细的描述。
2、基本数据类型
数值型 | 整数类型(byte、short、int、long) |
---|---|
浮点类型(float、double) | |
字符型 | |
布尔型 |
2.1、整数类型
整数类型用来存储整数数值,整数数据在Java程序中有3种表示形式:十进制、八进制(以0开头)、十六进制(以0X或0x开头)。
整形数据类型 | ||
数据类型 | 内存空间(8位等于1字节) | 取值范围 |
byte | 8位 | -128~127 |
short | 16位 | -32768~32767 |
int | 32位 | 负的2的31次方到正的2的31次方减1 |
long | 64位 | 负的2的63次方到正的2的63次方减1 |
2.2、浮点类型
浮点类型表示有小数部分的数字。Java语言中浮点类型有单精度浮点类型(float)和双精度浮点类型(double)。
浮点型数据类型 | ||
数据类型 | 内存空间(8位等于1字节) | 取值范围 |
float | 32位 | 3.4e-45~1.4e38 |
double | 64位 | 4.9e-324~1.8e308 |
默认情况下,小数都被看成 double 型,若使用 float 型小数,则需在小数后面添加F或f。double型可加 d/D 可不加。
2.3、字符类型
2.3.1char型
字符型变量定义用单引号表示,如 'c',每个字符都可与 unicode 表中的对应数字相互转换
如:
//例2.2
package package01;
public class hello_world {
public static void main(String[] args) {
char x = 'a';
System.out.println((int)x);
int b = 98;
System.out.println((char)b);
}
}
显示结果:
97
b
2.3.2转义字符
转义字符是一种特殊的字符变量,以反斜杠“\”开头,后跟一个或多个字符。转义字符具有特定的含义,Java中的转义字符如下表所示:
转义字符 | |
转义字符 | 含义 |
\ddd | 1~3位八进制数据所表示的字符,如\123 |
\uxxxx | 4位十六进制数据所表示的字符,如\u0052 |
\" | 双引号字符 |
\' | 单引号字符 |
\\ | 反斜杠字符 |
\t | 垂直制表符,将光标移到下一个制表符的位置 |
\r | 回车 |
\n | 换行 |
\b | 退格 |
\f | 换页 |
2.4、布尔类型
布尔类型又称逻辑类型,通过关键字 Boolean 来定义布尔类型常量,只有 true 和 false 两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中,作为判断条件。
2.5、类型转换
- 类型转换是将一个值从一种类型更改为另一种类型的过程。
- 从低精度数据类型向高精度数据类型转换,永远不会溢出,且总是成功的;而把高精度数据类型向低精度数据类型转换时,则会有信息丢失,有可能失败。
- 数据类型转换有两种方式:隐式转换与显示转换。
2.5.1隐式类型转换
定义:系统会自动执行从低级类型向高级类型的转换,无需程序员操作,这种类型转换称为隐式转换。
涉及类型转换的类型按精度由高到低排列的顺序为:double>float>long>int>short>byte
例如将int型变量为 double 变量赋值,int 型变量将隐式转换为 double 型变量。
int a = 321;double b = a;
输出结果为:321.0。
//例2.3
package package01;
public class hello_world {
public static void main(String[] args) {
byte isbyte = 123; //定义byte型变量,并赋值
int isint = 100; //定义int型变量,并赋值
float isfloat = 321f; //定义float型变量,并赋值
char ischar = 10; //定义char型变量,并赋值
double isdouble = 200; //定义double型变量,并赋值
//进行运算并输出
System.out.println("byte与int型数据运算结果为:"+(isbyte+isint));
System.out.println("byte与float型数据运算结果为:"+(isbyte+isfloat));
System.out.println("byte与char型数据运算结果为:"+(isbyte+ischar));
System.out.println("double与char型数据运算结果为:"+(isdouble+ischar));
}
}
输出结果为:
byte与int型数据运算结果为:223
byte与float型数据运算结果为:444.0
byte与char型数据运算结果为:133
double与char型数据运算结果为:210.0
2.5.2显式类型转换
显式类型转换也称强制类型转换,当把高精度的变量值赋给低精度的变量时,必须使用显式类型转换。如:
int a = (int) 2.11;
long b = (long) 9.85f;
int c = (int) 'd';