implements | import | instanceof | int | interface |
long | nativenew | null | package | private |
public | retum | short | static | super |
swith | synchronized | this | throw | true |
try | void | while | adstract | boolean |
break | byte | case | catch | char |
continue | do | double | else | extends |
false | find | finally | float | for |
基本数据类型包括逻辑类型、整数类型、字符类型和浮点类型。下面分别说明4种基本数据类型的常量表示方式、变量定义格式。
1.逻辑类型(boolean)
(1)逻辑常量
逻辑常量只有两个值:true、false。
(2)逻辑变量的定义
使用关键字boolean来定义逻辑变量。如定义逻辑变量a1、a2、a3的格式如下:
boolean a1,a2, a3; //定义时没有给变量赋值
定义时给变量赋初值的格式如下:
boolean a1=true, a2=false, a3;
2.整型类型
整型常量:例如,356(十进制,首位不能为0)、1000(十进制)、0567(首位为0,代表八进制数)、0x9ABCD(首位是0x,代表十六进制数)。
整型变量又分为4种:
(1)int型变量
使用关键字int来定义int型变量。如定义int型变量a1、a2、a3的格式如下:
int a1, a2, a3; //定义时没有给变量赋值
定义时给变量赋初值的格式如下:
int a1=33, a2=-155, a3;
(2)byte型变量
使用关键字byte来定义byte型变量。如定义byte型变量a1、a2、a3的格式如下:
byte a1, a2, a3; //定义时没有给变量赋值
定义时给变量赋初值的格式如下:
byte a1=63, a2=-12, a3=77;
(3)short型变量
使用关键字short来定义short型变量。如定义short型变量a1、a2、a3的格式如下:
short a1, a2, a3; //定义时没有给变量赋值
定义时给变量赋初值的格式如下:
short a1=12, a2=-174, a3=999;
(4)long型变量
使用关键字long来定义long型变量。如定义long型变量a1、a2、a3的格式如下:
long a1, a2, a3; //定义时没有给变量赋值
定义时给变量赋初值的格式如下:
long a1=18, a2=777, a3=6655;
3.字符类型(char)
(1)字符型常量
一个字符常量用单引号括起,如'A'、'b'、'c'、'!'、'7'、'爱' 等都是字符型常量。Unicode字符集可以表示65536个字符型常量。
(2)字符型变量定义
使用关键字char来定义char型变量。如定义char型变量a1、a2、a3的格式如下:
char a1, a2, a3; //定义时没有给变量赋值
定义时给变量赋初值的格式如下:
char a1='?', a2='12', a3='来';
char型常量在内存中占2个节的存储空间,以正整数的方式保存,因此,最高位不是用来表示符号的。
(3)转义字符
一些控制字符不能显示出来,它代表某种含义。下表格表示了这些控制字符的含义。
控制字符 | 描述 |
/t |
将光标移到下一个制表符的位置
|
/n | 换行,将光标移到下一行的开始位置 |
/r | 回车,将光标移到当前行的开始,不是移到下一行 |
/ | 输出一个反斜杠 |
/ ' | 输出一个单引号 |
/" | 输出一个双引号 |
(4)字符型数据在内存中的表示
字符型数据在内存中以int型数据表示。如,字符常量'd'在内存中的值是100( int型数据)
4.浮点类型
浮点型数据分为单精度型(float)和双精度型(double)。
(1)单精度型(float)
①常量:例如,567.539f、7889.3f、987.2f、777.00f。书写单精度常量数据时,在数据最后必须加f。否则,表示的常量是双精度数据。如,888.0表示的是双精度数据。
②变量定义:使用关键字float来定义float型变量。如定义float型变量a1、a2、a3的格式如下:
float a1, a2, a3; //定义时没有给变量赋值
定义时给变量赋初值的格式如下:
float a1=13.78f, a2=-99.7f, a3;
(2)双精度型(double)
①常量:例如,5678.577d(d可以省略)、908.55、4567.000d。都是双精度常量。
②变量定义:使用关键字double来定义double型变量。如定义double型变量a1、a2、a3的格式如下:
double a1, a2, a3; //定义时没有给变量赋值
定义时给变量赋初值的格式如下:
double a1=113.8567, a2=-12.78d, a3=8901.66;
有时需要将不同类型的数据混合起来运算,或者将一种基本类型的数据赋给另一种类型的变量,就要用到数据类型转换。
数据类型的转换有两种形式。
自动转换:从低精度向高精度转换,系统自动进行。
强制转换:程序员必须使用类型转换符进行转换。强制转换运算可能导致精度的缺失。
1.数据类型精度排序
数据类型按精度从低到高的排列顺序如下:
byte < short < int < long < float < double
2.从低精度向高精度转换
从低精度向高精度转换属于自动转换。
(1)赋值语句中的转换
例如:
float a=200; //把整数200转换为浮点数
这里将整数200赋给浮点型变量a,是从低精度向高精度转换,系统自动进行。如果输出a的值,结果将是200.0。
(2)表达式中的数据转换
例如:
int a=50;
float b=25.5f;
doublec=a+b;
混合数据类型表达式a+b包含两个不同类型的数据,即整数a和单精度型数据b。在计算表达式以前,系统自动将低精度的数据a转换为高精度的float型数据,转换后将两个数据进行求和,最后将结果数据(float型)转换为更高精度的double型数据并赋给变量f。
优先级 | 运算符 | 类 |
1 | () | 括号类型运算符 |
1 | 【】 | 中括号类型运算符 |
2 | !,+(正号),-(负号) | 一元运算符 |
2 | ~ | 位逻辑运算符 |
2 | ++,-- | 递增与递减运算符 |
3 | *,、,% | 算术运算符 |
4 | +,- | 算术运算符 |
5 | <<,>> | 位左移,右移运算符 |
6 | >,>=,<,<= | 关系运算符 |
7 | ==,!= | 关系运算符 |
8 | &(位运算符AND) | 位逻辑运算符 |
9 | ^(位运算符号XOR) | 位逻辑运算符 |
10 | |(位运算符号OR) | 位逻辑运算符 |
11 | && | 逻辑运算符 |
12 | || | 逻辑运算符 |
13 | ?: | 条件运算符 |
14 | = | 赋值运算符 |