Java的数据类型(复习版)

思维导图

在这里插入图片描述

一.字面常量

什么是常量?在我的理解看来常量就是在一个程序运行期间,保持不变的量就是常量。
例如:

		System.out.println(100);System.out.println('a');System.out.println(3.114);

这些都可以称为常量。

字面常量的分类:

  1. 字符串常量:由""括起来的,比如“12345”、“hello”、“你好”。
  2. 整形常量:程序中直接写的数字(注意没有小数点),比如:100、1000
  3. 浮点数常量:程序中直接写的小数,比如:3.14、0.49
  4. 字符常量:由 单引号 括起来的当个字符,比如:‘A’、‘1’
  5. 布尔常量:只有两种true和false
  6. 空常量:null

二.数据类型

数据类型分为基本数据类型引用数据类型

我们这里先介绍基本数据类型和变量的定义:

我们这里先介绍基本数据类型和变量的定义:

变量定义:数据类型 变量名=变量值

整型:int

   int a=10;//在定义整型变量时最好给一个初始值,不然编译器会报错

字节类型:byte

byte a=127;//127是byte类型可以存储的最大值

短整型:short

short a=10;

长整型:long

long a=100L;// // 为了区分int和long类型,一般建议:long类型变量的初始值之后加L或者l

字符型:char

char a='帅';//java中的字符可以存放整形
char b='a';
//注意事项:
1. Java 中使用 单引号 + 单个字母 的形式表示字符字面值.
2. 计算机中的字符本质上是一个整数.C 语言中使用 ASCII 表示字符,Java 中使用 Unicode 表示字符. 因此
一个字符占用两个字节, 表示的字符种类更多, 包括中文.

单精度浮点数:float

float a=10.1f;//小数默认都是double类型,所以在后面加f可以区分。

双精度浮点数:double

double a=10.14;

布尔类型:boolean

boolean a=true;
boolean b=false;

数据类型的最值

这里我们简单介绍了八种基本数据类型。接下来我们看一下每一个基本数据类型所占的内存和他的最值。如何在代码中求的基本数据类型的最大值,这里先简单介绍下包装类

Java的包装类是为了方便操作基本数据类型而提供的类。Java的基本数据类型(如int、char、boolean等)是非对象的,不能直接参与面向对象的操作,也不能直接调用方法。为了解决这个问题,Java提供了对应的包装类。

基本数据类型对应的包装类:Java为每种基本数据类型都定义了一个对应的包装类,用于将基本数据类型转换为对象。这些包装类提供了一些常见的方法,以便于操作基本数据类型的值。

Integer:对应int类型

Long:对应long类型

Short:对应short类型

Byte:对应byte类型

Float:对应float类型

Double:对应double类型

Character:对应char类型

Boolean:对应boolean类型

这里只有int和char的包装类尤为特殊,其他类型都是首字母大写即可。

如何用包装类求每一个数据类型的最大值和最小值呢?

 //int 类型的变量int b;b=10;System.out.println(b);//如何查看int类型的最大值和最小值(借用包装类就可以查看int数据类型的最大值和最小值)System.out.println(Integer.MAX_VALUE);System.out.println(Integer.MIN_VALUE);//byte 类型byte c=100;//如何查看byte类型的最大值和最小值(借用包装类就可以查看byte数据类型的最大值和最小值)System.out.println(Byte.MAX_VALUE);System.out.println(Byte.MIN_VALUE);//short类型short d=100;//如何查看short类型的最大值和最小值(借用包装类就可以查看short数据类型的最大值和最小值)System.out.println(Short.MAX_VALUE);System.out.println(Short.MIN_VALUE);//long 类型long e=1000L;//long 后面最好要加上"L",和int区别开来,当然也可以使用"l",但是"l"和1类似,所以用"L"//如何查看long类型的最大值和最小值(借用包装类就可以查看long数据类型的最大值和最小值)System.out.println(Long.MAX_VALUE);System.out.println(Long.MIN_VALUE);//float类型float f=10.4f;//为了强调是单精度浮点数需要在后面加上f//如何查看float类型的最大值和最小值(借用包装类就可以查看float数据类型的最大值和最小值)System.out.println(Float.MAX_VALUE);System.out.println(Float.MIN_VALUE);//double 类型double g=100.36;//小数默认都是double类型//如何查看double类型的最大值和最小值(借用包装类就可以查看double数据类型的最大值和最小值)System.out.println(Double.MAX_VALUE);System.out.println(Double.MIN_VALUE);//char类型char h='A';char i='刷';//注意:Java中可以用字符存放一个中文汉字//boolean 类型//只表示真假boolean j=true;boolean k=false;

当然,我们也可以自己计算每种数据类型的最值问题

但是我们还要了解什么是字节?

字节是计算机中表示空间大小的基本单位.
计算机使用二进制表示数据. 我们认为 8 个二进制位(bit) 为一个字节(Byte).
我们平时的计算机为 8GB 内存, 意思是 8G 个字节.
其中 1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB.
所以 8GB 相当于 80 多亿个字节

在这里插入图片描述

注意:
不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节
整形和浮点型都是带有符号的
整型默认为int型,浮点型默认为double

小插曲

int a = 1;
int b = 2;
System.out.println(a / b); // 输出 0.5 吗?

结果肯定不会输出为0.5,因为int是整型他只会取到整数位0,所以他的结果为0.
那我们该如何输出0.5呢?

double a = 1.0;
double b = 2.0;
System.out.println(a / b); // 输出0.5orint a = 1;
int b = 2;
System.out.println(a *1.0/ b);

三.类型转换

在Java中,当参与运算数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式) 和 强制类型转换(显式)。

自动类型转换(隐式)
自动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。特点:数据范围小的转为数据范围大的时会自动进行。

   		long a=100L;int b=5;a=b;//因为long占8字节,int占4字节,a和b都是整形,a的范围小,b的范围大,当将a赋值给b时,编译器会自动将a提升为long类型,然后赋值
 		long c=100L;int d=55;c=d;//int--->long进行赋值,将int类型提升为long类型
 	    float e=10.5f;double f=100.6;f=e;//float--->double 隐式转换 小的给大的不需要强转

强制类型转换(显式)

		long a=100L;int b=5;b=(int)a;//因为long占8字节,int占4字节,编译报错,long的范围比int范围大,所以需要将a(long类型)强行转换为int类型,但是可能会有数据丢失,不安全
		float f = 3.14F;double d = 5.12;d = f; // float-->double,数据范围由小到大,隐式转换f = (float)d; // double-->float, 数据范围由大到小,需要强转,否则编译失败a = d; // 报错,类型不兼容a = (int)d; // int没有double表示的数据范围大,需要强转,小数点之后全部丢弃byte b1 = 100; // 100默认为int,没有超过byte范围,隐式转换byte b2 = (byte)257; // 257默认为int,超过byte范围,需要显示转换,否则报错

这里byte需要重点看一下

四.类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

 //类型的提升//int类型会提升为long类型int a=100;long b=1000L;//int c=a+b;// 编译出错: a + b==》int + long--> long + long 赋值给int时会丢失数据//解决方法如下//1.int c=(int)(a+b);//2.long d=a+b;
 	    byte f=10;byte e=20;byte l=(byte)(f+e);//因为虽然都是相同的byte类型进行相加,但是无论是short或者是byte,两种相同的数据类型在相加的时候会提升为int类型,所以需要将右侧的数据进行强制转换

结论: byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a
和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误.
由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short
这种低于 4 个字节的类型, 会先提升成 int, 再参与计算

【类型提升小结:】

  1. 不同类型的数据混合运算, 范围小的会提升成范围大的.
  2. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.

五.字符串类型

public static void main(String[] args) {
String s1 = "hello";
String s2 = " world";
System.out.println(s1);
System.out.println(s2);
System.out.println(s1+s2); // s1+s2表示:将s1和s2进行拼接
}

在有些情况下,我们需要字符串和整型之间的相互转换。

1.int转String

int num = 10;
// 方法1
String str1 = num + ""; 
// 方法2
String str2 = String.valueOf(num);

2.String转int

String str = "100";
int num = Integer.value(str);

可以看到两种类型之间的转换都是用了库方法value。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

护眼落地灯哪个牌子好?盘点五款必入不踩雷的护眼大路灯

护眼落地灯哪个牌子好?在这个快节奏的时代,护眼落地灯已经从一种高端选择转变为日常用眼生活中的必须品。不论是提升普通照明,还是针对孩子学习是改善光线质量环境,一款优秀的护眼落地灯都能成为我们生活中的照明神器。怎么选择一…

Java实现电子围栏的小例子

主要需求是实现一个电子围栏判断的小例子其中包括前端和后端的demo代码 引入对应的依赖库 <!--jts库通常用于几何计算和表示地理空间数据--> <dependency><groupId>org.locationtech.jts</groupId><artifactId>jts-core</artifactId><…

在 VS Code 中自动化 Xcode 项目编译和调试

在 VS Code 中自动化 Xcode 项目编译和调试 在日常的开发工作中&#xff0c;Xcode 是 macOS、iOS、watchOS 和 tvOS 应用程序开发的主要工具。为了提高工作效率&#xff0c;许多开发者选择在 Visual Studio Code (VS Code) 中编辑代码&#xff0c;并希望能够直接从 VS Code 启…

无线传感器网络(物联网通信技术)期末考试2024年真题

目录 WSN期末复习资料 第一章&#xff1a;概述 第二章MAC协议 第三章路由协议 第四章时间同步技术 第五章定位技术 第六章安全技术 第七章拓扑控制 补充TPSN、HRTS公式推导 2024年期末考试考点 一、简述 二、考试真题回忆 WSN期末复习资料 第一章&#xff1a;概述 …

蓝桥杯开发板STM32G431RBT6高阶HAL库学习FreeRtos——新建工程

一、介绍 ​ 蓝桥杯嵌入式使用的单片机是STM32G431RBT6&#xff0c;内核ARM Cortex - M4&#xff0c;MCUFPU&#xff0c;170MHz/213DMIPS&#xff0c;高达128KB Flash&#xff0c;32KB SRAM&#xff0c;其余的外设就不多介绍了&#xff0c;参照数据芯片数据手册 ​ CT117E-M4…

JavaScript——while类型

目录 任务描述 相关知识 while类型 编程要求 任务描述 质数的定义如下&#xff1a;大于1的自然数&#xff0c;且除了1和本身外没有别的因数。如2、3、5、7。 本关任务&#xff1a;利用循环结构求质数的和。 相关知识 在选择结构中&#xff0c;条件会被测试一次&#xff…

74HC165芯片验证

目录 0x01 74HC165芯片介绍0x02 编程实现 0x01 74HC165芯片介绍 74HC165的引脚定义如下&#xff0c;长这个样子 ABCDEFGH是它的八个输入引脚&#xff0c;例如你可以将它连接按键&#xff0c;让它来读取8个按键值。也可以将他级联其它的74165&#xff0c;无需增加单片机GPIO引…

代码动态编译

背景 开发环境下新加代码、改代码时要重启后生效&#xff08;耗时间&#xff09;&#xff1b;需求:不用重启且支持springboot 、spring、MyBatis。 实现 下地地址&#xff1a;https://github.com/JetBrains/JetBrainsRuntime/releases 1.根据系统类型下载压缩包 2.解压后配…

Ubuntu 22.04.4 LTS 安装配置 MySQL Community Server 8.0.37 LTS

1 安装mysql-server sudo apt update sudo apt-get install mysql-server 2 启动mysql服务 sudo systemctl restart mysql.service sudo systemctl enable mysql.service #查看服务 sudo systemctl status mysql.service 3 修改mysql root密码 #默认密码为空 sudo mysql …

SQL 注入联合查询之为什么要 and 1=2

在 SQL 注入联合查询中&#xff0c;将 id 先置为假&#xff08;如 id-1 或其他使查询结果为空的条件&#xff09;&#xff0c;通常是为了让前面的查询语句查询不到结果&#xff0c;从而使联合查询中后面的语句结果能够显示在回显位上

【串口通信】之TTL电平

1. 什么是串口 串口,全称为串行通信端口,是一种计算机硬件接口,用于实现数据的串行传输。与并行通信不同,串口通信一次只传输一个比特,数据通过串行线按顺序传输。串口通信在嵌入式系统、工业控制、计算机与外围设备通信等领域非常常见 2. 什么是串口通信 串口通信是指通过…

在线签约如何选择?2024年10款顶级app大比拼

支持电子合同签约的10大app&#xff1a;e签宝、上上签、DocuSign、契约锁、Adobe Sign、法大大、SignNow、安心签、HelloSign、PandaDoc。 无论是企业之间的交易还是个人服务合同&#xff0c;线上电子合同签约提供了一种便捷、高效且安全的方式来处理法律文档。本文将介绍几款优…

【Python实战因果推断】20_线性回归的不合理效果10

目录 Neutral Controls Noise Inducing Control Feature Selection: A Bias-Variance Trade-Off Neutral Controls 现在&#xff0c;您可能已经对回归如何调整混杂变量有了一定的了解。如果您想知道干预 T 对 Y 的影响&#xff0c;同时调整混杂变量 X&#xff0c;您所要做的…

人工智能对网络安全有何影响?

人工智能网络安全在短期、中期和长期如何变化 当今数字时代网络安全的重要性 在谈论人工智能在网络安全中的作用时&#xff0c;必须首先考虑短期影响&#xff0c;因为它们是最明显的&#xff0c;而且它是一个未知的领域&#xff0c;需要超越直接炒作的能力。 因此&#xff0…

【Altium】AD-在原理图中如何绘制贝塞尔曲线

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 在原理图中绘制贝塞尔曲线的方法 2、 问题场景 贝塞尔曲线主要用来描述各种波形曲线&#xff0c;如正弦、余弦曲线等。贝塞尔曲线的绘制和直线类似&#xff0c;需要固定多个顶点&#xff08;最少4个&#xff09;后即…

入门PHP就来我这(纯干货)08

~~~~ 有胆量你就来跟着路老师卷起来&#xff01; -- 纯干货&#xff0c;技术知识分享 ~~~~ 路老师给大家分享PHP语言的知识了&#xff0c;旨在想让大家入门PHP&#xff0c;并深入了解PHP语言。 1 PHP对象的高级应用 1.1 final关键字 final 最终的、最后的。被final修饰过的类…

采用B/S模式 可跨平台使用的数据采集监控平台!

数据采集监控平台是一款专注于工业企业生产设备管理、数据采集、数据分析、数据管理、数据存储、数据传输等的软件系统。系统具备丰富的接口&#xff0c;配置灵活&#xff0c;方便部署&#xff0c;通过采集企业生产设备的数据集中处理&#xff0c;将各个信息孤岛有机连接&#…

技术赋能政务服务:VR导视与AI客服在政务大厅的创新应用

在数字化转型的浪潮中&#xff0c;政务大厅作为服务民众的前沿阵地&#xff0c;其服务效率和质量直接影响着政府形象和民众满意度。然而&#xff0c;许多政务大厅仍面临着缺乏智能化导航系统的挑战&#xff0c;这不仅增加了群众的办事难度&#xff0c;也降低了服务效率。维小帮…

ArcEngine获取投影坐标,地理坐标,垂直坐标系统以及3或6分度带的代码

本代码是用于质检中获取图层中平面坐标系统是否采用“2000国家大地坐标系(CGCS2000)高程系统是否采用“1985国家高程基准”。然后封装的一个方法 /// <summary>/// 平面坐标系统是否采用“2000国家大地坐标系(CGCS2000)高程系统是否采用“1985国家高程基准”。/// &l…

Windows的磁盘管理

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 第一动态磁盘管理 问题&#xff1a;…