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 = trueif(flag==ture){}   //新手
if(flag){}  //老手
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值