需要更多Java! 铂 1 —数据类型

如果您不想讲故事,而是直接了解数据类型,那么请看一下此仓库,该仓库最终将随着本系列的进行而包含有关Java的更多信息。 https://github.com/bbenefield89/LearnJava/tree/master/DataTypes

来自JavaScript和Python之类的高级语言,我真的从未有过担心数据类型的“乐趣”。 字符串,字符,整数……没问题。

虽然我对C语言有少量的经验,但它来来往往却很快,以至于我没有太多时间去深入研究,因为我忙于在管理指针和学习struct时不致溺水。

这周我决定要学习一种新语言,但这必须与我的语言有关

  • 职业选择或我希望我的职业负责的地方
  • 相关,这意味着从小到大的公司都在大规模使用它
  • 足够灵活,以至于我不会陷入行业的特定部分

因此,我决定使用Java,统计数据表明我不会输! 2018年StackOverflow开发人员调查将Java列为专业开发人员使用的第五种最受欢迎​​的编程语言,其中JavaScript,HTML,CSS和SQL分别排名第一至第四。 如果我们真的考虑过,HTML,CSS和SQL并不是真正的编程语言,也许是SQL,所以Java排在第二位,说实话,我认为调查结果有点偏向JavaScript,因为它是前端的事实上的语言,也可以在后端使用。 如果您问我,决定学习Java可能不是一个坏主意吧?

什么是Java?

Java可以在Windows,Mac,Linux,Android,iOS等任何计算机系统上运行! 绝对没有阻止它。 因此,如果您无法击败他们,那就加入他们吧! 更不用说Java在全球超过30亿的设备上运行。

我如何开始?

设置好开发环境后,即可获取正确版本的Java。 确定要使用Maven或Gradle作为构建工具,并最终下载IntelliJ IDEA之后,您需要从基础开始。

如果您来自使用较低级别的语言来直接处理和分配数据类型,并且确切地知道“ 8位带符号的二进制补码整数”是什么,那么您可以跳过本文的其余部分。 对于那些从未听说过某些或某些术语的人来说,您来对地方了。

什么是数据类型?

无论您来自哪种编程语言,数据类型的概念都是相同的。 您有一个需要存储或返回的值,字符串,整数等,并且需要在某个地方存储它。 尽管Python更加严格,但是诸如JavaScript和Python之类的语言将对您隐藏起来,而诸如C / C ++之类的系统语言甚至不会再三考虑让您知道自己错了。

他们已经是什么?

因此,Java具有八种官方数据类型, booleancharbyteshortintlongfloatdouble float 。 还有另一种使用频率很高的类型,可以认为它是string的第九种类型。

布尔型

布尔数据类型表示两个值之一,可以是truefalse 。 布尔类型每个仅占用1位内存。 布尔类型也可以表示为1(true)或0(false)。

  boolean foo = true; 
boolean bar = false;

字节

Byte数据类型可以容纳最小范围的整数,并且对于仅具有(-2⁷)到(2⁷-1)或-128到127范围的整数占用最少的内存。这是“ 8位带符号的二进制补码”整数”。这意味着什么?

  • 8位:只能由8位组成,例如Binary 0000 0001。
  • 有符号:带符号整数意味着它可以包含负值,而无符号则意味着它只能包含正值。
  • Two’s Complementary:我不是最好的解释这个概念的人,因为我仍在解决这个问题,但是我会从StackOverflow留下一些答案
  • 整数:这意味着它是一个数字。
 字节foo = 127; 
字节栏= -128;

短数据类型是一个16位带符号的二进制补码整数,该整数可以保存(-2 -1)到(2 -1 -1)的范围,并且将消耗2字节的内存,即16位。

 短foo = 32767; 
短线= -32768;

整数

现在我们在说话! int数据类型将是您将看到的最常用的整数。 这是因为在进行某种数学运算,加法,减法等操作时,除非将结果转换为其他类型的整数,否则Java会将结果转换为int。 int数据类型是一个32位带符号的二进制补码整数,表示它可以容纳(-2³¹)至(2³¹-1)范围,并且将消耗4字节32位内存。 还值得一提的是,自Java SE 8开始,我们就可以将int数据类型视为无符号整数,这意味着它也可以容纳(0)到(2³²-1)范围。

  //'int'可以容纳比此示例大/小的数字 
int foo = 32000;
整数条= -32000;

长数据类型能够保存大量数据。 它是一个64位带符号的二进制补码整数,表示它可以容纳(-2⁶¹)到(2⁶¹-1)范围,并消耗高达8字节的64位内存。 当进行某种类型的数学运算并涉及到long整数时,Java会将结果转换为long 。 还值得一提的是,任何long整数都应以大写字母L开头。 虽然这适用于小写的l ,但如果将其大写,则更容易知道数字的末尾有一个L。 还值得一提的是,自Java SE 8开始,我们就可以将long数据类型视为无符号整数,这意味着它也可以容纳(0)到(2⁶⁴-1)范围。

  long foo = 100L //不错,我们可以清楚地看到L 
  //几乎与数字l相同,还是我输入了小写的1? 
长条= 100l;

浮动和双打

Floatdouble数据类型是intlong彼此的含义。 float只是float的一个较小而不太精确的版本。 除非指定,否则Java还将所有小数转换为double精度。 float型为32位宽,而double为64位宽。 Float整数还应在结尾加上小写字母f

 浮点foo = 1.234f 
double foo = 1.23456789;

烧焦

Char数据类型仅包含一个字符,并且仅占用2字节(16位)的内存。

  char foo ='A';  //我们可以使用键盘上的实际字符 
char bar ='101'; //我们也可以像这样代表字符
char baz ='\ u00A9'//甚至使用unicode

字符串非常重要,并且经常使用,以至于我不想跳过这一部分。 如果您使用的是高级语言,那么您可能会惊讶地发现String数据类型(即大写S)实际上是char数据类型的数组或Python列表。 这就是为什么我们能够遍历String并利用数组方法的原因。 知道String数组中的每个索引都是由一个char ,我们可以算出String会消耗的内存量。 对于String Hello, World! ,这将占用28字节的内存,因为我们需要分配14个内存空间。 即使您只能看到13个字符(包括空格),字符串也以单个空字符\0 ,这也占用了内存。

  String foo =“你好,世界!” 

摘要

知道原始数据类型以及如何以及何时使用它们非常重要。 通常,将int用作数字,将double用作小数,如果我可能这么大胆,则将为基于文本的需求使用String ,尽管不是基本类型。

如果您发现任何有用的信息,请不要害羞,并发表评论! 如果您发现不正确的地方,是我想传递给我的语法的知识,请不要害羞,请发表评论!

您也可以在这里查看我的其他文章。