Java基本数据类型简析

一、数据类型的划分


要注意的是:

Java里没有unsigned(无符号),Java里面的数都是带符号的

一个double值有15-17个小数位,一个float值有7到8位小数点

Java里二进制的整数以0b或者0B开头

只有浮点类型才可以使用科学计数法形式表示。(例如51200是一个int类型的,而512E2则是一个浮点型)

char类型的直接量:char类型的直接量有3种形式,分别是用单引号括起来的字符、转义字符和Unicode表示的字符。例如‘a’, ‘\n’, ‘\u0061’(四位数字)


二、部分运算符要点

  •  如果除法运算符的两个操作数有1个是浮点数,或者两个都是浮点数,则计算结果也是浮点数,而且此时允许除数是0,(例如-5.0/0 == -Infinity)或者0.05/0.0 == Infinity),0.0除以0.0或对负浮点数开方将得到一个非数,但是,

//下面的代码将出现异常
// java.lang.ArithmeticException: / by zero
System.out.println(“-5除以0的结果是::” + -5 / 0);

  •  %求余运算符:求余运算的结果不一定总是整数,如果求余运算的两个操作数都是整数类型,则求余运算的第二个运算数不能为0,否则将引发除以零异常。如果求余运算的两个操作数中有1个或者2个都是浮点数,则允许第二个操作数是0或0.0,只是求余运算的结果是非数:NaN(例如0.5%0 == NaN,0.0%0 == NaN)。0或0.0对零以外的任何数求余都将得到0或0.0。(例如0%0.4 ==0.0)

  • 正无穷大通过Double或Float的POSITIVE_INFINITY表示;负无穷大通过Double或Float的NEGATIVE_INFINITY表示;非数通过Double或Float的NaN表示。所有的正无穷大数值都是相等的,所有的负无穷大的数值都是相等的,而NaN不与任何数值相等,甚至和NaN都不相等。
  • <<(左移运算符)和>>>(无符号右移运算符)都是把空出来的位以0补充。

    >>(右移运算符):右移运算得到的结果的正负与第一个操作数的正负相同。

    对于上面三个移位运算符并不适合所有的数据类型,它们只适合对byte、short、char.、int和long等整数类型进行运算。对于低于int类型(如byte。short、char)的操作数总是先自动类型转换为int类型再移位。

    左移n位相当于乘以2的n次方,右移n位则相当于除以2的n次方


三、一些小细节

1.下面这样声明一点问题都没有

byte a = 1;
byte b = 2;

但是当要这样声明的时候

byte c = (byte)(a + b); 	//系统将会转换成int运算,必须使用强制类型转换符byte

2.字符串“true”和“false”不会直接转换成boolean类型,但是如果使用一个boolean类型的值和字符串进行连接运算,则boolean类型的值将会自动转换为字符串。

例如:

String str = true;
//报错
System.out.println(str);

String str = true + “”;
//下面将输出true
System.out.println(str);
3.
//下面的程序输出什么
String str=”我”;
byte[] c1=str.getBytes();
System.out.println(c1.length);
可能是 2、3、4 之一。因为 getBytes() 方法会根据当前默认的字符编码格式获取字节数组,gbk/gb2312 占 2 位,utf-8 占 3 位,unicode 占 4 位。所以这个问题告诫大家写代码最好指定编码,譬如可以通过 str.getBytes("GBK"),str.getBytes("UTF-8") 来指定输出。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值