码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础随笔

时间:2020-03-13 13:03:59      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:问题   约数   var   big   十六进制   数学   plain   二进制   换行   

整数拓展

进制

  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 比较的是值

 

 

Java基础随笔

标签:问题   约数   var   big   十六进制   数学   plain   二进制   换行   

原文地址:https://www.cnblogs.com/studygod/p/12485487.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!