几年前,当我开始编辑Java Basics系列时,我认为将一些非常详细的信息拉到自己的帖子中是很有意义的。 这样,初学者的内容就更容易消化。 首先,我要介绍有关Java的8种原始类型的所有信息。

Java基本类型

正如本文标题所暗示的,Java语言内置了8种原始类型。 在以下小节中,我们将不按特定顺序查看所有八个基本类型。 对于每种原始类型,我们将描述如何使用它以及它的局限性。

原始类型

首先,Java整数是32位带符号的值(表示正值或负值),并由int关键字表示:

 int someNumber = 10 ; 

当然,像所有基本类型一样,整数有其局限性。 由于它们是32位的,因此我们要查看的范围是-2,147,483,648到2,147,483,647。 有很多数字! 当然,我们可以使用DrJava的交互窗格中的便捷技巧来确认该范围:

 Integer.MAX_VALUE // Prints 2,147,483,647  Integer.MIN_VALUE // Prints -2,147,483,648 

自然, int可能是用于简单计算的最常见的整数类型。 如果您需要更多的范围内,看到long的下方。

双重原始类型

int不同,Java double是64位浮点值,它们由double关键字标记:

 double someNumber = 110.55 ; 

提醒一下,浮点数只是实数。 换句话说,当我们使用双精度时,我们可以访问小数点。

由于双精度数是64位的,因此与整数相比,我们可以访问的数字明显更多。 如果我们使用相同的“交互”窗格技巧,则可以找出潜在值范围的巨大程度:

 Double.MAX_VALUE // Prints 1.7976931348623157E308  Double.MIN_VALUE // Prints 4.9E-324 

请记住,负指数意味着极小的数字(与极度负的数字相对),因此我们并不是在寻找与整数相同的范围。

通常, double是Java中浮点值的默认选择。 替代方法是float

字符基本类型

正如我们已经看到的,Java字符代表16位字符,并用char关键字标记:

 char someCharacter = 'f' ; 

Java中的所有字符都使用单引号定义。 同时,双引号用于定义字符串-我们稍后会讨论。

像往常一样,我们可以使用以下代码片段找出字符范围:

 Character.MAX_VALUE // Prints '???'  Character.MIN_VALUE // Prints '' 

为了理解这个范围,我们总是可以将结果强制转换为整数(稍后会详细介绍):

 ( int ) Character.MAX_VALUE // Prints 65535  ( int ) Character.MIN_VALUE // Prints 0 

事实证明, char类型是Java中唯一的无符号类型。 换句话说,一个字符的范围可以从0到65,535,其中每个数字都映射到一个特定的字符。 为了创建此列表之外的字符,Java可以组合成对的字符。 请查看Java中的“反向字符串”示例。

字节原始类型

当我们谈论二进制时,我们谈到了一点概念。 好吧,一组八位组成一个字节,Java将其作为原始类型来支持。 byte类型本质上只是一个8位数字,范围为-128至127。如所期望的,字节由byte关键字表示:

 byte someByte = 20 ; 

与往常一样,我们可以使用以下代码片段来确认byte类型的范围:

 Byte.MAX_VALUE // Prints 127  Byte.MIN_VALUE // Prints -128 

以我的经验, byte类型对于读取和处理原始数据很有用。 但是,总的来说,由于电位值的范围太小,我们可能不会使用它。

短原始类型

short类型是另一个整数类型,但是它比int类型占用更少的空间。 实际上,它只占用16位的一半空间,并用short关键字标记:

 short someNumber = 11 ; 

就范围而言, short类型仅将整数的一半作为时钟输入,但是我们可以像往常一样确认这一点:

 Short.MAX_VALUE // Prints 32767  Short.MIN_VALUE // Prints -32768 

出于实际目的, short仅具有65,546个可能值。 当内存和磁盘空间不足时,通常同时使用byteshort byte 。 否则,使用int是安全的,因为在声明整数时它是默认类型。

长原始类型

在频谱的另一端是long原始类型。 该类型表示极大的整数,我们可能希望这些整数甚至大于int类型可以提供的值。 long类型是一个64位有符号整数,这意味着值的范围为5百亿分之一。

当然,我们表示与多头long关键字:

 long someBigNumber = 1013401346173L; 

为了演示一个64位值可以具有多大的范围,让我们看一下以下代码片段:

 Long.MAX_VALUE // Prints 9,223,372,036,854,775,807  Long.MIN_VALUE // Prints -9,223,372,036,854,775,808 

对于计算给定时间范围内的光线传播距离,也许很long时间有用。 一秒钟后,光传播约3亿米。 如果我们编写了一个程序来实时跟踪光的距离,则int类型将在大约7秒后消失,而长类型可以计算出大约975年。 不相信我吗? 检查一下整个计算过程中的要点 。

浮点原始类型

虽然我们经常使用double ,它是64位浮点数类型,但Java支持另一种浮点数类型,称为float 。 但是,像int一样,Java默认将浮点值double 。 无论如何,我们可以使用float关键字表示32位浮点数:

 float someNumber = 11 .4f; 

为了了解float的范围,让我们再次使用技巧:

 Float.MAX_VALUE // Prints 3.4028235E38  Float.MIN_VALUE // Prints 1.4E-45 

如我们所见,32位确实减少了我们的范围和精度。 如果要在使用一半空格的同时使用精度不如double的十进制值,则可以选择float类型。

布尔基元类型

最后,我们可以介绍boolean类型。 要声明一个boolean ,我们可以使用boolean关键字:

 boolean isBool = true ; 

布尔值有点独特,因为它们不像所有其他原始类型一样代表数字值。 实际上,我们的MAX_VALUEMIN_VALUE小技巧在这里不起作用。 取而代之的是,布尔值表示true还是false ,我们可以从上一堂逻辑课中回顾出来。

我们现在不会花很多时间,因为它将成为我们在Java中所做的几乎所有事情的一部分。 也就是说,我们通常不会像这样明确声明它们。 相反,它们是比较的结果,这些比较驱动代码中的逻辑。 请查看下面的布尔运算符部分以获取更多信息。

想了解更多?

如前所述,该信息可以在Java的基本类型和变量文章中找到。 当然,现在该文章更容易阅读。

无论如何,再次感谢您的支持。 下次见!

翻译自: https://www.javacodegeeks.com/2019/08/8-primitive-types-java.html

Java中的8种原始类型相关推荐

  1. Java中的两种异常类型及其区别?

    Java中的两种异常类型及其区别? 参考文章: (1)Java中的两种异常类型及其区别? (2)https://www.cnblogs.com/zxfei/p/11182730.html (3)htt ...

  2. <随笔03>Java中的两种异常类型

    <随笔03>Java中的两种异常类型 参考文章: (1)<随笔03>Java中的两种异常类型 (2)https://www.cnblogs.com/newlyfly/p/744 ...

  3. JAVA中的八种基本类型

    一.JAVA中的八种基本类型 1.数字类型(6种)   ①byte:     占的位数:byte数据类型占八位: 最小值为:-128(-2^7): 最大值为:127(2^7-1): 默认值为:0: 作 ...

  4. java原始类型和引用类型_Java中的8种原始类型

    java原始类型和引用类型 几年前,当我开始编辑Java Basics系列时,我认为将一些非常详细的信息拉到自己的帖子中是很有意义的. 这样,初学者的内容就更容易消化了. 首先,我将介绍有关Java的 ...

  5. java中import两种导入类型比较

    转载地址:http://blog.sina.com.cn/s/blog_56f69c6601016erf.html import导入声明可分为两中:  1>单类型导入(single-type-i ...

  6. java中的八种原始数据类型

    java中的的原始数据类型可分为4大类:整数型(byte,short,int,long),浮点型(float,double)布尔型(boolean)字符型(char). 首先我们先要知道它们的各自取值 ...

  7. JAVA中两个char类型相加_1、JAVA中的几种基本类型,各占用多少字节?

    1.Java是一种强类型语言.这就意味着必须为每一个变量声明一种类型.在Java中,-共有8种基本类型,其中有4种整型.2种浮点类型.1种用于表示Unicode编码的字符单元的字符类型char和1种用 ...

  8. java类型转换答案,在java中支持两种类型的类型转换,自动类型转换和强制类型转换。父类转化为子类需要强制转换。...

    在java中支持两种类型的类型转换,自动类型转换和强制类型转换.父类转化为子类需要强制转换. 更多相关问题 计算机病毒通过()传染扩散得极快,危害最大. 当一个现象的数量由小变大,另一个现象的数量相反 ...

  9. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

最新文章

  1. 成功人士具备的20个习惯(转载)
  2. Dragonfly 成为 CNCF 孵化项目,我们与基金会首位华人 TOC 聊了聊
  3. 【技术贴】红警三卡||红警三卡在游戏开始界面卡在右上角小星星卡在美女界面卡在创建名字黑屏的解决方案...
  4. 【C++11新特性】 C++11智能指针之shared_ptr
  5. sql每个月每个人的花销占比_11月:每个认真生活的人,都值得被认真对待
  6. 前端的葵花宝典 - 红宝书《JavaScript高级程序设计(第4版)》学习笔记
  7. 协议圣经 五 rtsp client
  8. Web Server监视器 v0.75 - Free tool
  9. 恭迎万亿级营销(圈人)潇洒的迈入毫秒时代 - 万亿user_tags级实时推荐系统数据库设计...
  10. Warning:Null pointer access: The variable addStrings can only be null at this location
  11. 软件测试管理要素分析
  12. 一个纸水杯的测试用例设计。
  13. CH14 Android中的多媒体
  14. SNIP验证EDI文件
  15. android frameworks下面config.xml属性
  16. 简单理解工作量单位:人月、人日、人时
  17. 安装计算机一级出现appcrash,问题事件名称: APPCRASH 终于解决了。
  18. 年月日季平均运算,pandas中关于时间序列处理,resample
  19. 昌平北七家空调移机-空调安装电话
  20. poj 2942 点双连通分量

热门文章

  1. ssl2295-暗黑破坏神【dp练习】
  2. 2021牛客暑期多校训练营7 B-xay loves monotonicity(线段树+不降子序列)
  3. 【DP】饥饿的WZK(jzoj 1998)
  4. I - Trade Gym - 100212I 网络流
  5. Spring Boot功能实战
  6. 阿里巴巴对Java编程【OOP规约】的规约
  7. win7禁用其他软件只启用自定义软件的方法
  8. Mybatisplus用updateById默认没有传的值不会进行改变
  9. 把本地文件上传到gitee
  10. 手机钉钉在进行视频会议时怎么录屏