java 数据类型
2012-01-06 14:39 Rainbow 阅读(629) 评论(0) 编辑 收藏 举报java 数据类型
java同C#等托管类语言一样,数据类型分为:值类型和引用类型。
值类型也称作基本类型。目前java中的基本类型有:整数型,浮点型,逻辑型,字符型。
引用类型:数组,类,接口
每个数据类型,多是有大小和必要特点。这里我还是不免俗的写一下。关于大小的单位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存储:硬盘等永久存储空间