1.标识符和关键字
一个JAVA程序由类和对象组成,而类和对象又是由属性(通常是变量)和方法(通常是函数)
等组成.
1-1.标识符
JAVA语言中,用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效
字符序列,称为"标识符".好比C语言里面的变量名、函数名等.JAVA语言使用标识符需要注意
如下两点:
1-1-1.合法性:
标识符由字母、数字、下划线和美元符号组成,但是第一个字符不能是数字开头.例如:
下面的都是合法的标识符:
God class_3 _pirate $money
下面的都是非法的标识符:
3_loser
1-1-2.大小字敏感:
变量god和God是不同的标识.
2.关键字
和C语言也有关键字一样,如int是C语言的关键字.JAVA语言也有其关键字.JAVA语言的关键
字列表如下:
关键字:
abstract:
修饰符号,声明抽象方法和抽象类.声明方法时表示该方法只有特征签名,没有具体实现.而是把具体实现留给继承该类的子类,并且抽象类不能直接用new来实例化对象即使有公共的构造函数;
assert:
断言,用于定位程序错误.它是一种程序的调试,测试方式;
boolean:
布尔数据类型,属于基本数据类型,默认情况下boolean的值为false;
break:
流程控制,用于终止switch或循环语句块.Break终止单循环语句,加上标签后就是终止有标签标记的外层循环.
byte:
字节型(8位整型)属于基本数据类型;
case:
用于switch语句中标记一个判断分支.和switch的表达式的值进行比较,在相等的情况下执行case语句;
catch:
标记try异常处理语句的处理代码分支.Try 与catch一起用来捕获程序异常;
char:
16位的Unicode编码字符型,属于基本数据类型;
class:
用于声明java类;
continue:
流程控制,用于跳过本次循环中未完成部分而继续下一次循环.和break类似,可以在continue后加标签来跳过外层循环的本次运行;
default:
用于switch语句中标记默认的分支.即在所有case语句都不执行是执行该语句;
do:
标记do/while循环的开始,用来声明一个循环,这个循环的结束条件可以通过while关键字设置;
double:
双精度浮点数,属于基本数据类型.
else:
标记if分支的否定分支.即在if条件不满足的情况下执行该语句;
extends:
用于标记java类间的继承关系;
final:
表明终态性,用于声明不允许被继承的类和不允许被重写的方法和常量.它只能定义一个实体一次,以后不能改变它或继承它.也就是说,一个final修饰的类不能被子类化,
一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值;
finally:
标记try异常处理语句的无条件执行代码分支.用来执行一段代码不管在前面定义的try语句中是否有异常或运行时错误发生;
float:
单精度浮点型,属于基本数据类型;
for:
标记for循环;
if:
标记if分支语句;
implements:
表明java类接口间的实现关系,它在类的声明中是可选的,用来指明当前类实现的接口;
import:
导入软件包.在源文件的开始部分指明后面将要引用的一个类或整个包,这样就不必在使用的时候加上包的名字;
instanceof:
检测某个对象是否是某个特定类的实例.即用来测试第一个参数的运行时类型是否和第二个参数兼容;
int:
基本数据类型-32位整型;
interface:
声明java接口类型;
long:
基本数据类型-长整型;
native:
用于声明本地方法-无方法体,通过调用底层代码来实现其功能.它用来声明本机方法(native method)的.一旦声明,这些本机方法可以在Java程序中被调用,就像调用其他Java方法一样.native method 用C/C++语言实现,并且被编译成DLL,这些函数的实现体在DLL中,在Java中本机方法体只是一个分号.
例如:
向操作系统请求机器的CPU编号方法,如下:
public native int getCPUID();
native method 以可以被重载或者覆盖,也可以是final, static, synchronized, public, protected, private 的.但是本机方法不能声明为abstract或者strictfp类型.
new:
用于创建新对象.即实例化一个对象;
null:
标记一个空的引用;
package:
用于声明软件包;
private:
访问控制修饰符,限制某成员只能在本类中直接被访问.用在方法或变量的声中.它表示这个方法或变量只能被这个类的其它元素所访问;
protected:
访问控制修饰符,限制某成员只能在本类,同一包及子类中被直接访问.在方法和变量的声明中使用,它表示这个方法或变量只能被同一个类中的,子类中的或者同一个包中的类中的元素所访问;
public:
访问控制修饰符,标记某成员可以在任何场合可以被直接访问.在方法和变量的声明中使用,它表示这个方法或变量能够被其它类中的元素访问;
return:
如果一个方法不为void,即有返回值的时候,用此关键字终止方法的运行并返回处理结果给调用环境.简单的说就是用来结束一个方法的执行.它后面可以跟一个方法声明中要求的值;
short:
基本数据类型,16位的短整型;
static:
修饰符,用于声明类成员――由整个类共有而不是该类每个实例专属.即在访问权限允许的情况下,可以不用new该类的对象,直接可以用类名加"."调用;
strictfp:
表明浮点数时采用严格的规则――使用扩展的尾数以及避免精度损失但可以避免产生数据溢出;
super:
在子类表明父类成员或在构造方法中调用父类的构造方法.
swtich:
表明switch分支语句;
synchronized:
同步处理标记,用于多线程共享数据时,在一个方法或语句块的范围锁定一个对象;
this:
标记方法的当前对象,或在构造方法中调用同一个类的其他重载构造方法.用来代表它出现的类的一个实例.this可以用来访问类变量和类方法;
throw:
显示抛出异常.它允许用户抛出一个exception对象或者任何实现throwable的对象;
throws:
在方法声明中表明其可能抛出的异常.它用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层;
transient:
用于标记不允许被序列化处理的成员对象.用来表示一个域不是该对象串行化的一部分.当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的;
try:
标记一段可能产生异常的代码片断.用来定义一个可能抛出异常语句块.如果一个异常被抛出,一个可选的catch语句块会处理try语句块中抛出的异常.同时,一个finally语句块会被执行,无论一个异常是否被抛出;
void:
标记一个方法没有返回值."void"也可以用来表示一句没有任何功能的语句;
volatile:
标记一个成员变量进行强迫性同步处理,确保多线程中共享数据的一致性.既它用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的;
while:
标记whlie型循环.用来定义一段反复执行的循环语句.循环的退出条件是while语句的一部分;
goto:
只是作为关键字保留,未使用;
const:
只是作为关键字保留,未使用.
附:
1).True和false作为boolean的面值,虽然它们不是关键字,但也不能做为标识附使用;
2).java中的关键字都为小写;
3).基本数据类型可以用大写,区别在于,小写在定义一个变量时必须要给个初始值,其不支持空值.大写的则相反,它支持空值;
例如:
float f1=null;程序运行时将报错.
Float f1=null;程序运行时不出错.
4).static定义的变量会优先于任何其它非static变量,不论其出现的顺序如何.
3.标识符的命名规则:
JAVA语言中的标识符的命名遵守以下规划:
3-1:望文生义
名称要能代表变量本身的含义.如定义一个标识符代表价格,那么取名"price".
3-2:如果一个标识符由几个单词连接而成,第一个单词全小写,后面每一个单词的首写字母大写.
如:applePrice.
3-3:类名中每个单词的首字母都要大写,其他的小写.
如:StudentInfo.
3-4:如果是方法或变量名,第一个单词首字母小写,其他单词的首字母都要大写.
如:getStudentInof()、studenName.
3-5:如果是常量,所有单词的所有字母都要大写,如果由多个单词组成,用下划线分隔.
如:PI、MAX_VALUE.
3-6:如果是包名,所有字母都要小写.
如:examples.chapter02.
4.常量
JAVA语言中,如果要声明一个常量,用关键字final修饰.常规做法是声明一个常量时实现其初始值.语法的如下:
final 常量类型 常量标识符=常量值;
如:
final float PI = 3.14F;
final float PI = 3.14F,PRICE = 13.86F,WEIGHT = 86.32F;
注:JAVA语言中,常量的习惯写法是全部字母大写.
5.变量
JAVA语言中变量的使用语法形式如下:
变量类型 变量标识符;
如:
String studentName;
int studentAge;
注:JAVA语言中,变量的习惯写法是第一个单词的首字母小写,其他单词的首字母大写,其他字母一律小写.
6.JAVA语言中两种变量类型:基本数据类型和复合数据类型
6-1.基本数据类型
byte 字节型 计算机中一个字节一般来说占8;
char字符型 占2个字节,也就是16位;
short 短整型 占2两个字节,也就是16位;
int 整形 占4个字节,也就是32位;
long 长整型 占8个字节,也就是64位;
float 单精度实型,小数点后面保留7位有效数字,占32位;
double 双精度实型,小数点后面保留15位有效数字,占64位;
boolean 布尔型,占一个字节,8位.
注:
1).char在C语言中是占1个字节,在JAVA中占两个字节;
2).在为long类型的常量或变量赋值时,需要在所赋值的后面加一个字母"L";
3).在为float类型的常量或变量赋值时,需要在所赋值的后面加一个字母"F";
4).在为double类型的常量或变量赋值时,需要在所赋值的后面加一个字母"D";
5).JAVA语言中声明一个字符类型变量用char修饰.JAVA语言对字符处理采用Unicode编码.Unicode使用2个字节表示一个字符,
前面128个字符与ASCII码字符集兼容.为char类型的常量或变量赋值时,所赋的值必须为一个英文字母、一个符号或一个汉字,
并且要用英文状态下的单引号括起来.如'男'、‘*’等.
6).JAVA语言中的转义字符如下:
\n:换行;
\t:横向跳格,相当于tab键;
\b:退格;
\r:回车;
\f:换页;
\\:单反斜杠;
\':单引号;
\":双引号;
\d:八进制字符;
\xd:十六进制字符;
\ud:Unicode字符.
7).在boolean变量或常量,只接受true和false这两个逻辑值.
6-2.复合数据类型
数组:
类:
接口:
7.JAVA中不同类型的数组转换:
7-1:自动类型转换
自动类型转换是低级数据类型转换为高级数据类型,如int型转换为long型.下面从左到右为数据类型从低到高:
byte->char(short)->int->long->float->double
7-1-1:参与混合运行只有byte、short或char类型的数据.运算规则:
JAVA首先将byte或short或char类型转换为int型.然后再参与运算,运算的结果也是int型.
7-1-2:参与混合运算,含有int、long、float或double型的数据.运算规则:
将所有参与运行的数据类型转换为表达式中数据类型最高的数据类型,然后再参与运行.运行结果也为数据类型中最高的数据类型.
7-2:强制类型转换
强制类型转换是指高级数据类型转换为低数据类型.语法如下:
(数据类型) 变量标识符
如:
float floatVar = 128.5F;
(int)floatVar.
8.JAVA语言中的运算符与表达式
与C语言一样,不提.