JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

零基础学Java之数据类型与变量(上集)

wys521 2024-11-10 13:21:24 精选教程 27 ℃ 0 评论

“这里是云端源想IT,帮你轻松学IT”

嗨~ 今天的你过得还好吗?

五颜六色的生活,

不应该乱七八糟的过。


- 2023.05.22 -

今天来讲讲Java中的数据类型与变量,主要从字面常量、数据类型和变量三个部分来进行详细介绍Java中的数据类型与变量。

由于内容比较长,我们分两期来讲,这期先介绍字面常量、数据类型以及变量中的整型变量和浮点型变量,剩下的内容,我们下期持续更新,感兴趣的小伙伴可以关注一下哦~


一、字面常量

首先常量顾名思义就是指不会改变的量,也就是程序运行期间,固定不变的量。比如一周有7天,一年有12个月,这里的7和12就是常量。当然,常量不只有数字,在Java中字面常量分为以下几类:

  • 字符串常量:是用双引号括起来的,比如“100”、“hello”、“嗨~”;
  • 整型常量:在程序中直接写出来的整数,比如:10、100;
  • 浮点数常量:在程序中直接写出来的小数,比如:3.14;
  • 字符常量:由单引号括起来的单个字符,比如:‘A’、‘1’;
  • 布尔常量:只有true和false;
  • 空常量:null。

那么,Java中的常量与C语言中的有什么不同呢?

  • Java中的字符串没有结尾标志'\0'。
  • 在C语言中单引号里面是不可以放汉字的,而Java可以。
  • 在Java中不是“0表示假,非0表示真”,表示真假的只有true和false。



弄清楚了Java中的字面常量,下面我们再来看看Java中的数据类型又有哪些?


二、数据类型

在Java中数据类型主要分为两类:基本数据类型引用数据类型。

  • 基本数据类型即Java中提供的数据类型即内置数据类型。
  • 引用数据类型可以理解为自定义数据类型,由类型的实际值引用(类似于指针)表示的数据类型。

基本数据类型有四类八种:

四类:整型、浮点型、字符型以及布尔型;

八种:


需要注意以下几点:

  • 在C语言中char类型占1字节,而在Java中char类型占2字节;
  • 不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节
  • 整形和浮点型都是带有符号的
  • 整型默认为int型,浮点型默认为double
  • 字符串属于引用类型,引用数据类型还包括数组、类、接口、枚举类型

字节是什么呢?

字节是计算机中表示空间大小的基本单位。计算机使用二进制表示数据,我们认为 8 个二进制位(bit) 为一个字节(Byte)。计算机中的换算关系:1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB。


那么,如何记住整型所表示的数据范围呢?

1字节就是8个比特位,最高位是符号位。byte占1字节也就是8个比特位,表示负数的最大值为1000 000,即-128=-2^7,正数的最大值为0111 1111即2^7-1。

同样,short占2字节16个比特位,表示负数的值就是-2^15。正数的最大范围就是2^15-1。掌握规律后就能很容易的记住它们能够表示的数据范围。

了解了数据类型,最后我们来看看变量的相关知识点。


三、变量

在程序中,除了有始终不变的常量外,有些内容可能会经常改变,比如:人的年龄、身高、成绩分数、数学函数的计算结果等,对于这些经常改变的内容,在Java程序中,称为变量。

而数据类型就是用来定义不同种类变量的。定义变量的语法格式为:

数据类型 变量名 = 初始值;

比如:

int a = 10;

// 定义整形变量a,a是变量名也称为标识符,该变量中放置的值为10

System.Out.println(a);

a = 100;

// a是变量,a中的值是可以修改的,

//= 在java中表示赋值,即将100交给a,a中保存的值就是100


System.Out.println(a);

int a1 = 10, a2 = 20, a3 = 30;

//在一行可以定义多个相同类型的变量


1、整型变量

整型变量分为整型变量、长整型变量、短整型变量和字节型变量。

整型变量

首先是int类型,定义一个变量并赋值有两种方式:

方式一:在定义时给出初始值

int a = 10;


System.Out.println(a);


方式二:在定义时没有给初始值,但使用前必须设置初值

int b;


b = 10;


System.Out.println(b);

推荐使用第一种方式进行变量的定义以及赋值,因为第二种如果变量较多可能会忘记赋值导致程序出现错误。


同时要注意变量一定要在使用前赋值否则程序会报错,且赋值不能超过int类型所能表示的数据范围,在Java中当数值超过int所能表示的数据范围时不会进行数据截断,而是直接无法通过编译,如下图示:

我们还可以通过代码来查看int类型所能表示的数据范围:

System.Out.println(Integer.MIN_VALUE);

System.Out.println(Integer.MAX_VALUE);


可以看到这里并没有使用int而是Integer,Integer是什么呢?

这里的Integer是int的包装类型,我们知道Java设计中一个核心的原则,即万物皆对象,也就是说一切要求用对象的形式描述,但是基本数据类型不是对象。


那么该如何解决此问题呢?可以把基本数据类型包装成一个对象,使其具有对象的性质,以面向对象的思想去使用这些类型。

长整型变量

当数字比较大超过int类型所能表示的范围时就需要使用long类型。Long类型在任何系统下都占8字节。在给long类型进行初始化时发现编译器报错,如下:

编译器告诉我们数值较大,超过了Integer所能表示的范围,但是我们这里使用的不是long类型吗?为什么会提示超出Integer的范围呢?

这里就需要注意了,因为在Java中整型常量都会默认为int类型,此处的b变量此时被编译器认为是int类型,因此会报错。

解决方法:在给long类型变量进行赋值时,在数值末尾加上L或l,由于小写的l和1较为相似,因此推荐使用L。

接下来查看long类型所能表示的数据范围:

System.Out.println(Long.MIN_VALUE);

System.Out.println(Long.MAX_VALUE);


短整型变量

short类型在任何系统下都占4字节。short型变量所能表示的范围:

System.Out.println(Short.MIN_VALUE);

System.Out.println(Short.MAX_VALUE);

字节型变量

byte类型在任何系统下都占1字节。byte型变量所能表示的范围:

System.Out.println(Byte.MIN_VALUE);

System.Out.println(Byte.MAX_VALUE);

2、浮点型变量

浮点型变量分为双精度浮点型和单精度浮点型,下面分别来看:

双精度浮点型

double d = 3.14;//8个字节


System.Out.println(d);

两个整数相除会输出什么?

int a = 1;


int b = 2;


System.out.println(a / b); //会输出 0.5 吗?

不会输出0.5,输出结果为0。因为 在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分) ,如果想得到 0.5, 需要使用 double 类型计算。

代码如下:

double a = 1.0;


double b = 2.0;


System.out.println(a / b);

下面的代码会输出1.21吗?

double num = 1.1;


System.out.println(num * num);

答案是不会,运行后输出结果为1.2100000000000002。因为输出结果只能精确到小数点后xxxx位,并不是一个精确值。

注意事项:

  • double在任何系统下都占8个字节
  • 浮点数与整数在内存中的存储方式不同,不能单纯使用 的形式来计算
  • double的包装类型为Double
  • double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值。


单精度浮点型

?oat num = 1.0f; // 写作 1.0F 也可以


System.out.println(num);

注意:这里不能写成?oat num = 1.0,因为编译器会自动把1.0当成双精度浮点型,会报错。

?oat 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑 double, 不太推荐使用 ?oat. ?oat的包装类型为Float。

本期先讲到这么多,下期再来接着讲讲字符型变量、布尔型变量以及类型转换、类型提升和字符串类型的相关内容,敬请期待哦!


上面的内容你“学废”了吗?没学会不要紧,赶紧收藏起来吧!记得关注【云端源想IT】,不然下期内容更新你就找不到我了。


我们下期再见!

END

文案编辑|云端学长

文案配图|云端学长

内容由:云端源想分享


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表