A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 825176857 中级黑马   /  2015-7-16 00:24  /  213 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数据类型

数据类型就是对内存位置的抽象表达。程序员可以利用多种数据类型:某些由编程语言定义,某些由外部库定义,还有些则由程序员来定义。
很多编程语言都依赖于特定的计算机类型和对数据类型属性的具体编译实现,比如word和integer数据类型的大小等。
另一方面,Java的虚拟机负责定义其内置数据类型的各方面内容。这就意味着不管Java虚拟机(JVM)运行在何等低级的操作系统之上,
数据类型的属性都是完全一样的。

简单数据类型
简单数据类型是不能再简化的、内置的数据类型,由编程语言定义,表示真实的数字、字符和整数。更大、更复杂的数据类型可以采用
简单数据类型的组合来定义。在大多数情况下,简单数据类型都具有其硬件等价物。比方说,int简单类型有时存放在32位硬件寄存器内。
Java提供了几类简单数据类型表示数字和字符。
简单数据类型通常划分为以下几种类别:实数、整数、字符和布尔值。这些类别中又包含了多种简单类型。比如说,Java定义了两种简单类型:
float和double,它们都属于实数类别,另外4种简单类型:byte、short、int和long则都属于整数类别。此外还有一种简单类型char则归于
字符类型。布尔值类别只有一种简单类型:boolean。表A详细列出了Java的简单数据类型.

表A
Java简单数据类型
简单类型                                 大小                                 范围/精度
float                                         4 字节                         32位IEEE 754单精度
double                                         8 字节                         64位IEEE 754双精度
byte                                                 1 字节                         -128到127
short                                         2 字节                         -32,768到32,767
int                                                 4 字节                         -2,147,483,648到2,147,483,647
long                                                 8 字节                         -9,223,372,036,854,775,808到9,223,372,036, 854,775,807
char                                                 2 字节                         整个Unicode字符集
boolean                                 1 位                                 True或者false
Java的简单数据类型
Java中的所有数字变量都是有符号的,Java不允许数据类型之间随意的转换。只有数字变量之间可以进行类型转换。
比如,boolean就不能转换为其他数据类型,而且其他数据类型也不能转换为boolean。
因为Java的简单数据类型都经过准确定义,而且直接内存访问也是不允许的,所以在Java语言中取消了sizeof运算符。
Java的简单数据类型并不是对象。为了采用面向对象方式对待Java简单数据类型,你需要首先用类封装它们。


封装类
Java还提供了Byte、Short、Boolean、Character、Integer、Double、Float和Long等内置的封装类。
这些封装(wrapper)类提供了很直观的实用方法。
比如,Byte、Float, Integer、Long和Double类都具有doubleValue()方法,通过它可以把存储在类的实例中的值转换为Double类型。
还有,所有的封装类都提供了静态的valueOf(String s)方法把给定的String转换为对应的简单类型。
集合类一般都是泛型,泛型需要使用基本类型的封装类。
比如ArrayList<Integer> 而不允许使用ArrayList<int>


简单数据类型初始化
在Java语言中,简单数据类型作为类的成员变量声明时自动初始化为默认值,除非显式地声明。
简单数据类型为某一方法声明局部变量时不会自动地初始化而且会导致编译器扔出类似以下的错误消息“Variable x may not have been initialized.
(x变量没有初始化)”

表B定义了Java简单数据类型的默认值。
表B
Java简单数据类型的默认值
类型
默认值
boolean
false
byte
0
short
0
int
0
long
0
char
′u0000′
float
0.0
double
0.0

我们还可以显式地初始化成员变量为其他值,如以下代码所示:
byte b = 5;
short s = 123;
int i = 1234;
long l = 12345;
float f = 123.45f;
double d = 12345.678;
char c = ′A′;
boolean z = true;

当不声明类型时可以加后缀区分,如:
hashMap.put("ID",0L);
hashMap.put("VALUE",3.14f);
//不加L  0会默认是int型,不加f  3.14默认是double型的
小结

Java定义了全套简单数据类型。此外,Java取消了其他变成语言中的硬件和编译器依附,允许程序员把注意力转移到其他问题上来。在下一篇文章里,我们将继续讨论某些经常用到的、Java定义的复杂数据类型,同时了解下如何利用它们来处理典型的编程问题。

3 个回复

倒序浏览
整理的好其全
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
说的好     
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马