变量
int a = 10;
double score = 99.5;
char c = '男';
String name = "jack";
+号使用
左右两边都是数值型,做加法运算
有一边是字符串,做拼接运算
运算顺序:从左到右
整型
byte 1字节(8bit) 2**-7 - 2**7-1 存贮形式(3 = 00000011,第一个0表示正负数)
字节(基本单位)
bit(最小单位)
short 2
int 4
long 8 long后面要加L或者l(long a = 2001L)
浮点型
单精度float 4字节 (声明float 后面要加 F 或 f)
双精度double 8
存放形式:浮点数 = 符号位 + 指数位 + 尾数位
尾数部分可能丢失,造成精度丢失(小数都是近似值)
8.1 / 3 = 2.999999999999997 != 3
字符类型
单个字符
char a = 'a';
char b = 97; //ASCII表
char c = '\t';
char d = '韩';
(int)a = 97
(必须用‘’,“”是字符串
char类型是可以运算的,是unicode值)
布尔类型
1个字节
boolean a = true;
(不可以用 0 和 非0 值代替 flase 和 true)
自动类型转换
输出:97 80.0
1.当多种数据运算的时候,将所有的数据转换成容量最大的数据类型。
2.当大精度转换成小精度时会报错。
3.char 和 (byte , short)不能相互转换 (byte不能转成char,short不能转成char)
4.把具体数值转给byte时,会自动判断是不是在范围内,在的话可以转换。
5.byte,char,short 之间可以运算,他们会自动转换成int类型(只要出现byte,char,short,计算都会转换成int)
6.bool类型不参与类型转换
强制类型转换
会造成精度损失或数据溢出
int a = (int)1.9; //a = 1
byte b = 2000; //b = -48
练习:
答案:
基本数据类型和String的转换
转String:加号连接
String转:调库
对String转char:
实际上是取String的第一个字符
或者调库:
取出s5字符串中的第2个字符
编码
ASCII(128字符)
Unicode(字母和汉字统一占用两个字节)
utf-8(字母用1个字节,汉字用3个字节)
API
中文文档:https://www.matools.com