您的位置:首页 > 编程语言 > Java开发

【Java学习笔记】数据类型

2018-02-27 19:19 337 查看

文档注释

文档注释是用于生成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.12∗1025.12∗102

只有浮点数才可以使用科学计数法形式表示。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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据类型