一、基本数据类型有4种,分别是整数型、浮点型、字符型和布尔型;
1.整数类型简称整型,用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整数数据根据它所占内存大小的不同,分为byte、short、int和long这四种类型。它们具有不同的取值范围,long类型在赋值的时候要和int类型做区分,需要在整数后加L(最好是大写的L便于区分)
数据类型 | 内存空间(8位等于1字节) | 取值范围 |
byte | 8位 | -128~127 |
short | 16位 | -32768~32767 |
int | 32位 | -2147483648~2147483647 |
long | 64位 | -9223372036854775808~9223372036854775807 |
2. 浮点类型简称浮点型,用来存储含小数部分的数值。Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),使用float型小数需要在小数后面添加F或f;
数据类型 | 内存空间(8位等于字节) | 取值范围 |
float | 32位 | 1.4E-45~3.4028235E38 |
double | 64位 | 4.9E-324~1.7976931348623157Ebian |
练习
3.字符类型(char)用于存储单个字符,占16个位(两个字节)的空间。在定义字符型变量时要以单引号表示,如's'表示一个字符;
3.布尔类型又称逻辑类型,简称布尔型,通过关键字boolean来定义布尔类型变量。布尔类型只有ture和false两个值,分别代表布尔类型的"真"和"假"。布尔值不能与整数进行互换。布尔类型通常被用在流程图控制中,作为判断条件;
二、变量与常量
⒈标识符是用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。Java语言中的字母是严格区分大小写的;
①标识符的要求:
❶Java语言规定标识符由任意顺序的字母、下划线(_)、数字、美元符号;
❷不能以数字开头;
❸关键字不可以作为标识符;
②关键字又称保留字,是Java语言中已经被赋予特定意义的一些单词,不可以把这些单词作为标识符来用;
⒉声明变量(可变化的)
变量的使用是程序设计中一个十分重要的环节。声明变量就是告诉编译器这个变量的数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。在程序运行过程中,空间内的值是变化的,这个内存空间内的值就是变量值;
①变量名的要求:
❶变量名必须是一个有效的标识符;
❷变量名不可以使用Java中的关键字;
❸变量名不能重复;
❹应选择有意义的单词作为变量名;
⒊声明常量(不可变化的);
在程序运行过程中一直不会改变的量成为常量(constant),通常也被称为"final变量"。常量在整个程序中只能被赋值一次;常量命通常用大写字母,但这不是必须的;
final 整数类型 常量名称 [= 值]
当变量被final关键字修饰时,该变量就变成了常量,必须在定义时就设定它的初值,否则将会产生编译错误;
⒋变量的有效范围
由于变量被定义出来后只是暂存在内存中,等到程序执行到某一个点,该变量会被释放掉,也就是说变量有它的生命周期。因此,变量的有效范围是指程序代码能够访问该变量的区域,若超出该区域,则在编译时会出现错误。在程序中,一般会根据变量的"有效范围"将变量分为"成员变量"和"局部变量";
①成员变量
类体中所声明的变量被称为成员变量,朝阳北路在整个类中都有效。类的成员变量又可以分为两种,即静态变量和实例变量;
②局部变量
在类的方法体中声明的变量(方法内部定义,"{"与"}"之间的代码中声明的变量)成为局部变量。局部变量只在当前代码块中有效,也就是只能在"{"与"}"之内使用;
在类的方法中声明的变量,包括方法的参数,都属于局部变量。局部变量只在前定义的方法内有效,不能用于类的其他方法中。局部变量的生命周期取决于方法,当方法被调用时Java虚拟机会为方法中的局部变量分配内存空间,当该方法的调用结束后,则会释放中局部变量占用的内存空间,局部变量也将会被销毁;
三、运算符
1.赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的赋值给左方的操作数。由于赋值运算符“=”处理时会先取得右方表达式处理后的结果,因此一个表达式中若含有两个以上的“=”运算符,会从最右方的“=”开始处理;
2.算术运算符:Java中的算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(余数),它们都是二元运算符。如图所示。其中"+"和"-"运算符还可以作为数值的正负号;
3.自增和自减运算符
自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。自增、自减运算符的作用是使变量的值增1或减1.放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使用该变量参与表达式的运算。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算符,然后再使该变量加1(减1);
++a(-a) //表示在使用变量a之前,先使a的值加(减)1
a++(a--) //表示在使用变量a之后,使a的值加(减)1
粗略地分析,“+a”与“a++”的作用都相当于a=a+l。假设a=4,则:
b=++a //先将a的值加1,然后赋给b,此时a值为5,b值为5
再看另一个语法,同样假设 a=4,则:
b=a++ //先将a的值赋给b,再将a的值变为5,此时a值为5,6值为4
4.比较运算符属于二元运算符,用于程序中的变量之间、变量和白变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是 boolean 型。当运算符对应的关系成立时,运算结果为 true,否则为 false。所有比较运算符通常作为判断的依据用在条件语句中
5.逻辑运算符,返回类型为布尔类型的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式。这是通过逻辑运算符来实现的。逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。在逻辑运算符中,除了“!”是一元运算符,其他都是二元运算符;
运算符 | 含义 | 用法 | 结合方向 |
&&、& | 逻辑与 | op1&&op2 | 从左到右 |
|| | 逻辑或 | op1||op2 | 从左到右 |
! | 逻辑非 | !op | 从右到左 |
结果为boolean型的变量或表达式可以通过逻辑运算符组合为逻辑表达式。用逻辑运算符进行逻辑运算时,结果如图所示:
6.位运算符除“按位与”和“按位或”运算符外,其他只能用于处理整数的操作数。包括byte、short、char、int和 long 等数据类型。位运算是完全针对位方面的操作。整型数据在内存中以二进制的形式表示,如 int 型变量 7 的二进制表示是 00000000 00000000 0000000 000011。 左边最高位是符号位,最高位是 0 表示正数,若为1 则表示负数。负数采用补码表示,如-8的二进制表示为 111111111 111111111 111111 11111000。这样就可以对整型数据进行核位运算;
运算符 | 用法 | 含义 |
& | 两者都为1结果才是1 | 与 |
| | 只要有一者为1结果就是1 | 或 |
~ | 1变0,0变1 | 取反 |
^ | 两者相同即为0不同为1 | 异或 |
位运算符还可以对数据按二进制位进行移位操作,左移就是将运算符左边的操作数的二进制数据,按照运算符右边操作数指定的位数向左移动,自分补 0;右移则复杂一些,当使用“>>”符号时,如果最高位是 0.,右移空的位就现入0;如果最高位是 1,右移空的位就填入 1;
运算符 | 用法 |
<< | 左移 |
>> | 右移 |
>>> | 无符号右移 |
7. 三元运算符
使用格式:
条件式 ? 值1 :值2
三元运算符的运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2;
boolean b =20 < 45 ? true:false;
表达式"20<45"的运算结果返回真,那么boolean型变量b取值为true。相反,如果表达式的运算结果返回为假,则boolean型变量b取值为false;三元运算符等价于if...else语句;
boolean a; //声明boolean型变量
if(20<45) //将20 < 45 作为判断条件
a=true; //条件成立,将true赋值给a
else
a=false; //条件不成立,将false赋值给a
8. 运算符优先级
运算符的优先级决定了表达式中运算执行的先后顺序。通常,优先级由高到低的顺序依次是:
增量和减量运算>算术运算>比较运算>逻辑运算>赋值运算