JavaSE复习~5:基本数据类型

Posted Aloys Wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE复习~5:基本数据类型相关的知识,希望对你有一定的参考价值。

数据类型

java有两大类数据类型:基本数据类型引用数据类型

基本数据类型

  • 整数型:byte、short、int、long
  • 浮点型:float、double
  • 字符型:char
  • 布尔型:boolean

各种基本数据类型的取值范围:

数据类型 位数 默认值 取值范围 举例说明
byte(位) 8 0 -2^7 - 2^7-1 byte b = 10;
short(短整数) 16 0 -2^15 - 2^15-1 short s = 10;
int(整数) 32 0 -2^31 - 2^31-1 int i = 10;
long(长整数) 64 0 -2^63 - 2^63-1 long l = 10l;
float(单精度) 32 0.0 -2^31 - 2^31-1 float f = 10.0f;
double(双精度) 64 0.0 -2^63 - 2^63-1 double d = 10.0d;
char(字符) 16 0 - 2^16-1 char c = \'c\';
boolean(布尔值) - false true、false boolean b = true;
void

举例:byte数据类型在计算机中的表示:

注意事项

  • 字符串不是基本类型,而是引用类型
  • 浮点型可能只是一个近似值,并非精确的值
  • 表示范围与字节数不一定相关,如float比long表示范围广,但是float是4字节,long是8字节
  • 浮点数中默认类型是double,整数中默认类型是int
  • 如果要给long变量赋值,常量应该加后缀 L 或者 l
  • 如果要给floag变量赋值,常量后缀应该加 F 或者 f

整数类型

整数类型的默认类型是 int

浮点数类型

浮点数类型的默认类型是 double

字符类型

字符类型的常量有三种表示的方式:

  1. 直接通过单个字符指定字符型常量:如 \'A\'\'B\'\'5\'
  2. 通过转移字符表示特殊字符型常量:如 \'\\n\'\'\\\\\'
  3. 直接使用Unicode值来表示字符型常量:如: \'\\u66f9\'\'\\u950b\'

常用的转义字符:

Unicode编码表:

Unicode只有一个字符集,中、日、韩的三种文字占用了Unicode中0x3000到0x9FFF的部分
Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字"经"的编码是0x7ECF,注意字符编码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制 就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。 编码从0到127的字符与ASCII编码的字符一样,比如字母"a"的Unicode 编码是0x0061,十进制是97,而"a"的ASCII编码是0x61,十进制也是97, 对于汉字的编码,事实上Unicode对汉字支持不怎么好,这也是没办法的, 简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万 多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字 也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用 4个字节来编码字符,不过现在普遍采用的还是UCS-2,只用两个字节来 编码,看一下Unicode对汉字的编码

基本数据类型的转换

当数据类型不一样时,将会发生数据类型转换

自动转换(隐式)

  1. 特点:代码不需要进行特别说明,自动完成
  2. 规则:数据范围从小到大

注意:

  • char、byte、short等类型在计算时首先会转换为int类型,然后在进行计算
  • boolean 类型不能发生数据类型转换

强制转换(手动)

语法:(要转换的目标类型) 要转换的数据

  1. 需要自己生命如何转换
  2. 会出现数据或精度损失

以上是关于JavaSE复习~5:基本数据类型的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE复习基础巩固

JavaSE基础基本数据类型族谱及易错点代码分析

JavaSE复习总结之集合(Collection)

JavaSE复习~运算符与表达式

JavaSe基本知识

动态SQL基础概念复习(Javaweb作业5)