【Java学习笔记】数据类型

文档注释

文档注释是用于生成API文档(用于说明类、方法、成员变量的功能),javadoc工具默认只处理以public或protected修饰的类、接口、方法、成员变量、构造器、和内部类之前的文档注释。

整型

1)赋值问题

long bigDig = 9999999999999;
//错误代码,系统不会把整数值当成long类型处理,所以超出int的表述范围,从而引起错误
long bigDig = 9999999999999L
//在数值后使用L后缀,强制是用long类型(L更易与数字1区分)
//同理double、float类型的赋值也是如此

C#中并不存在这个问题…感觉很难受。
2)定义二进制数

int binVal1 = 0b11010100;          //212
byte binVal2 = 0B11010100;        //-44
long binVal1 = 0b11010100L;          //当数值末尾加上L后缀时,则为64位了
  • 最高位是符号位(1为负,0为正);
  • int是4byte(即32位),而11010100是8位长,不足32位,最高位为0,所以是正数;
  • byte是1byte(即8位),最高位为1,所以是负数;

3) 下画线分割数值位数
当程序中用到的数值位数特别多时,我们可以使用下画线来分割数值位数,这个很喜欢。

int binVal1 = 0b1111_1111_0001_1111;
double pi = 3.14_15_926;

字符型

1)ASCII字符集与Unicode字符集

  • ASCII字符集为8位编码。特殊字符用转义字符来进行表示(‘\n’);
  • Unicode字符集为16位编码,又被称为万国码。直接使用Unicode值来表示,格式是’\uXXXX’,XXXX代表一个十六进制整数。(’\n’=’\u000a’);
char ch1 = '\n';
Char ch2 = '\u000a';

浮点数

1) 赋值问题
浮点数默认是double类型的,如int类型一样,如果希望得到一个float类型的数,需要进行强制转换。

Float f = 5.6F;

2) 科学计数法
5.12e2 = 5.12102 5.12 ∗ 10 2
只有浮点数才可以使用科学计数法形式表示。51200是一个int类型的值,而512e2则是浮点数。

3)正无穷大、负无穷大、非数(NaN)
正浮点数 / 0 = 正无穷大,可用Double.POSITIVE_INFINITY表示
负浮点数 / 0 = 负无穷大,可用Double.NEGATIVE_INFINITY表示
0.0 / 0.0 = 非数
所有正无穷大整数除以0则会抛出异常。

布尔型

1)Java中的bool值

  • Java中boolean类型的值只能够是true或false,不能用0或非0来代表。
  • 其他数据类型也不能转换成boolean类型。
  • boolean类型虽然只需要1位即可保存,但实际会为其分配1byte的空间。

类型转换

1)自动类型转换
表数范围小的数值可以直接赋给另一个表数范围大的变量,否则需要进行强制转换。

(虽然int与float都是用4个字节进行存储,但float表示的范围却比int大,其实是因为它们的存储方式有本质上的不同,float的存储结构=符号位(1bit)+指数(8bit)+尾数(23bit),参考链接)
2) 字符串转换成其他类型

String str = "45";
int iVal = Integer.parseInt(str);
double bVal = Double.parseDouble(str);

常用的有:int对应Integer、double对应Double、float对应Float。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值