Java基础(一) 八大基本数据类型
自从Java发布以来,基本数据类型就是Java语言的一部分,分别是byte, short, int, long, char, float, double, boolean.
其中:
整型:byte, short, int, long
字符型:char
浮点型:float, double
布尔型:boolean
在详细介绍之前,先科普一下,Java中最小的计算单元为字节,1字节=8位(bit)。
一. 整型
Java中整型数据属于有符号数,即第一个bit位为0表示正整数,第一个bit位为1表示负整数。在计算机中负数由补码进行表示,那么补码如何计算呢?
补码=源码取反 + 1;
如:
22,在计算机中的表示为00010110,
-22,取反:11101001,加1:11101010
byte
byte属于Java中的整型,长度为1字节8bit,取值10000000(-128)到 01111111(127),变量初始化默认值为0,包装类Byte
short
short属于Java中的整型,长度为2字节16bit,取值10000000 00000000(-32768)到 01111111 11111111(32767),变量初始化默认值为0,包装类Short
int
int属于Java中的整型,长度为4字节32bit,取值-2^31 (-2,147,483,648)到 2^31-1(2,147,483,647),变量初始化默认值为0,包装类Integer
long
long属于Java中的整型,长度为8字节64bit,取值-2^63 (-9,223,372,036,854,775,808)到 2^63-1(9,223,372,036,854,775,8087),变量初始化默认值为0或0L,包装类Long
二. 浮点型
Java中浮点型数据无法由二进制直接表示,而是一种对于实数的近似数据表示法,它遵循IEEE 754标准
float
float属于Java中的浮点型,也叫单精度浮点型,长度为4字节32bit,变量初始化默认值0.0f,包装类Float
1. float结构
包含三部分:符号位、指数位、尾数位
| 符号位(S) | 指数位(E) | 尾数位(M) | |
|---|---|---|---|
| 长度 | 1bit | 8bit | 23bit |
| 说明 | 0表示正数,1表示负数 | 格式为 ,E值范围:(0,255),指数位取值:( ,![]() |
形式为1.M或0.M。其中当E=0时,取1.M,称为正规形式,当E!= 0时,取0.M,称为非正规形式 |
2. float取值
正规形式:
非正规形式:
根据上面公式很容易计算出float的取值范围为:

(最小值,当符号位S取1,指数位E取255)

(最大值,当符号位S取0,指数位E取255)
能取到其间的近似数据。
注意:根据指数位和尾数位的取值不同,还有很多特殊情况,如NAN,正无穷,负无穷,但平时基本不会用到,这里不再深入;同时由于是近似值,因此无法表示金额,表示金额建议使用BigDecimal
double
double属于Java中的浮点型,也叫双精度浮点型,长度为8字节64bit,变量初始化默认值0.0d,包装类Double
1. double结构
包含三部分:符号位、指数位、尾数位
| 符号位(S) | 指数位(E) | 尾数位(M) | |
|---|---|---|---|
| 长度 | 1bit | 11bit | 52bit |
| 说明 | 0表示正数,1表示负数 | 格式为 ,E值范围:(0,2047),指数位取值:( , ) |
形式为1.M或0.M。其中当E=0时,取1.M,称为正规形式,当E!= 0时,取0.M,称为非正规形式 |
2. double取值
正规形式:
非正规形式:
根据上面公式很容易计算出double的取值范围为:

(最小值,当符号位S取1,指数位E取2047)

(最大值,当符号位S取0,指数位E取2047)
能取到其间的近似数据。
注意:根据指数位和尾数位的取值不同,还有很多特殊情况,如NAN,正无穷,负无穷,但平时基本不会用到,这里不再深入;同时由于是近似值,因此无法表示金额,表示金额建议使用BigDecimal
三. 字符型
char
char属于java中的字符型,占2字节16bit,可以赋值单字符以及整型数值, 变量初始化无默认值,包装类Character。
如:
char a = 'a';
char a = '中';
char a = 12; // 取值范围0~65536,因为char类型在ASCII字符编码中,有对应的数值,可直接做运算,输出字符表中对应的字符
四. 布尔型
boolean
在JVM中并没有提供boolean专用的字节码指令,而boolean类型数据在经过编译后在JVM中会通过int类型来表示,此时boolean数据4字节32位,而boolean数组将会被编码成Java虚拟机的byte数组,此时每个boolean数据1字节占8bit.
--Java虚拟机规范
仅有两个值true, false,变量初始化默认值false
Java基础(一) 八大基本数据类型的更多相关文章
- Java基础(二) 基本类型数据类型、包装类及自动拆装箱
我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long ...
- Java基础语法和基本数据类型
Java基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作. 对象:对象是类的一个实例,有状态(属性)和行为(方法). 类:类是一个模板,他描述一类对象的行为 ...
- Java基础语法:基本数据类型
Java是一种强类型语言,每个变量都必须声明其类型. Java的数据类型 分为两大类:基本类型(primitive type)和引用类型(reference type). Java的所有八种基本类型的 ...
- Java基础(标识符,数据类型,数据转换,变量)
注释 Java中的注释有3种: 单行注释 // 多行注释 /**/ 文档注释 /***/ 注释不会被执行,是给我们写代码的人看的 书写注释是一个非常好的习惯 标识符 Java所有的组成部分都需要名字, ...
- java基础1_标识符,数据类型
JDK的卸载与安装 : 1 卸载 a 从程序中卸载 控制面板 - 程序和功能 - 卸载JDK; b 删除 C:\Windows\System32 下面的 java javac java ...
- Java基础2:基本数据类型与常量池
本文会结合虚拟机对引用和对象的不同处理来介绍三大特性的原理. 三大特性:继承 封装 多态 继承 Java中的继承只能单继承,但是可以通过内部类继承其他类来实现多继承. public class Son ...
- java基础1之基本数据类型
java的数据类型 整数型(byte.short.int.long) 编程过程中,默认是int类型.long类型的字面值后面需要加上L或l PS:java底层,byte.short是按照32位计算的. ...
- Java基础-4变量与数据类型
变量:变量是Java程序中的一个基本存储单元.变量是一个标识符.类型及一个可选初始值的组合定义.所有的变量都有一个作用域,即变量在某一区域有效. 基本的变量声明方式如下: int a; float b ...
- java基础之一:基本数据类型
在java中有基本数据类型和引用类型两种,今天来说下基本数据类型和其对应的包装类的之间的关系. 一.概述 java中的基本数据类型有八种,分别是char.byte.short.int.long.flo ...
随机推荐
- BeforeFieldInit的小叙
BeforeFieldInit是什么 上片的文章中我们看到了有静态构造函数,和没有静态构造函数,代码的执行顺序有着显著的区别.然后,我们反编译了下代码,发现了在类中有一个BeforeFieldInit ...
- WPF 等距布局
原文:WPF 等距布局 本文告诉大家如何使用 WPF 的自定义布局做等距布局. 实际做的效果很简单,因为在开发我容易就用到了等距的控件.等距控件就是在指定的宽度下,平均把控件放在水平的地方,这样相等于 ...
- Creating Apps With Material Design —— Defining Custom Animations
转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出.谢谢 定义动画 在材料设计动画让用户与您的应用程序 ...
- lzugis——Arcgis Server for JavaScript API在自己的定义InfoWindow
你看到这个标题嫌烦.因为我最近一直与研究问题,相关文章使这些也可以只,同时要读我文章的朋友.我的文章能够给你带来帮助. 在相关的内部的前两篇文章,达到InfoWindow经div实现的东西,成Info ...
- Python 标准库 —— string
1. maketrans()/translate() maketrans(frm, to) -> string, 建立从字符串 frm 到 to 的映射表(字符串的形式): translate( ...
- WPF 窗体基类实现的体验及实现回车到下一控件
原文:WPF 窗体基类实现的体验及实现回车到下一控件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/jsyhello/article/details ...
- 工作流管理平台Airflow
Airflow 1. 引言 Airflow是Airbnb开源的一个用Python写就的工作流管理平台(workflow management platform).在前一篇文章中,介绍了如何用Cront ...
- WPF模拟Office2010文件菜单的TabControl模板
原文:WPF模拟Office2010文件菜单的TabControl模板 这是Office2010中的文件菜单点开后的效果.本文我将以强大的WPF(www.itstrike.cn)来实现类似的效果.希望 ...
- 调用FileSystemObject.CopyFile发生没有权限的错误
作者:朱金灿 来源:http://blog.csdn.net/clever101 最近编写一个JScript,在调用FileSystemObject.CopyFile发生没有权限的错误,具体如下图: ...
- hdu 4035 可能性DP 成都网络游戏
http://acm.hdu.edu.cn/showproblem.php?pid=4035 获得: 1.首先推断是不是树.事实上,所有的感觉身影,既看边数==算-1是不成立 2.有时候,我告诉孩子来 ...
,E值范围:(0,255),指数位取值:(
,
,E值范围:(0,2047),指数位取值:(
,
)