热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一张表告诉你Java的数据类型

从图中我们可以看到Java共有8种基本数据类型:char、byte、short、int、long、float、double、boolean这里需要注意以下几个方面:


从图中我们可以看到Java共有8种基本数据类型:char 、byte、short、int、long、float、double、boolean

这里需要注意以下几个方面:

1.Java中字符串没有被当作数组,而是被当作对象来处理,类String和StringBuffer都可以用来表示一个字符串

2.Java不采用通常计算机系统采用的ASCII代码集,而是采用Unicode这样一个国际标准字符集。每个字符用16位表示,整个字符集共包含65535个字符。ASCII代码集中的字母A-Z和数据0-9在Unicode字符集中还是用十六进制的0x0041-0x005a、0x30-0x39来表示,以表示对ASCII码的兼容。

3.对于基本数据类型变量。如果是类变量,则其初始值为默认值(数值类型的默认值是0或0.0,字符类型的默认值是16位的0,布尔型的默认值为false)。而如果基本类型变量属于局部变量,可以事后再给该变量赋值。

4.final修饰的变量是常值变量,即赋值后变量内容不能再修改。如果前面再加上一个static则是将常值变量定义为一个类而不是实例的的常值变量。


一、基本数据类型简介

Java中基本数据类型所占的位数是确定的,不会因为机器的改变而改变

boolean 1位(1bit)

char 2字节(属于Unicode字符集,16位无符号型数据)

byte 1字节

short  2字节

int  4字节

long 8字节

float 4字节

double 8字节

1)对于多字节数据,不同的机器采取的存储方式不同,即所谓的大端和小端存储。

2)计算机处理中,如果一个数超出了计算的表达范围(如int 32位能表示的数据范围是-2^31~(2^31-1)),称为溢出。超出最大值为上溢,此时为同类型最小值。超出最小值为下溢,此时为同类型最大值。

3)想要知道int类型的最大和最小值:Integer.MAX_VALUE、Integer.MIN_VALUE

4)双精度double比单精度float具有更高的精度和更大的表示范围。但是float类型有着速度快,占用存储空间小的优点。

5)浮点数操作过程中不会因溢出而导致异常处理:如果下溢,则结果为0.0 。如果上溢,则结果为正或负无穷大(显示标识符为+Infinity或-Infinity),例如Double.POSITYVE_INFINITY

6)浮点数操作如果是数学中没有定义的值如0.0/0.0,则得到NaN(Not-a-Number),例如Double.NaN

7)字符常量是用单引号括起来的字符,例如’a‘。而"a"是包含了一个字符的字符串,二者是有区别的

8)与C、C++不同,Java中的字符数据不能用作整数,因为Java不提供无符号整数类型。但是、char类型的数字字符与int类型可以相互站换,这就涉及到后面的基本数据类型的转换问题。

二、基本类型数据间的相互转换

各数据类型的优先级顺序如下:

byte--->short--->char--->int--->long--->float--->double

当进行混合运算时候,低优先级的总是自动转换为高优先级类型,然后再参与运算。高级数据转换为低级数据,需要用到强制类型转换,例如:

int i ;

byte b=(byte)i;

但是这样可能会导致溢出或者精度的下降,最好不要使用。

三、基本类型数据的类包装

Java为每一个基本数据类型都封装了一个包装类。相应的包装类名字为:

Boolean、Character、Byte、Short、Double、Float、Integer、Long、

例如用整型数18来建议一个Integer类型的对象

Integer intObj1 = new Integer(18);

如果要从对象中提取出数值:

int vlaue = intObj1.intValue();


推荐阅读
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
author-avatar
晓玲建雯东佳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有