java学习之数据类型

来源:互联网 发布:淘宝定位跳转代码 编辑:程序博客网 时间:2024/04/28 08:34

一数据类型的划分

Java中的数据类型有如下几种.


其中基础数据类型共有4类8种。

1逻辑型-boolean。Java中的逻辑类型与c语言中的逻辑类型有些差异。不能用0或者非0的数字代表ture或者false.

2文本型-char。Java中的string并非基本数据类型,而是一个对象。Char则是真正意义上的基本数据类型。需要注意的是’a’与”a”是两个完全不同的概念。”a”代表一个字符串。’a’代表一个字符。进一步说就是单引号引的数据是char类型的,双引号引的数据是string类型的。

整数型-byte,short,int,long。需要注意的是java语言的整型常量默认为int型号,声明long类型后可以加”l”,否则就会出错。例如long l1 = 88888888888L如果没有l就会出错。

3浮点数型-float,double 需要注意的是浮点常量默认为double型。

二基本数据类型转换

整形,字符型和浮点型在混合运算中经常相互转换,转换时遵循以下原则。

1容量小的自动转换成为容量大的数据。类型数据类型大小关系如下

Byte,short,char小于int小于long小于float小于double

Byte,short,char不会相互转换,他们在计算时首先转换成int类型

2容量大的数据类型转换成容量小的数据类型时要加上强制转换符。

3混合计算时自动转成所有类型中最大的,然后计算

具体实例如下

Float f1 = o.1 是错误的,因为o.1被自动转换成为double类型,double类型比float大,因此出错。

long l2 = 888888888888 是错误的,因为代码中的整形数据自动转换成为int,int无法承载那么大,需要强制类型转换

int i= 1 i=i*0.1 是错误的。因为混合计算时自动转换成double类型,double类型无法装入int

byte b1 =1,b2 =2,b = b1-b2 是错误的。因为byte,short,char在计算时首先转换成为int,int无法装入byte

总结:

数据类型转换实质上就是给大象分配宿舍的问题。把右边的大象分配到左边鲸鱼的房间里没有问题,因为能撑得下。但如果把右边的大象分配到左边狮子的房间里就要出问题了,因为根本装不下。还有一点就是似乎byte,short,char只有在计算时才需要考虑到这点,如果不计算无需担心是否撑得下。因为byte b =23这种写法中,如果按照马士兵所讲整形自动转换成int,那么23就应该是int型,无法装入b.但实际中这种写法是没有问题的。

三数据存储区域

大致来说java内存分这么几个区域,大致马士兵老师的图


如果是基础数据类型存放在栈区,如果是对象类型存放在堆区。例如char s1 =’d’

String s3 = new string(“sfdsfs”)或者 string s4= “sdfds”那么s3和s4存放在堆区,s1存放在栈区。

四基础数据包装类

1基础数据类型的对应关系

byte

Byte

boolean

Boolean

short

Short

char

Character

int

Integer

long

Long

float

Float

double

Double

2装箱和拆箱

在jdk1.5之后出现了拆箱和装箱。那么什么是装箱和拆箱呢。

所谓装箱就是指的是把基本类型和引用类型包装起来使其具有对象的性质。拆箱是则与装箱相反。详细内容看下回分解。





0 0