Java基础随笔

Posted studygod

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
?
//转义字符
制表符
换行

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

所有的字符本质还是数字,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 比较的是值

 

 

以上是关于Java基础随笔的主要内容,如果未能解决你的问题,请参考以下文章

Java基础随笔1

随笔java面试基础

java基础随笔12

JAVA随笔篇一(Timer源代码分析和scheduleAtFixedRate的使用)

Java基础随笔2

2017/05/08 java 基础 随笔