day8 Java基础——数据类型及拓展和面试题讲解
- 数据类型
public class demo01 {
public static void main(String[] args) {
//八大基本数据类型
int num1 = 1000000000;//最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L;//Long类型要在数字后加L
//小数:即浮点数
float num5 = 50.1F;//float类型要在数字后加F
double num6 = 3.14159265358979;
//字符
char name = '字';
//字符串(String不是关键字,而是类)
//布尔值(true/false)
boolean flag = true;
}
}
- 变量
- 浮点数拓展
public class demo02 {
public static void main(String[] args) {
//整数拓展:进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;//十进制
int i2 = 010;//八进制0
int i3 = 0x10;//十六进制0x 0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=======================================");
//浮点数拓展 银行业务怎么表示?(钱)不能用float和double去算:(面试题)
float F = 0.1F;//0.1
double D = 1.0/10;//0.1
System.out.println(F);
System.out.println(D);
System.out.println(F==D);//判断F=D是否成立
System.out.println("=======================================");
//更诡异的:
float d1 = 232323232323232323f;
float d2 = d1 + 1;
System.out.println(d1);
System.out.println(d2);
System.out.println(d1==d2);
}
}
输出结果如下:
10
8
16
=======================================
0.1
0.1
false
=======================================
2.3232323E17
2.3232323E17
true
结论:浮点数float是有限,离散,舍入误差(即接近但不等于),所以最好完全使用浮点数进行比较,故银行业务用BigDecimal(数学工具类)
- 字符类拓展
public class demo03 {
public static void main(String[] args) {
//字符类拓展
char c1 = 'a';
char c2 = '中';
//输出
System.out.println(c1);
System.out.println(c2);
}
}
a
中
进程已结束,退出代码为 0
现在强制转换c1c2为int类型:
public class demo03 {
public static void main(String[] args) {
//字符类拓展
char c1 = 'a';
char c2 = '中';
//输出
System.out.println((int)c1);
System.out.println((int)c2);
}
}
97
20013
进程已结束,退出代码为 0
结论:所有的字符本质都是数字
编码:Unicode 表:97=a,65=A,2字节,可表示65536个
eg:
public class demo03 {
public static void main(String[] args) {
//字符类拓展
char c3 = '\u0061';
//输出
System.out.println(c3);
}
}
a
进程已结束,退出代码为 0
转义字符:
\t 制表符
\n 换行
。。。
public class demo03 {
public static void main(String[] args) {
//字符类拓展
System.out.println("你好,\t世界。");
System.out.println("你好,\n世界。");
}
}
你好, 世界。
你好,
世界。
进程已结束,退出代码为 0
- 布尔值拓展
public class demo04 {
public static void main(String[] args) {
//布尔值拓展
boolean flag = true;
if (flag==true){}//新手
if (flag){}//大佬
}
}