数据类型
Java是强类型语言
整数:long类型要在数字后面加个L
long num1 = 30L;
int num2 = 30;
byte num3 = 30;
short num4 = 30;
拓展
int i = 10;
int i2 = 010;//八进制o
int i3 = 0x11;//十六进制0x
System.out.println(i); //输出10
System.out.println(i2); //输出8
System.out.println(i3); //输出17
浮点数:float类型要在数字后面加F
float num5 = 50.1F;
double num6 = 3.14159;
拓展
float f = 0.1f;
double d = 1.0 / 10;
System.out.println(f == d); //输出 false f:0.1 d:0.1
float d1 = 23131312312312313f;
float d2 = d1 + 1;
System.out.println(d1 == d2); //输出 true
原因:
float(浮点数):有限、离散、存在舍入误差、近似数,因此最好不用浮点数进行比较
解决方案:用BigDecimal——数学工具类
字符串:string不是关键字,是一个类
char name='A';
char namea='中';
String nameb="中国";
拓展
1.所有的字符本质还是数字
char c1 = 'a';
char c2 = '中';
System.out.println(c1); //输出 a
System.out.println((int) c1); //输出 97 强制转换
System.out.println(c2); //输出 中
System.out.println((int) c2); //输出 20013 强制转换
unicode编码表:(97=a 65=A) U0000-UFFFF占2个字节 可表示 65536 个字符
2.转义字符:\t \n \u
char c3 = '\u0061'; //十六进制 61H=97D
System.out.println(c3); //输出a
3.对象 从内存分析
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa == sb); //输出false
String sc = "hello world";
String sd = "hello world";
System.out.println(sc == sd); //输出true
布尔值:是非
boolean flag1=true;
boolean flag2=false;