变量与基本数据类型**
变量的概念:变量相当于内存中的一个储存空间的表示,变量是程序的基本组成部分,变量有三个基本要素(类型 + 名称 + 值)
数据类型
整数
byte(一个字节) short(两个字节) int(4个字节) long(8个字节)
默认为int类型,long后需要加上L/l
浮点数
浮点数=符号位 + 指数位 + 尾数位 尾数部分可能丢失(精度的损失)小数都是近似值
Java的浮点数也有固定长度和范围,不受具体的OS(操作系统影响)【float 4个字节 dou ble 8个字节】
浮点数默认为double类型,float后面需要加上F/f
浮点数有两种表现格式:
**十进制形式:**5.12 512.0f .123(必须有小数点,且是double类型)
**科学计数法:**5.12e2【5.12的十的二次方】 5.12e-2【5.12/10的二次方】
浮点数陷阱:使用2.7和8.1/3比较
**细节:**如果是直接查询得到小数或者直接赋值,是可以判断相等
字符类型
字符常量用单引号(’ ') Java中允许使用转义符 ‘\’ 来将其后的字符转为特殊字符常量
**在Java中char的本质是一个整数,**在默认输出时,是Unicode码对应的字符,要输出对应的数字,可以(int)字符
char类型是可以进行运算的,相当于一个整数,因为它有对应的Uincode码
储存:‘a’ ==> 找到ASCII码 97 ==> 二进制 ==> 储存
读取:二进制 ==> 97 ===> ‘a’ => 显示
Java类的组成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CGbwkBF6-1639992068842)(C:\Users\tao\AppData\Roaming\Typora\typora-user-images\image-20211202093229297.png)]
ASCII码的介绍
上世纪60年代,美国制定的**一套字符编码(使用一个字节),对英文与二进制位之间的关系,做了统一规定,这被称为ASCII码。**ASCII码 一共规定了128个字符。总共位一个字节(256位)
缺点:不能表示所有的字符
Unicode编码介绍
Unicode优点:将世界上所有的符号都纳入到其中,每一个符号都有独一无二的编码,使用Unicode编码不会出现乱码问题
Unicode缺点:一个英文和汉字都是占用2个字节,对于储存来说是浪费
Unicode范围:2的16次方,所以最多编码65536字符
Unicode编码兼容ASCII编码:0~127字符与ASCII编码是一样的,比如 'a’在ASCII编码中是0x61,在unicode码中是0x0061,都是对 应97,Unicode兼容ASCII
UTF-8编码
1.UTF-8 是在互联网上使用最广的一种Unicode的实现方式(Unicode的一个改进)
2.UTF-8 是一种变长的编码方式。它可以使用1-6个字节表示一个符号,根据不同符号而变化字节长度。
3.使用 大小可变编程 字母占1个字节,汉字占3个字节
基本数据类型的转换
范围:小到大 char–>int–>long–>float–>double
byte–>short–>int–>long–>float–>double
细节1: 有多种数据类型混合运算时,系统会自动转换容量最大的那种数据类型,再进行计算
细节2: 小数据范围大到大数据范围,系统会自动转,大的转换小的,系统会报错,需要强制类型转换
细节3: byte、short和char之间不会进行相互转换
细节4: byte、short和char,三者都可以计算,在计算时首先转换成int类型
**细节5: **boolean类型不参与转换
细节6: 自动提升原则,表达式结果的类型自动提升为 操作中最大的类型
强制类型转换
·当数据需要从大到小的时候,就需要强制类型转换
·强转符号只针对最近的操作数有效,往往需要小括号提升优先级
·char类型可以保存int的常量,但不能保存int的值,需要强转
·byte和short类型在进行运算时,会被当做int类型处理
String类型的转换
**·基本上就类型转为String语法:**将基本数据类型的值 + ""即可
**·String类型转换为基本数据类型:**通过基本类型的包装调用parseXX方法即可