计算机中最小的是bit(位) 最基本的叫字节(byte)
变量对应的作用范围可分位全局变量和局部变量
全局变量:定义在类的内部,方法的外部,作用范围是整个类,使用时不用赋值,有默认值0
局部变量:定义在方法中,或者在方法中的{}内 在使用之前进行赋值操作,否则会编译出错
变量的优先级:就近原则
类型转换:强制类型转换、自动类型转换
自动转换:兼容的数据类型
1.小类型转大类型会自动进行类型转换
2.精度低的向精度高的自动转换
3.Boolean不能转换为其他类型
强制类型转换 语法:目标类型 变量 = (目标类型) 原目标变量
1.大类型转小类型需要强制转换(但是可能会丢失数据精度)
2.精度高的转换精度低的需要强制转换
byte、short、char相互进行运算,结果会自动提升为int类型
小类型和大类型进行运算,结果会自动提升到大类型(byte、short、char除外)
低精度和高精度进行运算,结果会自动提升到高精度类型
转义字符
作用:如果取消或者赋予某些字符特性,需要使用转义字符例如打印”
转义字符: \
常见的转义字符组合:
自动提升规则
-
byte,short,chat相互进行+操作,结果会自动提升为int类型
-
小类型和大类型进行操作结果会是大类型
-
基本数据类型和String进行+运算结果会自动提升到String类型
-
与string 类型的变量使用 + 号,结果为字符串拼接,将变量中的值为字符串内容的拼接结果
补充内容
1. 在Java中所有整数默认为int类型,小数默认为double
2. 浮点类型支持科学计数法,占用较小的空间可存储更多的数据,但无法保证数据计算精度,只能存储近似值。
3. char类型使用unicode字符集(字符集决定可以存储字符的种类),采用UTF-16编码(约束字符存储到内存中的方式)
4. JDK13支持文本域,""" 文本域 """,可以跨行表示字符串
5. JDK10支持var类型变量,可以存储任意类型的数据,编译器自动推断再转换为对应类型
6. 整数字面值:
8进制:首位为 0
16进制:首位为 0x
2进制: 首位为 0b 1.7后
支持_分隔符,例如 int a = 10_000;
7. *Java中每个存储数据的空间称为slot一个slot占用4b空间,在Java中最小的数据存储空间为4b,double与long则占用两个slot。