一、数据类型
1、数据类型分几类,分别是什么?
数据类型分为两类:基本数据类型和引用数据类型。
基本数据类型包括八种,分别是byte, shot,int,long,float,double,boolean,char。
引用数据类型包括数组、接口、类等。
除了基本类型外的数据都是引用数据类型。
2、基本数据类型
数据类型 | 占用空间 | 保存范围 | 使用举例 |
Boolean 布尔型 | 1字节 | true或false | 保存性别,婚否 |
Byte 字节型 | 1字节 | -128~127 | 对字节操作时使用,如文件读写 |
Char 字符型 | 2字节 | 0~65535 | 保存单个字母或汉字时使用 |
Short 短整型 | 2字节 | -32786~32767 | 保存较小的整数时使用 |
Int 整型 | 4字节 | -2147483648~2147483647 | 保存一般的整数时使用 |
Long 长整型 | 8字节 | -9223372036854775808 ~9223372036854775807 | 保存较长的整数时使用 |
Float 浮点型(单精度) | 4字节 | -3.403e38~3.403e38 | 保存小数时使用 |
Double 浮点型(双精度) | 8字节 | -1.798e308~1.798e308 | 保存精度较高的小数时使用 |
3、数据类型转换
(1)高转低怎么转
(类型标识符)要转换的变量
例:float f=1.6F; Int i=(int)f;
(2)低转高怎么转,并举例?
系统自动转换(高double->float->long->int->(这三个平级short->byte、char)低)
int i=52;float x;
直接赋值即可X=i;
(3)表达式的数据类型由什么决定,举例说明?
表达式的数据类型由运算结果的数据类型决定。
public class Example{ public static void main(String[] rags){ int i=5; float f=6f; double d=7.8d; double result=i+f+d; } } |
4、总结计算过程中的小bug
(1)在运算过程中只要有低于int类型的数据(Boolean除外),都将会自动转换为int类型的数据,这时候进行赋值的话,会变成int类型,如果需要变回原有的数据类型需要进行强制转换。
(2)在计算过程如果有高级别数据类型,计算时会自动转换成高级别的数据类型。
(3)i++是先使用,然后才进行加i+1,而++i是先i+1在使用i
(4)a+=b和a=a+b的区别
a+=b是只有一步操作运算(不存在赋值的过程),而a=a+b是两步操作运算(先加后赋值的两个过程)
(5)分析下面的代码
Short s = 1; S = s+1; | 1可以赋值给short类型的数据;但short类型的数据加上1(整型数据),运算后升到int类型,不能赋值给short |
Short s = 1; S = 18+1; | 18+1在编译是确定了其值在short范围内,可以赋值 |
二、变量
1、什么是变量?
a. 变量是指在程序运行过程中其值可以改变的量。变量的使用必须先声明,然后初始化, 最后才能使用变量。
b. 变量就是计算机内存中存放数据的单元,定义变量的本质就是分配内存。当把数据赋给变量时,实际上就是将数值存储到变量占用的内存单元中。
2、变量的语法?
变量的声明语法:[修饰符] 数据类型 变量名称[=值];
3、变量的命名规则?
Java语言是区分大小写的,变量的命名也有规范:由数字、字母、下划线和$符号组成,开头不可以是数字 ,变量名不能使用Java语言中的关键字。
4、变量能做什么?
变量就是计算机内存中存放数据的单元,定义变量的本质就是分配内存。当把数据赋给变时,实际上就是将数值存储到变量占用的内存单元中。
三、表达式与运算符
1、什么是表达式?
表达式是运算符和操作数的有效组合,操作数可以是变量、常量、方法调用的返回值。
2、算术运算符
运算符 | 示例 | 说明 |
+ | 3+2 | 加法运算符,求两个操作数的和。 |
- | 3-2 | 减法运算符,求两个操作数的差。 |
* | 3*2 | 乘法运算符,求两个操作数的积 |
/ | 3/2 | 除法运算,求两个操作数的商。 |
% | 3%2 | 求余运算符,求两个整数的余数 |
++ | Int a=3;++a或者a++ | 自增运算符,a++相当于a=a+1 |
-- | Int a=3;--a或者a-- | 自减运算符,a--相当于a=a-1。 |
3、关系运算符
运算符 | 实例 | 说明 |
> | a>b | 如果a>b成立,结果为true,否则结果为false |
>= | a>=b | 如果a>=b成立,结果为true,否则结果为false |
< | a<b | 如果a<b成立,结果为true,否则结果为false |
<= | a<=b | 如果a<=b成立,结果为true,否则结果为false |
== | a==b | 如果a==b成立,结果为true,否则结果为false |
!= | a!=b | 如果a!=b成立,结果为true,否则结果为false |
4、逻辑运算符
运算符 | 示例 | 说明 |
&& | a>b&&a>c | a大于b,并且a大于 c |
|| | a>b||a>c | a大于b,或者a大于c |
! | !(a>b) | a大于b不成立 |
5、位运算符
位运算符是对整数类型的操作数进行的二进制运算,包括7个:~(位反)、&(与)、
|(位或)、^(位异或)、<<(左位移)、>>(右位移)、>>>(无符号右移)
6、算术复合运算符(a=10)
表达式 | 等价的Java代码 | 运行的结果 |
a+=3 | a=a+3 | 13 |
a-=3 | a=a-3 | 7 |
a*=3 | a=a*3 | 30 |
a/=3 | a=a/3 | 3 |
a%=3 | a=a%3 | 1 |
7、运算符的优先级
运算符 | 优先级 | 结合性 |
[] | 1 | 从左向右 |
!~ ++ -- +(一元运算)-(一元运算) | 2 | 从右向左 |
*/% | 3 | 从左向右 |
+- | 4 | 从左向右 |
<< >> >>> | 5 | 从左向右 |
< <= > >= instanceof | 6 | 从左向右 |
== != | 7 | 从左向右 |
& | 8 | 从左向右 |
^ | 9 | 从左向右 |
| | 10 | 从左向右 |
&& | 11 | 从左向右 |
|| | 12 | 从左向右 |
?: | 13 | 从右向左 |
= += -= *= /= %= &= |= ^= <<= >>= >>> | 14 | 从右向左 |
8、& 和 &&区别:
& :无论左边结果是什么,右边都参与运算。
&&:短路与,如果左边为false,那么右边不参数与运算。
9、| 和|| 区别:
|:两边都运算。
||:短路或,如果左边为true,那么右边不参与运算。
大哥点点关注呀!!!!!!!!!!!