一.JAVA标识符
标识符是用来给变量、类、方法以及包进行命名的,如Welcome、main、System、age、name、gender等。标识符需要遵守一定的规则:
-
标识符必须以字母、下划线_、美元符号$开头。
-
标识符其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合。
-
Java 标识符大小写敏感,且长度无限制。
-
标识符不可以是Java的关键字。
-
驼峰原则:表示方法和变量的标识符,第一个单词小写,从第二个单词开始首字母大写。
表示类名(class前的单词)的标识符:每个单词的首字母大写,eg:Man,GoodMan
合法标识符:
非法标识符:
二.JAVA中的变量类型
Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。
Java定义了3类8种基本数据类型
- 数值型 - byte,short,int,long,float,double
- 字符型 - char
- 布尔型 - boolean
一.整型变量
数据类型 | 所占存储空间 | 表示范围 |
byte | 1字节 | -2的7 次方~ 2的7次方-1(-128~127) |
short | 2字节 | -2的15 次方~ 2的15次方-1(-32768~32767) |
int | 4字节 | -2的31 次方~ 2的31次方-1 (-2147483648~2147483647)约21亿 |
long | 8字节 | -2的63次方~ 2的63次方-1 |
-
十进制整数,如:99, -500, 0
-
八进制整数,要求以 0 开头,如:015
-
十六进制数,要求 0x 或 0X 开头,如:0x15
-
二进制数,要求0b或0B开头,如:0b01110011
-
注:java默认整形变量类型为int型,在声明long型常量可以后加‘ l ’或‘ L ’ 。
-
long a = 55555555; //编译成功,在int表示的范围内(21亿内)。
long b = 55555555555;//不加L编译错误,已经超过int表示的范围。
二.实型变量
类型 | 占用存储空间 | 表示范围 |
float | 4字节 | -3.403E38~3.403E38 |
double | 8字节 | -1.798E308~1.798E308 |
float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。浮点型常量默认类型也是double。
float f = 3.14F;
double d1 = 3.14;
double d2 = 3.14D;
在此注意:1.进行实型变量运算时会有误差产生,因此不要用浮点数比较,以免出现错误。详见下例:
【示例1】浮点数的比较一
1 2 3 |
|
【示例2】浮点数的比较二
1 2 3 4 5 6 7 |
|
运行以上两个示例,发现示例2-13的结果是“false”,而示例2-14的输出结果是“d1==d2”。这是因为由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。 浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。
java.math包下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。
比较请使用BigDecimal类
【示例3】使用BigDecimal进行浮点数的比较
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
三.字符型变量
字符型变量用“char 变量名 ‘变量值’” 进行表示,字符型变量char只能定义单个字符而不能定义字符串。字符型变量在内存中占2个字节。
eg:
char char1 = 'b';
char char2 = '中';
由于JAVA中的char表示Unicode编码表中的字符,所以中文字符,英文字符游客进行表示。可以用Unicode编码来表示字符
char char3 = '\u0061';
转义字符
1 |
|
表2-6 转义字符 | ||
转义符 |
含义 |
Unicode值 |
\b |
退格(backspace) |
\u0008 |
\n |
换行 |
\u000a |
\r |
回车 |
\u000d |
\t |
制表符(tab) |
\u0009 |
\“ |
双引号 |
\u0022 |
\‘ |
单引号 |
\u0027 |
\\ |
反斜杠 |
\u005c |
注意:以后将要学习的String类是字符序列
public class TestPrimitiveDataType3{
public static void main(String[]arg){
char a = 'T';
char b = '高';
char c = '\u0061';
System.out.println(c);
//转义字符
System.out.println(""+'a'+'b');//ab
System.out.println(""+'a'+'\t'+'b');//a b
System.out.println(""+'a'+'\n'+'b');//a
b
System.out.println(""+'a'+'\''+'b');//a'b
}
}
四.boolean型变量
boolean类型的变量有两个常数值,一个是ture,一个是false,在内存中占一位(注意,是一位,不是一个字节)。当boolean变量值为ture时,执行ture下的语句,否则,执行false下的语句。
代码如下:
boolean fact;
fact = true;//或者fact = false
if(fact){
System.out.println(ture)//ture分支
}else{
System.out.println(false)//false分支
}
建议
Less is More!!请不要这样写:if ( flag == true ),只有新手才那么写。关键也很容易写错成if(flag=true),这样就变成赋值flag 为true而不是判断!老鸟的写法是if ( flag )或者if ( !flag)