在较前面的一篇博文《C/C++基本数据类型》中,我主要介绍了c/c++的基本数据类型。我们知道C语言没有具体规定各类数据类型所占内存的字节数,只要求long型数据长度不小于int型,short型不大于int型。具体的实现如何,由各计算机系统自行决定。

一般情况下,在Turbo C++中,int型和short型都是16位,而long型是32位。而有的c语言编译器给short型分配16位,而int型和long型分配32位。通常的做法是:把long型定为32位,把short型定为16位,而int型可以为16位,也可以是32位。

相比C语言而言,Java的8种基本数据类型的长度与平台无关。因此Java语言具有“’一次编译,到处运行”的优点。本文主要介绍Java的基本数据类型。Java语言的基本数据类型总共有以下8种,下面是按照用途划分出的4个类别:

整数型 byte   short   int  long
小数型 float                 double
字符型 char
布尔型 boolean

下面分别介绍这4种类别:

1.整数型

整数型是一类代表整数值的类型。当需要代表一个整数的值时,可以根据需要从4种类型中挑选合适的,如果没有特殊要求的话,一般选择int类型。4种整数型区别主要在每个数据在内存中占用的空间大小和代表的数值的范围。具体说明参看下表: 、

类型名称 关键字 占用字节 取值范围 默认值
字节型 byte 1 -2^7~2^7-1 0
短整型 short 2 -2^15-2^15-1 0
整型 int 4 -2^31-2^31-1 0
长整型 long 8 -2^63-2^63-1 0

说明:1、Java中的整数都是有符号数,也就是有正有负。

2、默认值指在特定的情况下才自动初始化,具体的情况后续将有叙述。

3、程序中的整数数值默认是int以及int以下类型,如果需要书写long型的值,则需要在数值后面添加字母L,大小写均可。

2.小数型

小数型是一类代表小数值的类型。当需要代表一个小数的值时,可以根据需要从以下2种类型中挑选合适的。如果没有特殊要求,一般选择double类型。由于小数的存储方式和整数不同,所以小数都有一定的精度,所以在计算机中运算时不够精确。根据精度和存储区间的不同,设计了两种小数类型,具体见下表:

类型名称 关键字 占用字节 取值范围 默认值
单精度 float 4 -3.4E+38—3.4E+38 0.0f
双精度 double 8 -1.7E+308—1.7E+308 0.0

 说明:1、取值范围以科学计数法形式进行描述。

2、在程序中,小数的运算速度要低于整数运算。

3、float类型的小数,需要在小数后加字母f,不区分大小写,例如1.01f。

3.字符型

字符型代表特定的某个字符,按照前面介绍的知识,计算机中都是以字符集的形式来保存字符的,所以字符型的值实际只是字符集中的编号,而不是实际代表的字符,由计算机完成从编号转换成对应字符的工作。Java语言中为了更加方便国际化,使用Unicode字符集作为默认的字符集,该字符集包含各种语言中常见的字符。在程序代码中,字符使用一对单引号加上需要表达的字符来标识,例如’A’、’a’等,当然也可以直接使用字符编码,也就是一个非负整数进行表示。具体见下表:

类型名称 关键字 占用字节 取值范围 默认值
字符型 char 2 0~2^16-1 0

   说明:1、字符型的编号中不包含负数。

2、字符型由于存储的是编号的数值,所以可以参与数学运算。

3、字符型可以作为Java语言中的无符号整数使用。

4、字符型的默认值是编号为0的字符,而不是字符0

4.布尔型

布尔型代表逻辑中的成立和不成立。Java语言中使用关键字true代表成立,false代表不成立。布尔型是存储逻辑值的类型,其实很多程序中都有逻辑值的概念,Java把逻辑的值用布尔型来进行表达。具体见下表:

类型名称 关键字 占用字节 取值范围 默认值
布尔型 boolean   true or false false

类型名称

关键字

占用空间(字节)

取值范围

默认值

布尔型

boolean

true或false

false

说明: 布尔型占用的空间取决于Java虚拟机(JVM)的实现,可能是1位也可能是1个字节。




原文:http://blog.csdn.net/tengweitw/article/details/23603041

作者:nineheadedbird

【Java编程】Java基本数据类型的更多相关文章

  1. JAVA基础语法:java编程规范和常用数据类型(转载)

    JAVA基础语法:java编程规范和常用数据类型 摘要 本文主要介绍了最基本的java程序规则,和常用数据类型,其中侧重说了数组的一些操作. 面向java编程 java是纯面向对象语言,所有的程序都要 ...

  2. 开始JAVA编程的敲门砖——JAVA开发环境搭建

    从头开始的java编程--JAVA开发环境搭建 一.什么是java的开发环境? 顾名思义java的开发环境是提供并保证整个java程序开发运行的必要的环境,搭建java开发环境是开始java编程的敲门 ...

  3. Java中的数据类型——通过示例学习Java编程(5)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=15 数据类型用来定义变量可以采用的值,例如,如果变 ...

  4. Java编程基础——常量变量和数据类型

    Java编程基础——常量变量和数据类型 摘要:本文介绍了Java编程语言的常量变量和数据类型. 常量变量 常量的定义 一块内存中的数据存储空间,里面的数据不可以更改. 变量的定义 一块内存中的数据存储 ...

  5. 乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符

    大家好,我是乐字节的小乐,这次要给大家带来的是Java变量与数据类型.本文是第一集:Java编程规范,关键字与标识符. 一.编程规范 任何地方的名字都需要见名知意: 代码适当缩进 书写过程成对编程 对 ...

  6. JAVA编程环境与基本数据类型

    <JAVA编程环境与基本数据类型> 随笔目录 # <JAVA编程环境与基本数据类型> 随笔目录 - Java小实例 java的编程环境 java数据类型 Java小实例 jav ...

  7. JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)

    switch语句和if-else语句不同,switch语句可以有多个可能的执行路径.在第四版java编程思想介绍switch语句的语法格式时写到: switch (integral-selector) ...

  8. [Java编程思想-学习笔记]第3章 操作符

    3.1  更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...

  9. Java编程思想重点笔记(Java开发必看)

    Java编程思想重点笔记(Java开发必看)   Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...

随机推荐

  1. [OpenCV] Write & Read files

    例如写 KeyPoint向量,以及他的描述矩阵. // ... vector<KeyPoint> key_points; Mat descriptors; // ... fs.open(o ...

  2. Android的Intent机制详解

    Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作.尽管 Intent 可以通过多种方式促进组件之间的通信,但其 基本用例主要包括以下三个: 启动 Activity: Activit ...

  3. XMPP 测试工具

    XMPP 测试工具(金庆的专栏 2016.10)XMPP的客户端Pidgin有个Debug Window, 可以显示所有发送和接收的xml节.但是无法发送任意的自定义节.<XMPP高级编程-使用 ...

  4. Android底部导航栏

    Android底部导航栏 今天简单写了一个底部导航栏,封装了一个库,用法比较简单 效果图 Github地址:https://github.com/kongqw/KqwBottomNavigation ...

  5. 【SSH系列】-- hibernate基本原理&&入门demo

        什么是hibernate?      hibernate在英文中是冬眠的意思,当冬季来临,世界万物开始准备冬眠,但是程序猿这种动物好像不冬眠,因为需求变了,要改bug,冬眠,对于对象来说就是持 ...

  6. [django] 利用多线程增加异步任务

    看到django异步大家的反应应该是celery这种消息队列组件,现在用的最多的最推荐的也是这种方式.然而我这需求就是请求来了,执行一个小程序,但是又不能确定这个小程序啥时候执行完,响应又要及时,丢给 ...

  7. 18 UI美化自定义形状shape

    自定义某个控件的形状 如 圆角 巨型 环形 : 在工程文件的新建 res/drawable/shape文件(以下键一个圆角) <?xml version="1.0" enco ...

  8. UNIX网络编程——利用ARP和ICMP协议解释ping命令

    一.MTU 以太网和IEEE 802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,Maximum Transmission Unit)      ...

  9. 【Unity Shaders】法线纹理(Normal Mapping)的实现细节

    写在前面 写这篇的目的是为了总结我长期以来的混乱.虽然题目是"法线纹理的实现细节",但其实我想讲的是如何在shader中编程正确使用法线进行光照计算.这里面最让人头大的就是各种矩阵 ...

  10. ExtJS学习(三)Grid表格

    表格说明 Ext中的表格功能非常强大,包括排序.缓存.拖动.隐藏某一列.自动显示行号.列汇总.单元格编辑等实用功能.表格由类Ext.grid.GridPanel定义,继承自Ext.Panel,其xty ...