`

数据类型

    博客分类:
  • JSE
阅读更多

 

【导读】Java 提供了几类简单数据类型表示数字和字符,本文对其进行了分析讲解

数据类型

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

简单数据类型

简单数据类型是不能再简化的、内置的数据类型,由编程语言定义,表示真实的数字、字符和整数。更大、更复杂的数据类型可以采用简单数据类型的组合来定义。在大多数情况下,简单数据类型都具有其硬件等价物。比方说,int 简单类型有时存放在32 位硬件寄存器内。Java 提供了几类简单数据类型表示数字和字符。

简单数据类型通常划分为以下几种类别:实数、整数、字符和布尔值。这些类别中又包含了多种简单类型。比如说,Java 定义了两种简单类型:floatdouble ,它们都属于实数类别,另外4 种简单类型:byteshortintlong 则都属于整数类别。此外还有一种简单类型char 则归于字符类型。布尔值类别只有一种简单类型:boolean 。表A 详细列出了Java 的简单数据类型.

A Java 简单数据类型

简单类型 大小 范围/ 精度

float 4
字节 32IEEE 754 单精度

double 8
字节 64IEEE 754 双精度

byte 1
字节 -128127

short 2
字节 -32,76832,767

int 4
字节 -2,147,483,6482,147,483,647

long 8
字节 -9,223,372,036,854,775,8089,223,372,036, 854,775,807

char 2
字节 整个Unicode 字符集

boolean 1
True 或者false

Java 的简单数据类型

Java
中的所有数字变量都是有符号的,Java 不允许数据类型之间随意的转换。只有数字变量之间可以进行类型转换。比如,boolean 就不能转换为其他数据类型,而且其他数据类型也不能转换为boolean

因为Java 的简单数据类型都经过准确定义,而且直接内存访问也是不允许的,所以在Java 语言中取消了sizeof 运算符。

Java
的简单数据类型并不是对象。为了采用面向对象方式对待Java 简单数据类型,你需要首先用类封装它们。

封装类

Java
还提供了ByteShortBooleanCharacterIntegerDoubleFloatLong 等内置的封装类。这些封装(wrapper )类提供了很直观的实用方法。比如,ByteFloat, IntegerLongDouble 类都具有doubleValue() 方法,通过它可以把存储在类的实例中的值转换为Double 类型。还有,所有的封装类都提供了静态的valueOf(String s) 方法把给定的String 转换为对应的简单类型。清单A 的代码演示了这些封装类的一些用法。

简单数据类型初始化

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

Java 简单数据类型的默认初始值

清单B 中的代码显示所有的Java 简单数据类型都用做了Initialization 类的成员变量。该例还显示Initialization 类的构造器中局部声明了一个int 变量。在不修改以上代码的情况下,编译器会在对以上代码进行编译的时候扔出错误。

一旦引发问题的代码行(那些引用未初始化变量导致错误发生的代码)被删除或者注释掉。程序成功编译和执行之后就会显示以下的结果:

byte: 0

short: 0

int: 0

long: 0

float: 0.0

double: 0.0

char: 0

boolean: false

我们还可以显式地初始化成员变量为其他值,如以下代码所示:

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;

小结

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

 

来源于 : http://developer.51cto.com/art/200510/6614.htm

 

程序设计 :Java: 数据类型

From Wikibooks

Jump to: navigation , search

程序设计 :Java > 数据类型


目录

[隐藏 ]

<script type="text/javascript"> //&lt;![CDATA[ if (window.showTocToggle) { var tocShowText = &quot;显示&quot;; var tocHideText = &quot;隐藏&quot;; showTocToggle(); } //]]&gt; </script> [编辑 ] 上下文链接

目录 上一节 Java 开发工具 下一节 变量与常量

[编辑 ] 数据类型

数据类型是程序设计语言描述事物、对象的方法。 Java 数据类型分为内置类型和扩展类型两大类。内置类型就是 Java 语言本身提供的基本数据类型,而扩展类型则是 Java 语言根据基本类型扩展出的其他类型。扩展类型可以使 Java 核心库中的,也可以程序员根据需要自己扩展。

[编辑 ] 内置类型

Java 包括如下几种内置类型:

类型名称

类型定义

类型取值

boolean

布尔值,作二元判断

true , false

byte

8 位有符号整数

最小值 -128 ,最大值 127

short

16 位有符号整数

最小值 -32768 ,最大值 32767

int

32 位有符号整数

最小值 -2147483648 -231 ),最大值 2147483647 231 -1

long

64 位有符号整数

-263 ~(263 -1)

float

32 位浮点数

1.4E-45~3.4028235E38

double

64 位浮点数

4.9E-324~1.7976931348623157E308

char

16 Unicode 字符

不适用

内置类型也称作基本类型( Primitive Types ),是其他类型的基础。所有的其他类型(包括 Java 核心库和用户自定义类型)都是通过基本类型扩展而来的。这些类型是我们描述对象最基本的方式。比如:判断是否使用 boolean ;衡量大小、长度使用各种整型(包括 short , int , long )和浮点数( float double );表达字符使用 char ;而处理二进制数据块使用 byte

[编辑 ] 浮点值的精度

浮点值与我们通常所使用的小数是不同的。在使用中,它往往是难以确定的。常见的问题是定义了一个浮点数,经过一系列的计算,在数学上,它本来应该等于某个确定值。但是使用相等运算符 (==) 进行判断时,往往得出的结论是不等;或者本来应该大于 / 小于某个特定值,结果却可能刚好相反。因此,对于浮点值比较时,不能简单地使用 ==, >, < 等运算符。

我们做计算时,往往都有一个精度,或由于客观事实,或由于我们的需要。这样我们比较两个浮点数时,就不是简单的使用比较运算符了,而是在允许的精度之内作比较。比如:比较两个浮点数 (f1, f2) 是否相等,精度为 p

| f1 - f2 | < p   

----------  

''true''

| f1 - f2 | > p   

----------  

''false''

上面的 || 表示绝对值运算, java.lang.Math 类对绝对值运算提供了支持。 同样,比较 f1 是否大于 f2 ,如下:

( f1 - p ) > f2   

----------  

''true''

这种方法适用于大多数数据处理情况,但也有时候,必须是完全精确计算,这样就不能使用这种方法了,而应该采用 java.math.BigDecimal java.math.BigInteger 来计算。

关于浮点数精度问题还可以参看 您的小数点到哪里去了

[编辑 ] 值类型与引用类型

值类型与引用类型的区分是通过变量赋值来区分的。值类型在赋值时,把值传递给被赋值对象,而引用类型只把对象的引用传递给被赋值对象,举个例子:

 

 

 

来源 : http://zh.wikibooks.org/wiki/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1:Java:%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B

分享到:
评论

相关推荐

    组态王的数据类型

    "组态王的数据类型" 组态王是一个工业自动化软件平台,提供了多种数据类型来满足不同应用场景的需求。了解组态王的数据类型对于开发高效的工业自动化应用非常重要。 BIT 数据类型:BIT 数据类型是一种基本的数据...

    sqlserver数据库类型对应Java中的数据类型

    SQL Server 数据库类型对应 Java 中的数据类型 SQL Server 是一个关系数据库管理系统,Java 是一个广泛使用的编程语言。在 Java 中,对数据库的操作需要通过 JDBC(Java Database Connectivity)来实现,而在 JDBC ...

    易语言自定义数据类型变量保存

    自定义数据类型允许用户根据需求定义自己的数据结构,比如组合多个基本数据类型,形成新的复合类型。 本案例"易语言自定义数据类型变量保存"主要关注如何保存和恢复自定义数据类型的变量。在编程中,保存数据通常是...

    Java数据类型和MySql数据类型对应一览

    Java 数据类型和 MySql 数据类型对应一览 在 Java 编程语言中,数据类型是指变量或函数可以持有的值的类型。 MySql 数据库也具有其自己的数据类型,用于存储和管理数据。在本文中,我们将对 Java 数据类型和 MySql ...

    易语言取自定义数据类型大小

    在编程领域,特别是使用易语言(E语言)进行开发时,理解并操作数据类型的大小是非常重要的。易语言是一种中文编程语言,它具有直观的语法,旨在简化编程过程,尤其是对于初学者。本篇文章将深入探讨易语言中的...

    易语言自定义数据类型的内存存储方式

    在易语言中,自定义数据类型是一种重要的编程概念,它允许程序员根据需求定义自己的数据结构,比如组合多种基本数据类型,形成复合型的数据结构。本文将深入探讨易语言中自定义数据类型的内存存储方式及其相关知识点...

    西门子TIA博图数据块中数据类型的定义.pdf

    在数据块中,可以定义多种不同的数据类型,这些数据类型包括基本数据类型、复杂数据类型和用户自定义数据类型。 基本数据类型是TIA博图中预定义的一些简单数据类型,如布尔型(BOOL)、整型(INT)、实型(REAL)等...

    java数据类型的转换简单数据类型之间的转换 (2). 字符串与其它数据类型的转换 (3). 其它实用数据类型转换

    一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问下面笔者就开发中的一些体会介绍给大家。 我们知道,...

    sql数据类型说明

    本篇文章将详细阐述 SQL 中几种常见的数据类型及其应用特点,具体包括整型数据类型、浮点数据类型、二进制数据类型以及逻辑数据类型。 #### 整型数据类型 1. **INT(INTEGER)** - **描述**:`INT` 或 `INTEGER` ...

    IDA简单教程数据类型说明更改等

    ### IDA简单教程数据类型说明更改等内容详解 #### 一、引言 IDA是一款非常强大的逆向工程工具,广泛应用于软件安全分析、恶意软件研究等领域。对于初学者来说,掌握IDA的基本操作非常重要,特别是如何利用IDA来辅助...

    JAVA数据类型思维导图

    本资源“JAVA数据类型思维导图”提供了一种直观的方式来理解和记忆Java中的数据类型,包括基本数据类型和引用数据类型。下面将对这两个主要的数据类型进行详细解释。 1. 基本数据类型(Primitive Data Types) - ...

    SQL数据库数据类型说明

    SQL 数据库数据类型说明 SQL 数据库中有多种数据类型,每种数据类型都有其特点和应用场景。了解这些数据类型是 SQL 编程的基础。 1. 整型数据类型 SQL 数据库中的整型数据类型包括 bit、int、smallint 和 tinyint...

    实验7 Python组合数据类型.pdf

    Python组合数据类型是Python编程语言中用于存储多个数据值的内置数据结构。在Python中,组合数据类型包括列表(List)、元组(Tuple)和字典(Dictionary)。这三种类型各有其特点,可以存储不同类型的数据,包括...

    Informix 用户例程与数据类型开发指南

    根据提供的文件信息,“Informix 用户例程与数据类型开发指南”这一标题以及描述明确指出了文档的主要内容将围绕IBM Informix数据库系统中的用户定义例程(User-defined Routines)及自定义数据类型展开。尽管具体内容...

    易语言启动线程传自定义数据类型参数源码

    自定义数据类型可以通过“定义数据类型”命令创建,可以包含基本数据类型(如整数、浮点数、字符串等)以及其它自定义数据类型的组合,形成复杂的数据结构。在多线程环境中,如果需要在线程间传递这样的自定义数据,...

    JAVA数据类型与Hibernate的类型映射

    在Java编程语言中,数据类型分为两种:基本数据类型(如int、char)和引用数据类型(如类、接口、数组)。而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据...

    S7-300的数据类型

    S7-300数据类型 S7-300数据类型是 Siemens 公司开发的可编程逻辑控制器(PLC)S7-300系列的数据类型体系。该系列PLC广泛应用于工业自动化领域,S7-300数据类型是其核心组成部分。 一、基本数据类型 基本数据类型...

    c#数据类型课件,ppt,c#数据类型课件

    C#的数据类型主要分为两大类:基本数据类型和引用数据类型。基本数据类型包括整型、浮点型、字符型、布尔型、空类型以及枚举和指针(仅限于unsafe代码)。引用数据类型则包括类、接口、数组和委托,它们都是对象的...

    火山PC类似易语言的自定义数据类型结构体案例

    在编程领域,自定义数据类型和结构体是程序员在实现特定功能时不可或缺的工具。火山PC(VolcanoPC)是一个类似易语言的编程环境,它提供了丰富的编程特性,包括自定义数据类型的创建和使用。本案例将深入探讨如何在...

    SQL数据类型和转换

    在SQL中,数据类型是用来定义和组织数据的基本结构,它们决定了数据可以存储的类型和形式。转换则是将一种数据类型转换成另一种的过程,这在处理不同系统或接口间的数据交互时非常常见。JDBC(Java Database ...

Global site tag (gtag.js) - Google Analytics