栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习记录3

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习记录3

数据类型 整数拓展:

进制
int i=0b10 // 二进制 0b
int i0=010 //八进制 0
int i1=10 //十进制
int i2=0x10 //十六进制 0x

浮点拓展:

银行业务用什么表示?有关于钱的问题
//采用BIgDecimal类,(数学工具类)
float //有限 离散 舍入误差 大约 接近但不等于
double //最好完全使用浮点数进行比较

public class Q {
    public static void main(String arg[]){
        float i1=0.1f;
        double i2=1.0/10;
        System.out.println(i1==i2);//false
    }
}

通过上面的小测试显示结果是false。

public class Q {
    public static void main(String arg[]){
        float i1=0.1f;
        double i2=1.0/10;
        System.out.println(i1==i2);//false
        float i3=1234549674865341f;
        float i4=i3+1;
        System.out.println(i3==i4);//ture
    }
}

加入另一个小测试结果页同样令人出乎意料,两个明明看似相等的数,在电脑上运行得到的结果确是不相等,而两个明显不相等的数在电脑上运行结果确是相等的。其原因就是float的数据大小有限,且运算带有舍入误差和接近但不等于。

字符拓展:
package Text;

public class Q {
    public static void main(String arg[]){
        float i1=0.1f;
        double i2=1.0/10;
        System.out.println(i1==i2);//false
        float i3=1234549674865341f;
        float i4=i3+1;
        System.out.println(i3==i4);//ture
        char s1='A';
        char s2='加';
        System.out.println(s1);
        System.out.println((int)s1);//强制转换  输出结果为65
        System.out.println(s2);
        System.out.println((int)s2);//强制转换  输出结果为21152
    }
}

//所以字符的本质还是数字。编码 Unicode表(A=65,a=97) 2 字节 0~2的16次方=65536。

char s3 = 'u0067';

试试看此条代码所输出的是哪个字符。

转义字符

u 4位十六进制数据所表示的字符,如u0014
t 水平制表符
v 垂直制表符
r 回车
n 换行

public class Q {
    public static void main(String arg[]){
        float i1=0.1f;
        double i2=1.0/10;
        System.out.println(i1==i2);//false
        float i3=1234549674865341f;
        float i4=i3+1;
        System.out.println(i3==i4);//ture
        char s1='A';
        char s2='加';
        System.out.println(s1);
        System.out.println((int)s1);//强制转换  输出结果为65
        System.out.println(s2);
        System.out.println((int)s2);//强制转换  输出结果为21152
        char s3 = 'u0067';
        System.out.println(s3);
        System.out.println("==============================");
        String ra = new String("Hello word");
        String rb = new String("Hello word");
        System.out.println(ra == rb);//false
    }
}

这里的ra rb内容明明是同样的,但为什么不相等呢?
String类型new的是一个新的对象,在面向对象的过程中,sa和sb是两个不同的对象,储存地址不同,所以不等。

布尔值扩展
boolean flag = true;
if(flag==ture){}   //新手
if(flag){}  //老手
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673361.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号