数据类型
两大类
- 基本类型
- 引用类型
八大基本数据类型
整数
byte num1 =10;
short num2=20;
int num3=30; //最常用
long num4=30L //LONG 类型要在数字后面加个L
小数:浮点数
float num5=50.1F; //float类型要在数字后面加个F
double num6=3.141592653589793238462643;
字符
char name='郑'; //字符是一个字
/*字符串,String不是关键字,是类
String name="郑双蓬";*/
布尔值:是非
boolean flag=true;
//boolean flag=false
三大引用类型
类
接口
数组
拓展
整数拓展
//进制:二进制0b 八进制0 十进制 十六进制0x
int i=10;
int i2 =010; //八进制0
int i3=0x10; //十六进制0x
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
//将各个进制运算为十进制
浮点数拓展
银行业务怎么表示? 钱
//(需要计算而且不能有误差)使用 BigDecimal 数学工具类
//float
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//principle: 浮点数特点 有限 离散 舍入误差 大约 接近但不等于
//演示如下:
float f = 0.1f; //0.1
double d = 1.0 / 10; //0.1
System.out.println(f == d);//false
System.out.println(f);//0.1
System.out.println(d);//0.1
float d1 = 23131312312312313f;
double d2 = d1 + 1;
System.out.println(d1 == d2);//true
//抽象:上亿的数+1后与原来差距并不大,估算后相等,但很小的数则不同,因为误差的存在,会使得两数舍入后不相等
字符拓展
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 表:97=a 65=A 2字节 0~65536 Excel(2的16次方=65536)
char c3 = '\u0061';
System.out.println(c3);//a
//转义字符
// \t :制表符,实现对齐功能,水平制表
// \n : 换行符,将当前位置移到下一行开头
// \f : 换页符,将当前位置移到下页开头
// \r : 回车符,将当前位置移到本行开头
// \' : 单引号符,
// \" : 双引号符
// \0 :空字符
// \000 :1到3位八进制数所代表的任意字符
// \u0000: Unicode转义字符(上有示例)
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");
System.out.println("=========================================================================");
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa == sb);//true
String sc = "hello world";
String sd = "hello world";
System.out.println(sc == sd);//true
//对象 内存分析
布尔值拓展
boolean flag = true;
if (flag == true) {}//新手
if (flag) {}//老手
//Less is More! 代码要精简易读