繁花似锦觅安宁

导航

Java基础随笔

整数拓展

进制

  1. 二进制 0b开头

  2. 十进制

  3. 八进制 0开头

  4. 十六进制 0x开头

    int i = 10;//十进制
    int i2 = 010;//八进制
    int i3 = 0x10;//十六进制 0~9 A~F

     

浮点数拓展

float f = 0.1f;//0.1
double d = 1.0/10;//0.1

System.out.println(f==d);//false

float f1 = 1234567889909;
float f2 = f1+1;

System.out.println(f1==f2);//true

出现以上结果为什么呢?

原来,浮点数能表现的字长是有限的,但是他也是离散的,浮点数一般存在一种叫舍入误差的东西,很多数没有办法精确的表示,只能表示一个大约数,只是接近但不等于,这一系列属性表现出浮点数不适用于作比较,所以我们应该完全避免使用浮点数进行比较。那银行业务怎么表示呢?这里提供了一个BigDecimal这样的数学工具类,银行业务用BigDecimal就OK啦。

 

字符拓展

char c1 = 'a';//a
char c2 = '中';//中
//强制转换
System.out.println((int)c1);//97
System.out.println((int)c2);//20013

char c3 = '\u0061';
//转义
System.out.print(c3);//a

//转义字符
\t 制表符
\n 换行

强制转换可以把字符变为数字:

所有的字符本质还是数字,char类型涉及Unicode编码问题,Unicode编码(占2个字节)可以处理各种语言的文字。

String s1 = new String(original:"Study God");
String s2 = new String(original:"Study God");
System.out.print(s1==s2);//false 比较的是对象
String s3 = "Study God";
String s4 = "Study God";
System.out.print(s3==s4);//true 比较的是值

 

 

posted on 2020-03-13 11:53  繁花似锦觅安宁  阅读(67)  评论(0编辑  收藏  举报