数据类型扩展及面试题
1、整数类型扩展
public class Demo1 { public static void main(String[] args) { //整数扩展:进制。二进制:0b 十进制 八进制:0 十六进制:0x 开头。 int num1 = 0b10; //二进制 int num2 = 10; //十进制 int num3 = 010; //八进制 int num4 = 0x10; //十六进制 0~9 A~F System.out.println(num1); System.out.println(num2); System.out.println(num3); System.out.println(num4); } }
输出结果:
2、浮点数类型扩展
public class Demo1 { public static void main(String[] args) { //浮点数扩展。 //面试题:银行业务怎么表示? 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); System.out.println("=================="); float a = 232323232323F; float b = a + 1; System.out.println(a==b); } }
输出结果:
由于浮点数是有限、离散、舍入含差、大约、接近但不等于。,所以我们最好是避免使用浮点数进行比较。对于银行这种我们可以使用BigDecimal类进行比较。
3、字符类型扩展
public class Demo1 { public static void main(String[] args) { char c1 = 'a'; char c2 = '中'; System.out.println(c1); System.out.println(c2); System.out.println((int)c1); //强制转换成int类型 System.out.println((int)c2); //强制转换成int类型 System.out.println("--------------------"); char c3 = '\u0061'; //编码Unicode表 System.out.println(c3); } }
输出结果:
注意:所有的字符本质是数字。
4、转义字符
public class Demo1 { public static void main(String[] args) { System.out.println("原本样式:"+"Helloworld"); System.out.println("制表符:"+"hello\tworld"); // \t System.out.println("换行符:"+"Hello\nworld"); // \n System.out.println("空字符:"+"hello\0world"); // \0 System.out.println("回车符:"+"hello\rworld"); // \r } }
输出结果:
转义字符还有很多,这里只是稍作演示。
5、布尔类型扩展
public class Demo1 { public static void main(String[] args) { boolean flag = true; //以下这两行的意思是一样的,都是判断flag是不是true if(flag==true){} if(flag){} } }