网站首页 > 精选教程 正文
“这里是云端源想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
文案编辑|云端学长
文案配图|云端学长
内容由:云端源想分享
猜你喜欢
- 2024-11-10 为什么28岁不能学java? 28岁开始学编程晚吗
- 2024-11-10 gc的年龄信息存储在什么地方? 年龄信息用什么数据类型存储
- 2024-11-10 JVM基础学习 jvm入门到精通
- 2024-11-10 Java-对象到底占多少个字节?计算规则是什么?
- 2024-11-10 浅谈JAVA中的基本变量 java常用变量
- 2024-11-10 大数据必学Java基础(十三):基本数据类型的转换
- 2024-11-10 Java码农35岁之后只能送外卖? 我的世界java
- 2024-11-10 这些Java基础知识,诸佬们都还记得嘛(学习,复习,面试都可)
- 2024-11-10 2021-01-03:java中,描述一下什么情况下,...
- 2024-11-10 JAVA基础总结:变量和数据类型 java入门变量与数据类型第一关
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)