Java学习总结(一)
一、 Java平台
1、 Java SE
Java SE是Java Standard Edition,主要是面向桌面应用(Application)的版本。
Java SE中包含JRE和JDK以及核心类库,JRE为Java的运行环境,包含Java程序运行时所需要的Java虚拟机(也就是常说的JVM)。JDK为Java的开发工具包,JDK包含了JRE,同时还包括编译器、文档生成工具以及打包工具等。如果不应用与开发,只是要运行Java程序的话只有JRE即可。
Java其余的版本全部是以Java SE为基础的,Java SE的学习可以说是学习语法、面向对象思维、以及Java所提供的庞大的类库的使用。
2、 Java EE
Java EE是Java Enterprise Edition,主要应用于企业系统的开发、部署与管理。Java EE是以Java SE为基础的,在基础之上提供了一系列的服务、接口和协议,可以进行企业分布式系统、Web应用程序的开发。
JSP、Servlet、EJB、JNI以及Java Mail等都属于Java EE。
3、 Java ME
Java ME是Java Micro Edition,主要用于开发手机程序,以前的塞班操作系统有很多Java ME开发的应用,现在基本已经不使用了,不做过多介绍。
4、 Java虚拟机
Java可以实现跨平台的特性,主要是因为Java虚拟机的存在,针对不同的硬件及操作系统,Java提供了不同平台的Java虚拟机,使得Java程序可以在Java虚拟机环境中解释执行。所以Java程序在运行时无需考虑底层操作系统或硬件,只要有Java虚拟机环境即可(也就是安装了JRE的平台)。
5、 Java程序的执行过程
Java程序为一般为.java文件,当想要执行Java程序时,由编译器将.java文件进行编译,编译为字节码文件.class,然后由Java虚拟机中的解释器将字节码文件解释为计算机可以读懂的机器指令执行程序。
二、 标识符、关键字、保留字
1、 标识符
标识符命名规则:
(1) 标识符区分大小写。
(2) 首字母可以是字母、下划线(_)、以及美元符号(),但不可以是数字。(3)除了首字母之外的,可以是数字、字母、下换线、美元符号。(4)不可以使用与关键字重名的标识符。例:以下为合法标识符(person,boy,),但不可以是数字。
(3) 除了首字母之外的,可以是数字、字母、下换线、美元符号。
(4) 不可以使用与关键字重名的标识符。
例:以下为合法标识符(person,_boy,),但不可以是数字。(3)除了首字母之外的,可以是数字、字母、下换线、美元符号。(4)不可以使用与关键字重名的标识符。例:以下为合法标识符(person,boy,class),以下为不合法标识符(3girl,class,extends)。
2、 关键字
Java中的关键字是Java语言已经定义好的,不可以用作标识符。Java中有50 个关键字,如下表:
3、 保留字
Java中只有两个保留字,分别是goto以及const
goto:在C语言中为无限跳转,Java中取消了无限跳转,Java中跳转只能用continue、break以及return。
const:在其他语言中为常量声明标识符,Java中常量声明使用static以及final关键字即可。
三、 分隔符
Java中的分隔符有三种,分号(;)、花括号({})、以及空格换行或Tab。
分号:语句结束的标志。
花括号:表示语句块,在花括号中的语句为一个语句块。在类、方法的定义中,花括号中的语句为类或方法的主体。
空格或换行或Tab:Java代码中允许有这些分隔符,不会影响程序的运行,不限制使用次数。
四、 变量
定义后可以被改变的量就是变量。
变量的声明方法为:
数据类型 变量名 [=初始值];
变量根据作用域的不同可分为局部变量与成员变量,示例代码如下:
public class Test {
//声明变量a,a为成员变量
int a = 10;
public static void main(String[] args) {
//声明变量b,b为局部变量
int b = 20;
if (a > 5) {
int c = 30;
}
System.out.println(a);
System.out.println(b);
//下面的语句会报错,因为c定义在if语句块内部,外部无法访问
System.out.println(c);
}
}
成员变量可以在类内部的任何位置访问,局部变量的作用域只是当前语句块内部。
五、 常量
初始化后不能被改变的量即为常量,Java中定义常量使用final关键字。
Java中常量分为成员常量、局部常量、静态常量(static关键字)。示例代码如下:
public class Test {
//声明成员常量
final int a = 10;
//声明静态常量
public static final int b = 20;
public static void main(String[] args) {
//下面语句会报错,因为常量值不可修改
//b = 10;
if (b == 20) {
//声明局部常量
final int c = 30;
System.out.println(b);
System.out.println(c);
}
System.out.println(a);
//下面语句会报错,因为c为if语句块中的局部变量,外部无法访问
System.out.println(c);
}
}
常量中的成员常量与局部常量与变量作用域相同,需要强调静态常量的作用域是全局,外部类通过类名.变量名便可以直接访问。
六、 数据类型
1、 基本数据类型
Java中有8中基本数据类型,分别是
数值型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean
2、 数值型
byte 1字节(8位) -128~127
short 2字节(16位) -215 ~ 215 -1
int 4字节(32位) -231 ~ 231 -1
long 8字节(64位) -263 ~ 263 -1
Java中数值的默认类型是int,声明long类型的变量,需要在变量值后面加l(小写L),或L(大写L),一般使用L,便于查看。
声明数值型变量代码实例:
byte b = 1;
short s = 2;
int i = 10;
long l = 60L;
3、 浮点型
float 4字节(32位)
double 8字节(64位)
Java中浮点数默认类型是double,声明float类型变量时西药在变量值后面加f或F
声明浮点型变量代码实例:
float f = 1.1F;
double d = 2.2;
4、 数字表示
(1) 二进制:以0b或0B为前缀,如int a = 0b000111; 或int a = 0B000111;
(2) 八进制:以0为前缀,如int a = 0071
(3) 十六进制:以0x或0X为前缀,如int a = 0x1F; 或 int a = 0X1E;
(4) 指数表示法:2e2等价于2 * 102,e等价于10,e后面的数是e的幂
5、 字符型
Java中用单引号围起来的单个字符是字符类型,例如char c = ‘A’; c为字符类型。因为Java采用的是Unicode编码方式,一个字符占2个字节,所以是16位。
在字符型中有一些特殊的字符,被称作转义字符,下表为转义字符及他们的Unicode编码:
\t \u0009 水平制表符tab
\n \u000a 换行符
\r \u000d 回车符
\” \u0022 双引号
\’ \u0027 单引号
\\ \u005c 反斜线
6、 布尔型
Java中布尔型变量只有两个值true和false,不可以像C语言中一样被0和1代替。
7、 类型转换
(1) 自动类型转换
Java中数值型和浮点型变量可以自动转换类型,字节数小的变量可以自动转换为字节大的,例如:byte->short->int->long->float->double,其中需要注意,char可以转换为int型。
(2) 强制类型转换
在变量名值之前加 (数据类型) 可以实现强制类型转换。
float a = 1.0;
int b = (int)a;
8、 引用数据类型
引用数据类型表示的是一个变量指向的是一块内存空间,Java中一共有三种引用数据类型,分别是类、接口、数组。