java数据类型

来源:互联网 发布:手机拼图软件哪个好 编辑:程序博客网 时间:2024/06/05 15:49

数据类型

java的数据类型包括基本类型和复合类型两大类,其中复合类型包含了数组、类、接口。

基本数据类型

基本类型是四类八种。四类指数值类型的整型和浮点型、字符型、布尔型;下面表格分别对8种类型进行了比较。

基本数据类型 描述 字节数 取值范围 boolean 布尔型 1bit true,false char 字符型 2byte 0~65355 byte 字节型 1byte -128~127 short 短整型 2byte -32768~32767 int 整型 4byte -2(31)~2(31)-1 long 长整型 8byte -2(63)~2(63)-1 float 单精度浮点型 4byte 1.401e-45~3.402e+38 double 双精度浮点型 8byte 4.94e-324~1.79e+308d

注意:

  • char类型为16位无符号unicode字符,并且必须包含在一对单引号内。char型变量能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的。
  • long类型数据后面直接跟字母L或者l表示这是long型数值,为了和数字1区分,一般用L表示。
  • 表示浮点类型的float和double,数值包含小数点或者指数,表示为在数字后面带有字母F或f,D或d。

数据类型的转换

自动转换

当一个表达式中存在多种参与运算的数据类型时,如整型、浮点型和字符型的数据需要进行混合运算时,表达式中间计算结果可能会超出操作码的范围,在这种情况下,java会自动提升类型,将不同类型的数据转化为同一类型,然后再进行运算。
转换的规则容量小默认转化成容量大的,转换顺序:
byte->short->char->int->long->float->double

注意:

  • short和char之间规定不能转换。
  • boolean类型不可以转换为其它数据类型(无论是自动转换或者是强制转换)其专门用来进行逻辑判断。
  • byte和short一般会自动提升为int。
  • 所有的byte,short,char型的值会被提升为int类型。
  • 被final修饰的变量不会自动改变类型,当2个final修饰的变量操作时,结果会根据左边变量的类型,结果会根据左边变量的类型而转化。
  • -
强制转换

当目标数据类型的字节数小于该数据类型进行转换时,数值的范围就会减小,即转换过程中会损失部分数值精度。会产生溢出截断情况。
提升变量类型级别,以获取精度更高的计算结果,如两个整型进行除法运算,希望保留小数部分。
转换格式:(目的类型)表达式

注意:
- short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,不是short型,需要强转)
- short s1 = 1; s1 += 1;(可以正确编译)
- 输出语句中(x+y+”“+(x+y)+y)有字符类型的变量,之后的内容将会变成字符串相加。

引用类型和原始类型(如int 和 Integer) 有什么区别

Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类
boolean-> Boolean
char -> Character
byte ->Byte
short -> Short
int -> Integer
long -> Long
float -> Float
double -> Double
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

原创粉丝点击