java 数据类型

转载请注明出处:https://www.cnblogs.com/guoapeng/p/13783339.html

第一章:java 基本数据类型

Java 中的基本数据类型只有以上 8 个,除了基本类型(primitive type),剩下的都是引用类型(reference type)。

原始类型:boolean,char,byte,short,int,long,float,double。

包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double。

1. 布尔型:

原始类型(primitive type):

boolean:

说明:boolean数据类型表示一位的信息, 但是由于虚拟机处理的最小单位是byte, 所以存储一位的boolean信息仍然需要1byte。

存储字长:1byte

值范围:false, true

包装类型(reference type):

Boolean(java.lang.Boolean)

存储字长:

对象头(Header)(Markword + 类指针kclass):

32位系统上占用8bytes,64位系统上占用16bytes

实例数据(Instance Data):1byte

对齐填充(Padding):7bytes

总共:32位系统上占用16bytes,64位系统上占用24bytes

值范围:Boolean.FALSE, Boolean.TRUE

2. 整型:

8位:

原始类型(primitive type):

byte:

说明:byte 数据类型是8位、有符号的,以二进制补码表示的整数;

存储字长:1byte

值范围:-128(-2^7)到 127(2^7-1)

默认值:0

包装类型(reference type):

Byte(java.lang.Byte):

存储字长:32位系统上占用16bytes,64位系统上占用24bytes(参考Boolean对象存储结构推算)

16位:

原始类型(primitive type):

short:

说明:short 数据类型是 16 位、有符号的以二进制补码表示的整数

存储字长:2byte

值范围:-32768(-2^15)到 32767(2^15-1)

默认值:0

包装类型(reference type):

Short(java.lang.Short)

存储字长:32位系统上占用16bytes,64位系统上占用24bytes(参考Boolean对象存储结构推算)

32位:

基本类型(primitive type):

int

说明:int 数据类型是32位、有符号的以二进制补码表示的整数;

存储字长:4byte

值范围:-2,147,483,648(-2^31)到 2,147,483,647(2^31-1)21亿多, 比中国人口多约二分之一,约是世界人口的三分一

默认值:0

包装类型(reference type):

Integer(java.lang.Integer)

存储字长:32位系统上占用16bytes,64位系统上占用24bytes(参考Boolean对象存储结构推算)

64位:

原始类型:

long

说明:long 数据类型是 64 位、有符号的以二进制补码表示的整数;

值范围:-9,223,372,036,854,775,808(-2^63)到 9,223,372,036,854,775,807(2^63 -1)什么概念?

包装类型(reference type):

大于64位

对于某些科学计算,64位整数依然不够用, 比如本人曾经就遇到64位不够用的情况,用计算机尽可能快地求出尽可能多的素数,然而对于大于64位的整数java没有提供原始类型,此时可以使用java 类库提供的包装类型BigInteger(java.math.BigInteger) 该类是Number(java.lang.Number)的子类。

BigInteger bi = new BigInteger("1234567890");

System.out.println(bi.pow(5)); // 2867971860299718107233761438093672048294900000

BigInteger:

说明:BigInteger内部用一个int[]数组来模拟一个非常大的整数,BigInteger用于表示任意大小的整数;

BigInteger是不变类,并且继承自Number;

将BigInteger转换成基本类型时可使用longValueExact()等方法保证结果准确,但是要处理ArithmeticException;

将BigInteger转换成基本类型时也可使用longValue()等方法,如果BigInteger表示的范围超过了基本类型的范围,转换时将丢失高位信息,即结果不一定是准确的。

3. 浮点型:

32位

原始类型(primitive type):

float

说明:float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;浮点数不能用来表示精确的值,如货币;

值范围:IEEE745 ~ IEEE754

默认值是 0.0f;

包装类型(reference type):

Float(java.lang.Float)

64位

原始类型(primitive type):

double

说明:double类型同样不能表示精确的值,如货币;

值范围:IEEE745 ~ IEEE754

默认值是 0.0d;

包装类型(reference type):

Double

大于64位

java未提供大于64位浮动数的原始类型,但是在Java类库中提供了包装类型BigDecimal(java.math.BigDecimal)

货币单位建议使用java类库提供的包装类型BigDecimal

MYSQL数据库选择decimal类型,注意默认值 一定写成0.00, 不要用默认的NULL, 否则在进行加减排序等操作时, 会带来转换的麻烦!

4. 字符型:

原始类型(primitive type):

char

说明:char类型是一个单一的 16 位 Unicode 字符

值范围:Unicode 0 ~ Unicode 2^16

默认值:\u0000 (Unicode 0)

包装类型(reference type):

Character(java.lang.Character)

5. 字符串类型:

在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。

String实例的值是通过字符数组实现字符串存储的。

7. 数据类型小实验

浮点数为什么不能用来表示货币?

注:根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确。只能无限接近于那个值.

8. 参考文档:

java一个对象占用多少字节?

java 中 BigDecimal 详解

BigInteger:

深入理解Java String类

64位 java 数据类型_java 数据类型相关推荐

  1. Windows 32、64位系统编译器各数据类型大小和字节对齐关系

    何为32位64位? 32位64位其实就是32bit 64bit ,32位cpu单次处理指令4字节,64位8字节,因为1字节=1byte=8bit(32/8=4字节,64/8=8字节) 32位编译器:3 ...

  2. java+字节码工具64位_jclasslib 下载-jclasslib 32位64位(java字节码查看工具) 5.1 官方版 - 河东下载站...

    jclasslib是款免费的开源java字节码的查看工具:它支持进行查看您需要进行使用汉字运用到的Java字节码,并且还拥有一个的类库来让开发者进行读取,包括了修改.对JavaClass文件.字节码的 ...

  3. java教程win7 64位_win7系统安装64位JAVA的方法

    JAVA分32位版本和64位版本,有些用户要安装java的话,就要安装64位版本的JAVA,但是很多用户不知道要怎么操作,本文就给大家讲解一下 1.打开Windows7中的"计算机" ...

  4. java jdk 7 64位_jdk1.7 64位下载-jdk7 64位(Java SE Development Kit 7)下载 7u80 官方正式版-IT猫扑网...

    jdk7 64位(java SE Development Kit 7)是一个适合java开发人员安装使用的运行环境,jdk应用于很多开发软件产品,这里为大家分享的是jdk1.7 64位的完整安装包,需 ...

  5. 64位 java 数据类型_全面解析Java支持的数据类型及Java的常量和变量类型

    基本数据类型变量就是用来储存值而保留的内存位置.这就意味着当你创建一个变量时就会在内存中占用一定的空间. 基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中.因此,通过给变量分 ...

  6. java 分析数据类型_Java数据类型分析

    Java的简单数据讲解列表以下:编程 int:int为整数类型,存储的时候,用4个字节存储,范围为-2,147,483,648到2,147,483,647,在变量初始化的时候,int类型的默认值为0. ...

  7. 32位与64位机器下各数据类型长度对比

    64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂):可以访问大型数据库.本文介绍的是64位下C语言开发程序注意事项. 1 32 位和 64 ...

  8. java 高级数据类型_java 数据类型(上):分类

    java 数据类型有两种,一是基本数据类型,二是引用数据类型 一:基本数据类型 基本数据类型 有8种   布尔型(boolean),字节型(byte),字符型(char),短整型(short),整型( ...

  9. java 1.6u29 下载_jdk1.6 64位下载|JDK 6(Java SE Development Kit)下载6u43 64位官方版_java运行环境 IT猫扑网...

    jdk1.6 64位适用于x64的系统安装的java运行环境,Java SE Development Kit6是java开发人员必备的产品,也叫做jdk6,欢迎下载使用. 官方介绍 适用于您的计算机( ...

  10. java p代表哪种数据类型_java数据类型(八种基本数据类型+三种引用类型)

    1.整型 类型           占用字节                                        取值范围 byte                  1           ...

最新文章

  1. Spring Boot中使用Flyway来管理数据库版本
  2. python自动化办公都能做什么菜-python+selenium自动化(一)之环境搭建
  3. IBASE archive pre-processing report RIBARCHV
  4. 江西理工大学期末试卷c语言,2016年江西理工大学信息工程学院计算机应用技术(加试)之C语言程序设计复试笔试最后押题五套卷...
  5. 手机java软件_浅谈软件开发就业前景
  6. 前端自动化打包工具--webpack
  7. python数据结构-树
  8. 20155301 Exp7 网络欺诈防范
  9. 在Win10系统的服务器上离线安装SQL Server 2012中出现“启用windows功能NetFx3时出错”
  10. Eclipse安装SVN插件的方法
  11. 海康SDK语音转发实现(ubuntu)
  12. 平板触控笔有哪些用途?实用平板电脑手写电容笔推荐
  13. windows下的流氓软件删得彻底点
  14. gpio rk3399 控制_RK3326 RK3399 GPIO寄存器操作笔记
  15. 基于android的手机选课系统的实现
  16. Redis之时间轮机制(五)
  17. HTML之基础标签_思维导图版
  18. 选择排序(升序排列)
  19. 【观察】戴尔易安信ECS:领跑企业级对象存储,背后的底蕴与底气
  20. 强强联手 法大大电子合同金蝶云·苍穹版上线

热门文章

  1. 应用随机过程张波商豪_应用随机过程张波课后答案
  2. 【历史上的今天】7 月 3 日:人体工程学标准法案;消费电子领域先驱诞生;育碧发布 Uplay
  3. 超级详细的手把手教你使用Lighthouse更好推动项目性能优化,性能指标详解,优化方法,需要关注指标分析
  4. JAVA自学之路马士兵教程观看顺序
  5. java多线程执行任务(工具)
  6. 《Hibernate官方文档》_笔记
  7. OCR(联机手写汉字识别)
  8. 社交网站Friendster获第四项美国专利
  9. (CNVD-2021-49104) 泛微E-Office v9.0任意文件上传漏洞
  10. php微积分难吗,两句话让你学好微积分