代码改变世界

java 数据类型

2012-01-06 14:39  Rainbow  阅读(629)  评论(0编辑  收藏  举报

java 数据类型

java同C#等托管类语言一样,数据类型分为:值类型和引用类型。

值类型也称作基本类型。目前java中的基本类型有:整数型,浮点型,逻辑型,字符型。

引用类型:数组,类,接口

 

QQ截图20120106144227

 

 

 

 

 

 

 

 

 

每个数据类型,多是有大小和必要特点。这里我还是不免俗的写一下。关于大小的单位bit中文翻译是 位。就是我们常说的小b,还有大B就是指的byte,中文翻译 字节。8bit=1Byte  。关于大小B,在这里说一下平时我们遇到的情况,因为好多人对这个多有点迷糊,我们在装宽带的时候,往往会问是多大带宽的。好比我用的是10M的宽带,但是别忘了运营商是用小b作为单位的,你直接直接看一下网卡的流量计算就明白了。但是操作系统对文件的大小是以大B为单位的。这样就出现了差异了,以下载为例,10M按说速度应该可以到10m啊。去看看迅雷,最大下载速度一直徘徊在1.2M左右。这样就等式就出现了:10Mb/s=1.25MB/s

类型 大小(bits) 备注
byte 8  
short 16  
int 32  
long 64  
float 32  
double 64  
char 16 JAVA是unicode的编码
boolean 1 ture/flase

基本类型转换

自动转换,一个原则是小转大。

byte->short(char)->int->long->float->double

强制类型转化

基本类型之间的转化。Java的类型检查很严格,从低精度转换到高精度是无须显式转换的,double d = 123;。但是反过来,进行窄化转换,由高精度向低精度,或者一种类型到另一种类型,则必须使用强制类型转化。Java提供了安全转化机制,但是结果是否是期望的,你自己保证吧。
double d = 12.5;
float f = (int) d; //结果不是13,而是12

关于值类型和引用类型的区别可以看一下我另一篇博文。引用类型的说明会在面向对象的文章说明。其实这个方面的内容归根结底到要涉及到java的内存模型。在这边简单说一下

◆寄存器:我们在程序中无法控制

◆栈(Stack):存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中

◆堆(Heap):存放用new产生的数据  引用类型本身

◆静态域:存放在对象中用static定义的静态成员

◆常量池:存放常量

◆非RAM存储:硬盘等永久存储空间