常量 变量 类型转换 进制转换
1.常量的使用
2.变量的使用
3.会强制类型转换
一、常量
(一)常量的分类
1.概述:在代码的运行过程中,其值不会发生改变的数据
2.分类:
整数常量:所有整数
小数常量:所有带小数点的
字符常量:带单引号,有且只能有一个内容
字符串常量:带双引号
布尔常量:true flase
空常量:null 代表数据不存在
(二)常量的使用
(三)常量之间的运算
二、变量
(一)变量的数据类型介绍
1.基本数据类型:
整型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
2.引用数据类型:类 数组 接口 枚举 注解
(二)变量的定义
1.概述:在代码运行过程中,值会随着不同的情况而随时发生改变的数据
2.作用:一次接受一个数据,将来定义一个变量,接受一个值,后续可能会根据不 同的情况对此值进行修改
3.定义:
(1)数据类型 变量名 = 值;
(2)数据类型 变量名;
变量名 = 值;
- 连续定义三个类型相同变量:
数据类型 变量名1,变量名2,变量名3;
变量名1 = 值;
变量名2 = 值;
变量名3 = 值;
正确读法:先看等号右边的,再看等号左边的
4.注意:字符串不属于基本数据类型,属于引用数据类型,属于String类,
定义的时候可以和基本数据类型格式一样
5.float和double区别:
(1)Float的小数位只有23位二进制,能表示的最大十进制为2的23次方(8388608),是7位数,所以float型代表的小数,小数位能表示7位;
(2)Double的小数位只有52位二进制,能表示的最大十进制为(4 503 599 627 370 496),是16位数,所以double型代表的小数,小数位能表示出16位
6.切记:将来开发不要用float或者double直接参与运算,因为直接参与运算
会有精度损失问题
(三)变量的使用
定义long型的变量后面加个L
定义float型的变量后面加个F
转义字符:\
换行符:\n
制表符:\t相当于tab键
用String表示一个路径:String path = “E:\\java1\\java”;
注意:
(1)变量不初始化(第一次赋值)不能直接使用
(2)在同一个作用域(一对大括号里)中不能定义重名的变量
(3)不同作用域中的数据尽量不要随意互相访问
在小作用域里面可以访问大作用域的变量,反之不能
三、标识符
1.概述:咱们给类、方法、变量取的名字
2.注意:
(1)硬性规定(必须遵守)
标识符可以包含“英文字母”,“数字”,“$和_”
标识符不能以数字开头
标识符不能是关键字
(2)软性规定(建议遵守)
给类取名:大驼峰式
给方法和变量取名:小驼峰式
见名知意
四、数据类型转换
(一)发生类型转换的条件
1.什么时候发生类型转换:
(1)等号两边类型不过一致
(2)不同类型的数据做运算
2.分类:
(1)自动类型转换
将取值范围小的数据类型给取值范围大的数据类型 -> 小自动转大
取值范围小的数据类型和取值范围大的数据类型运算 -> 小自动转大
(2)强制类型转换
当取值范围大的数据类型赋值给取值范围小的数据类型 -> 需要强转
3.基本数据类型中按照取值范围从小到大排序:
byte,short,char -> int -> long -> float -> double
(二)自动化类型转换
1.将取值范围小的数据类型给取值范围大的数据类型 -> 小自动转大
2.取值范围小的数据类型和取值范围大的数据类型运算 -> 小自动转大
(三)强制类型转换
1.将取值范围大的数据类型赋值给取值范围小的数据类型
取值范围小的数据类型 变量名 = 取值范围大的数据类型 -> 需要强转
2.怎么强转:
取值范围小的数据类型 变量名 = (取值范围小的数据类型)取值范围大的数据 类型
int i1 = (int)2.5;
(四)强制类型转换的注意事项
1.不要随意写成强转的格式,因为会有精度损失问题以及数据溢出现象,除非没有办法
2.byte,short定义的时候如果等号右边是整数常量,如果不超过bbyte和short的范围,不需要我们自己强转,jvm虚拟机自动转型
但是如果有变量参与,需要手动转
3.char类型数据如果参与运算,会自动提升为int型,如果char类型的字符提升为int型,会去ASCII码表,unicode码表查询对应的int值
五、进制转换_位运算
(一)十进制和二进制之间的转换
1.辗转相除法 -> 循环除以二,取余数
2.上下相乘再相加
二进制转成八进制
将二进制数分开(3位为一组)
二进制转成十六进制
将二进制数分组(4位为一组)
左移和右移
1.左移:<<
运算规则:左移几位就相当于乘以2的几次方
注意:当左移的位数n超过该数据类型的总位数时,相当于左移(n-总位数) 位
2<<2 结果等于8
快速算法:2*(2的2次方)
2.右移:>>
运算规则:类似于除以2的n次,如果不能整除,向下取整
9>>2 等于2
快速算法:9除以(2的2次方)
(五)位运算符
1.符号的介绍:
(1)&(与) -> 有假则假
(2)|(或) -> 有真则真
(3)~(非) -> 取反
(4)^(异或) -> 符号前后结果一样为false,不一样为true
true ^ true -> false
false ^ false -> false
true ^ false -> true
false ^ true -> true
2. 1代表true 0代表false
3.我们要知道计算机在存储数据的时候都是存储数据的补码,计算也是用的数据 的补码,但是我们最终看到的结果是原码换算出来的
原码 反码 补码
4.正数二进制最高位为0;负数二进制最高位为1
5.如果是正数 原码 反码 补码一致
如果是负数,反码是原码的基础上最高位不变,剩下的0和1互换
补码是在反码的基础上+1
运算符的优先级
1.表达式不要太复杂
2.先算的使用(),如果想让哪个表达式先运行,就加小括号