2021-07-20

本文探讨了Java中的整数类型扩展,包括二、八、十、十六进制表示,以及浮点数类型double和float在表示精度上的问题,强调了浮点数比较的不精确性,并推荐使用BigDecimal处理高精度小数。此外,还介绍了字符型char的Unicode编码和转义字符,以及字符串String的比较特性。最后,提到了布尔值类型的使用注意事项。
摘要由CSDN通过智能技术生成

整数类型扩展

进制: 二进制0b 八进制0 十进制 十六进制0x

public class Demo3{
	public static void main(String[] args){
		int i1 = 10;
		int i2 = 010; // 八进制0
		int i3 = 0x10; // 十六进制0x 0~9    A~F 16
		System.out.printIn(i1); //10
		System.out.printIn(i2); // 8
		System.out.printIn(i2); // 16
	}
}

浮点数类型扩展

银行业务怎么表示?钱
double/float ?

public class Demo3{
	public static void main(String[] args){
		float f = 0.1f; //0.1
		double d = 1.0/10; //0.1
		System.out.printIn( f==d ); // fasle
		System.out.printIn( f ); // 0.1
		System.out.printIn( d ); // 0.1

		float d1 = 232323232323232f;
		float d2 = d1 + 1;
		System.out.printIn( di == d2); //true
	
	}
}

float浮点数精度是有限的,也是离散的,有的数字无法精确表示,会有舍入误差也就是会四舍五入,所以最好完全避免浮点数进行比较

因此,当对数字精确度有很严谨的要求时,float,double都不建议使用。推荐使用BigDecimal数学工具类,可以表示任意精度的小数

字符型类型的扩展

public class Demo1{
	public static void main(String[] args){
		char c1 = 'a';
		char c2 = '中';
		System.out.printIn(c1);	// a
		System.out.printIn((int)c1); // 97

		System.out.printIn(c2); // 中
		System.out.printIn((int)c2); // 20013
		
		//所有字符都是数字
		//Unicod编码 0~ 65536
		
		char c3 = '\u0061'; // Unicod编码 十六进制
		System.out.printIn(c3); //a

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

字符串型类型的扩展

public class Demo1{
	public static void main(String[] args){
		String sa = new String("Hello world!");
		String sb = new String("Hello world!");
		System.out.printIn( sa == sb); //false
		// 对象之间比较是比较地址,sa,sb是两个对象。new 说明是新的对象,sa,sb两个不同的对象。所以sa == sb 是错的。
		
		String sc = "Hello World!";
		String sd = "Hello World!";
		System.out.printIn( sc == sd); // true
		// sc = "Hello World!" 在内存中开辟了一个新的地址“Hello World!”地址,sd = "Hello World!",在内存中找是否有表示Hello World!的地址,如果有就表示内存中本来存在的,如果没有就行开辟一个地址
		因此,sc == sd 是正确的
	}
}

布尔值类型扩展

public class Demo3{
	public static void main(String[] args){
		boolean flag = true;
		if( flag == true) // if与(flag)含义相同
		{
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热带云朵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值