数据类型及数据类型扩展
数据类型
强类型语言
- 要求变量的使用要严格符合规定。所有变量都必须先定义后才能使用。
弱类型语言
java的数据类型分为两大类
- 基本类型(primitive type)
八大基本数据类型
整数:
int
byte
short
long //long类型要在数字后家一个L
浮点数:
float //float类型要在数字后加F以区分类型
double
字符:
char //char只能定义一个字符切要用单引号
//字符串 String不是关键词,是个类
布尔值:只占一位其值只有true和false两个
boolean flag =true
//boolean flag=fales;
- 引用类型(reference type)
数据类型扩展
public class Demo03 {
public static void main(String[] args) {
//整数扩展 进制 二进制0b 八进制0 十进制 十六进制0x
int i = 10;
int i2 = 010; //八进制0
int i3 = 0b10; //二进制0b
int i4 = 0x10; //十六进制0x 0~9 A~F(F就相当于是15)
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
System.out.println("=================================================================================");
//=================================================================================
//浮点数扩展 银行问题怎么表示? 钱
//float
/*可以表现的字长是有限的,是离散的,
浮点数都会存在一个叫做舍入误差,结果不能准确表示只能是一个大约数(接近但不等于)
*/
//double
//最好完全避免使用浮点数进行比较
float f = 0.1f; //0.1
double b = 1.0 / 10; //0.1
System.out.println(f);
System.out.println(b);
System.out.println(f == b); //false
float d1 = 231313131313131f;
float d2 = d1 + 1;
System.out.println(d1 == d2); //true
System.out.println(d1);
System.out.println(d2);
//BigDecimal (大数类型) 数学工具类
System.out.println("=================================================================================");
//=================================================================================
//字符拓展
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int) c1);//强制转换
System.out.println(c2);
System.out.println((int) c2);//强制转换
//强制转换可以把字符转换为数字
//所有的字符本质还是数字
/*编码问题:
Unicode编码可以处理各种语言文字的问题,它占两个字节,最多可以表示65536个字符
0-65536
Unicode 表(97=a 65=A) 区间范围U0000~UFFFF
*/
char c3 = '\u0061';
System.out.println(c3);
//转译字符
// \t 制表符(table)
// \n 换行
System.out.println("Hello\tworld");
System.out.println("Hello\nworld");
System.out.println("=================================================================================");
String sa = new String("HelloWorld");
String sb = new String("HelloWorld");
System.out.println(sa == sb);
String sc = "HelloWorld";
String sd = "HelloWorld";
System.out.println(sc == sd);
//对象 从内存分析
//布尔值扩展
boolean flag = true;
if (flag == true) {} //新手
if (flag) {} //老油条
//上面的两行代码是一样的,if默认的就是()里的是否等于真(true)
//less is more! 代码要精简易读
}
}