“本系列Java教程面向零基础初学者,从零开始更新。”

大家好,我是寻椛。

这篇文章正式开始带大家进行Java语法的学习。

我们今天要介绍的是Java中一些关于基本数据类型和变量的介绍,这部分比较基础,但是也是不容轻视的基础喔~

学过C语言、Python或者其他语言的小伙伴应该会比较了解这些基本数据类型。

因为各语言发展到如今很多特性正在趋同,大家可以回想自己学过的相关内容进行一下对比哦~

01

基本数据类型概念

我们要讲的第一个概念就是基本数据类型!

广泛来说,这个概念不只存在于Java,它在各种编程语言中都是不可或缺的一个概念。

当我们在计算机中存储一些数据时,我们是不是要对这些数据做出一些分类和说明呢,例如这是什么类型的数据,数据有多大,数据是什么格式等等。

就类似于我们在仓库存放货物时,要给货物分类打标签是一样的,对数据进行类似的操作也是保证数据规范和可操作性的重要前提。

数据的存储单位_计算机最大存储单位_简述计算机中数据的存储单位.

货物需要标签,数据也需要类型、名称和大小等数据

在讲数据类型之前还要先讲一下关于上面“货物的占地单位“,即单位数据的所占据空间大小。

我们所要讲的基本数据类型都是以字节(byte)为基本单位。

说起字节,大家可能想到“字节跳动“这家公司,也就是抖音的开发公司,公司名中的字节正是来源于此。

字节并不是最小的数据储存单位,但是对我们需要手动操作的一些数据来说,以字节为单位是合适的。

以下关于一些空间储存单位的换算。

数据的存储单位_简述计算机中数据的存储单位._计算机最大存储单位

储存单位换算,其中除byte和bit间的换算,其余换算倍数均为2^10(1024)

我们的日常所用软件文件等大多在Kb、Mb及以上。

对于我们编程需要用的数据来说,我们需要涉及到底层的操作,所以字节是恰到好处,不会太小也不会太大。

需要特别指出的是,1 byte = 8 bit。

1个bit位在计算机中用于表示一个0/1位,已经是计算机中最小的数据存储单位。

02

八种基本数据类型和变量

接下来我们正式介绍基本数据类型。

在Java中我们将存储数据的最基本单位划分为8种,这些数据类型最主要的特征就是不可再分。

请大家看下面的思维导图:

八种基本数据类型

图中展示了Java中的8种基本数据类型分类、名称以及它们所占空间大小以及表示范围。

在讲之前,先简单介绍下变量的概念。

我在写这部分的时候发现他们很难分开写,只要一举例子,两者是不可能分开的,所以还是写在一起。

何为变量/常量?

正如字面意思一样,不严谨地说,变量的意思就是值可以发生改变的量,而常量对应的也就是值不可以发生的量。

大家最早接触变量这个概念应该是在小学在学解方程的时候,“x”来充当未知量,其实也可以叫变量。

数据的存储单位_简述计算机中数据的存储单位._计算机最大存储单位

高等数学微积分中的微分方程

而在Java等编程语言中,变量可以说是我们在进行程序代码编写时最基本也是最重要的基本概念之一。

假设我们想要存储一条数据,那么肯定会需要创建对应的变量来进行赋值保存。

我们在Java中定义数据时,需要使用变量类型+变量名的格式来声明或者定义一个变量。

同时我们也可以加上“=“来为我们的变量赋值一个初始值。

废话不多说,接下来我结合代码和八种基本数据类型,来给大家简单演示一下变量在其中是如何被创建的。

第一个是字符型。

顾名思义,一般用于存储字符数据,类似’a’、’#’、’+’、’2’等等字符,如下代码:

public static void main(String[] args){        char c = 'a'; //定义char类型的变量c,并赋值为'a'        char d = 97; //定义char类型的变量d,并赋值为'a'('a'的ASCII码正好是97))        System.out.println(c);        System.out.println(d);//4、5两行代码都输出'a'        //为什么会出现这个现象?我们后面会说到。}

不过值得一提的是,数据虽然被定义为字符类型,但是也可以用于存储整数。

这是因为这种格式虽然被命名为字符型,是因为char的大小和字符的实际要求是相符的,但是存储的不一定要是字符。

换句话说,我们也可以用废旧的牛奶箱去装一些书不是吗?

第二类是整型。

其中按占据空间大小不同,分类四类,其中int为占4个字节大小的整型简述计算机中数据的存储单位.,用于存储整数,这个是我们最常用的数据类型之一。

public static void main(String[] args) {            int x = 100; //定义int类型的变量x,并赋值为100            short y = 0; //定义short类型的变量y,并赋值为0            long z = -250L; //定义long类型的变量z,并赋值为-250            int c = 97; //定义int类型的变量c,并赋值为97;            System.out.println(x); //100            System.out.println(y); //0            System.out.println(z); //-250            System.out.println((char)c); //'a'            //这里c输出'a'和上段代码是同理,我们后面会说到。}

特别注意定义long类型变量时末尾要加大写或小写的字母L/l。

第三类是浮点数,俗称小数。

单精度浮点数和双精度浮点数的区别是,最多可表示的小数位后的位数不同,double约是float的两倍,因此得名双精度。

一般我们常用double,它更泛用一些。

public static void main(String[] args) {            float f = 3.1415926999f; //定义float类型的变量f,并赋值            double d = 3.1415926999; //定义double类型的变量d            System.out.println(f); //输出3.1415926            System.out.println(d); //输出3.1415926999            //double类型精度更高,float会丢失6后面的位数}

如上代码所示,定义float类型的变量,值的末尾必须加字母F/f,否则无法通过编译。

而double类型则不是必须的。

最后是布尔类型。

boolean类型取值范围只有两个,分别是“true“和”false“。

这类数据在Java被编写的时候并没有明确指定大小,我们暂时不用过度去纠结。

public static void main(String[] args) {            boolean flag1 = true; //定义boolean类型的变量flag1,并赋值为true            boolean flag2 = false; //定义boolean类型的变量flag2,并赋值为false            System.out.println(flag1);            System.out.println(flag2); //分别输出true 和false}

注意,boolean类型变量不可用其它类型变量赋值。

另外,以上数据类型所占空间大小,以及所表示的范围大家不用死记硬背,日常多用,理解了二进制数的计算规则自然就会了。

计算机最大存储单位_简述计算机中数据的存储单位._数据的存储单位

计算机最大存储单位_简述计算机中数据的存储单位._数据的存储单位

常见数进制转换

03

一些重要的补充

以下内容针对初学者写了一些需要额外注意的点,并且补充了一些前面的可能存在疑问的问题。(重要!)

1.Java为强类型语言

如果你学过Python你会知道,Python中定义变量是不需要声明数据类型的。

但是Java是一门强类型语言,同C语言一样,数据的类型必须由我们自己指定,否则编译器会报错,我们的程序是无法运行的。

2.Java语句以分号结尾

记得任何语句的结尾一定要加分号“;“,这一点Java和C语言一脉相承,但是写习惯python语言的人,刚上手Java可能会蛮不习惯的。

3.使用英文半角符号

并且你输入的所有字母和符号都需要是英文状态(即半角状态)下的,否则编译器是无法识别的。

如果你正确输入了引号、分号,但是编译器仍给你报错,不用怀疑,你就是输错了。

4.Java中的常量

再来说常量。

最简单的方式,我们可以直接使用常量赋值、打印等。

像是我们打印”Hello World“其实就是直接就是打印了常量。

而在Java中定义常量一般需要用两个关键字,static和final。

具体这两个关键字的作用相对复杂一点,后面再具体介绍。

这对关键字一般用于定义出一个在此次编写代码的过程中,我们需要始终不变的变量,所以实际上不存在所谓的真正的常量,只是人为定义了一个变量,然后人为给它上了锁,不许变罢了。

5.关于类型转换

还记得在第二部分有段代码两个char类型的变量简述计算机中数据的存储单位.,分别定义成了’a’和97,但是最后都输出了’a’吗?

这实际上就是向下类型转换导致的。

当我们将97赋给char类型时,相当于int向char转型,此时’a’所对应的ASCII码恰巧是97,所以输出’a’。

那是不是只要在char取值范围以内,数字都能自动转换成字符?

确实如此,不过当这个数很大的时候,这个字符可能会很奇怪,因为包含了世界各国的一些字符和表情等等,包含中文乱码。

不过这种像是表示ASCII码等一般简单情景可以使用,但是大部分情况下最好别这么使用,因为一般的向下转型需要自己手动强制类型转换,而且可能会有数据将丢失问题,甚至会出现一些意想不到的问题。

public static void main(String[] args) {                long d = 14561;        int c = d; //编译器会报错,向下转型一般不会自动发生                //int c = (int)d; 正确写法                System.out.println(c);           System.out.println(d);}

不过反之,我们将char类型的’a’可以反过来输出成int类型的97,这种向上转向不存在溢出,所以一般是没有问题的。

04

写在结尾

内容到这就结束啦!

今天主要给大家扫盲了一下基本数据类型和变量创建的基本操作,如果大家有什么不懂的可以私信我或者给我留言,这是我改进的动力!

咱们下期见!

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击网站首页每天更新
站 长 微 信: aiwo51889