引用(变量 常量)

概念:可以通过一个自定义的名称来指向具体的数据值
java是一门强类型的编程语言,对数据类型校验非常严格
引用:
变量:引用可以发生变化的量
常量:引用不可以发生变化的量

变量格式
数据类型 引用名(变量名) = 初始化值;
格式:先声明后赋值
数据类型 变量名;
变量名 = 初始化值;
格式:同时定义多个变量 这些变量都是同一个数据类型
数据类型 变量1,变量2,…;
变量1 = 初始化值1;
变量2 = 初始化值2;
连等赋值:
int j,k;
int i = j = k =3;
如果没有提前声明j k变量 则第二行程序编译报错
VariableDemo.java:42: 错误: 找不到符号
int i = j = k =3;
1、如果变量只声明但是没有赋值 则该变量不能直接使用 否则编译报错啦
常量格式:
final 数据类型 引用名(常量名) = 初始化值;
常量名:
如果一个单词构成则所有字母都要大写
如果又多个单词构成 则每个单词所有字母都要大写 单词之间需要通过 _ 分隔
final 关键字
总结:
在程序运行过程中,常量不能发生改变

变量内存

内存:计算机关机或者断电等情况下,内存中数据会丢失–不安全
内存快
硬盘:无论重启还是关机,只要硬盘没有损坏,数据就不会丢失–安全
硬盘慢
一旦运行某个程序,计算机就给为该程序分配一块内存空间;
当运行java程序时,计算机也会给java分配一块内存空间
变量是存储数据最小的容器

数据类型

基本数据类型
八大基本数据类型
四类八种
整型(4种)
byte 字节型 1字节 -128~127 -27~27-1
short 短整型 2字节 -215~215-1
int 整型 4字节 -231~231-1
long 长整型 8字节 -263~263-1
变量格式:
数据类型 变量名 = 初始化值;
long num = 2147483648;
2147483648超过了int的范围,赋值给long类
注意:
1、整数字面值默认都是int类型来存储;
2、可以通过在整型字面值后边加L或者l后缀,从而使用long类型来存储该字面值
3、最常用的整型就是int类型

浮点型(2种)
float 单精度浮点型 4字节
double 双精度浮点型 8字节
注意:
1、浮点数字面值默认都是double类型来存储;
2、将double类型的数据值赋值给float类型的变量时,可能存在溢出的问题;所以程序报错;
3、可以通过在浮点型字面值后边加F或者f后缀,从而使用float类型来存储该字面值
4、也可以在浮点数后加D或者d表示当前类型为double
5、java支持科学计数法的写法3.5e2=3.5*10^2=350.0这种表现形式默认只能是double类型

字符型(1种)
char 字符型 2字节
注意:
char c1 = 97;
System.out.println(c1); //‘a’
以上这种方式可以赋值给char变量 是根据ASCII码表将对应符合码表中数值的值放入c1变量 当输出c1时 通过97去查找对应字符 并输出
布尔型(1种)
boolean 布尔型 1字节
值:true false
思考题:
字节作为最基本的操作单位
引用数据类型(复杂数据类型):类 接口 数组等

数据类型的转换

整型:从小到大
byte->short->int->long
浮点数
float–>double
可以自动转 但是可能会出现精度损失问题
float 和double都有可能出现精度损失
整型->浮点型
在整数后边直接加.0
总结:数值型:byte->short->int->long->float->double
char->int->long->float->double:

根据码表将该字符对应的ASCII码值直接给int类型的变量
先将char转为int 再由转成其他类型
强制数据类型转换
问题:
从大转小 直接写编译会报错
如果大的数据类型的数据值实际在小数据类型的范围之内
程序在编译时只能检查数据类型 但是确定不了变量实际的值
格式:
(type)数据
将数据强转为type数据类型
注意:
1、浮点型->整型:直接舍弃小数部分
2、强制数据类型转换谨慎使用
3、大类型强转小类型:
如果大类型的数据值在小类型的范围之内 强转的值不变
如果大类型的数据值超出了小类型的范围,则强转之后可能不再是原来的值;
总结:
将大数据类型的值先转成对应位数的二进制
根据小数据类型可以存储的二进制位数从最右边开始截取对应的位数

算数运算符

+(求和) 
-(求和) 
*(求积) 
/(求商)
	int/int结果必然为int类型 小数部分会被直接舍弃掉
	除数为0:
	1、 int/0
		Exception in thread "main" java.lang.ArithmeticException: / by zero
		     at OperatorDemo1.main(OperatorDemo1.java:29)
	2、正浮点数/0
		Infinity 无穷大
	3、负浮点数/0
		-Infinity 无穷小
	4、0.0/0
		NaN 非数字
		Not a Number

%(取余 模余)
1、运算结果数据类型
结果数据类型和元素中大的数据类型保持一致
byte short char在参与运算会自动提升为int类型

++ –
++:自增运算符
符号可以在变量的前边也可以在后边
如果++单独使用,前后没有区别;
如果++参与运算时,
1、变量在前 ++在后 则先使用变量原来的值参与运算,再让变量的值+1
2、++在前 变量在后 则变量的值先+1 再使用增加之后的值参与运算
–:自减运算符
同理
注意:
++ --只能作用于变量 不能作用于常量、值