Java数据类型、基本与引用数据类型区别、装箱与拆箱、a=a+b与a+=b区别
文章目录
- 1.Java有哪些数据类型
- 2.Java中引用数据类型有哪些,它们与基本数据类型有什么区别?
- 3.Java中的自动装箱与拆箱
- 4.为什么要有包装类型?
- 5.a=a+b与a+=b有什么区别吗?
1.Java有哪些数据类型
8种基本数据类型:
- 6种数字类型(4个整数型,两个浮点型)byte、short、int、long、float、double
- 1种字符类型:char
- 1种布尔类型 :boolean
byte:
- byte数据类型是8位、有符号的,以二进制补码表示的整数
- 最小值-128(-2^7)
- 最大值127(2^7-1)
- 默认值为0
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
- 1 byte = 1字节 = 8bit 可表达 2的八次方个数字
1 short= 2字节 = 16bit 可表达2的十六次方个数字
1 int = 4字节 = 32bit 可表达2的32次方 - 如果考虑符号位,最大值就要减1
short:
- short类型16位,有符号的,以二进制补码表示的整数
- 最小值-32768(-2^15)
- 最大值32767(2^15-1)
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是0
int:
- int类型32位,有符号的,以二进制补码表示的整数
- 最小值-21,4748,3648(-2^31)
- 最大值21,4748,3647(2^31-1)
- 默认值为0
long:
-
**注意:**Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析
-
long 数据类型是 64 位、有符号的以二进制补码表示的整数;
-
最小值是 -9,223,372,036,854,775,808(-2^63);
-
最大值是 9,223,372,036,854,775,807(2^63 -1);
-
这种类型主要使用在需要比较大整数的系统上;
-
默认值是 0L;
float
-
float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
-
float 在储存大型浮点数组的时候可节省内存空间;
-
默认值是 0.0f;
-
浮点数不能用来表示精确的值,如货币!;
double
-
double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
-
浮点数的默认类型为double类型;
-
double类型同样不能表示精确的值,如货币;
-
默认值是 0.0d;
char
-
char类型是一个单一的 16 位 Unicode 字符;
-
最小值是 \u0000(即为 0);
-
最大值是 \uffff(即为 65535);
-
char 数据类型可以储存任何字符;
boolean
-
boolean数据类型表示一位的信息;
-
只有两个取值:true 和 false;
-
这种类型只作为一种标志来记录 true/false 情况;
-
默认值是 false;
这八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean

2.Java中引用数据类型有哪些,它们与基本数据类型有什么区别?
引用数据类型分3种:类,接口,数组;
从概念方面来说
1,基本数据类型:变量名指向具体的数值
2,引用数据类型:变量名不是指向具体的数值,而是指向存数据的内存地址。
从内存的构建方面来说(内存中,有堆内存和栈内存两者)
1,基本数据类型:被创建时,在栈内存中会被划分出一定的内存,并将数值存储在该内存中.
2,引用数据类型:被创建时,首先会在栈内存中分配一块空间,然后在堆内存中也会分配一块具体的空间用来
存储数据的具体信息,即hash值,然后由栈中引用指向堆中的对象地址.

从使用方面来说
1,基本数据类型:判断数据是否相等,用==和!=判断。
2,引用数据类型:判断数据是否相等,用equals()方法,==和!=是比较数值的。而equals()方法是比较内存
地址的。
3.Java中的自动装箱与拆箱
参考这位博主hh
https://blog.csdn.net/swadian2008/article/details/128290566
4.为什么要有包装类型?
让基本数据类型也具有对象的特征

为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使
用包装类型而非基本类型)因为容器都是装object的,这是就需要这些基本类型的包装器类了。
自动装箱: new Integer(6); ,底层调用: Integer.valueOf(6)
自动拆箱: int i = new Integer(6); ,底层调用 i.intValue(); 方法实现。
二者的区别:
- 声明方式不同:基本类型不使用new关键字,而包装类型需要使用new关键字来在堆中分配存储空
间;
- 存储方式及位置不同:基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后
通过引用来使用;
-
初始值不同:基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null;
-
使用方式不同:基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用
到。
5.a=a+b与a+=b有什么区别吗?
+= 操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而
a=a+b则不会自动进行类型转换.如:
byte a = 127;
byte b = 127;
b = a + b; // 报编译错误:cannot convert from int to byte
b += a;
以下代码是否有错,有的话怎么改?
short s1= 1;
s1 = s1 + 1;
有错误.short类型在进行运算时会自动提升为int类型,也就是说 s1+1 的运算结果是int类型,而s1是short
类型,此时编译器会报错.
正确写法
short s1= 1;
s1 += 1;
码是否有错,有的话怎么改?
short s1= 1;
s1 = s1 + 1;
有错误.short类型在进行运算时会自动提升为int类型,也就是说 s1+1 的运算结果是int类型,而s1是short
类型,此时编译器会报错.
正确写法
short s1= 1;
s1 += 1;
+= 操作符会对右边的表达式结果强转匹配左边的数据类型
相关文章:
Java数据类型、基本与引用数据类型区别、装箱与拆箱、a=a+b与a+=b区别
文章目录1.Java有哪些数据类型2.Java中引用数据类型有哪些,它们与基本数据类型有什么区别?3.Java中的自动装箱与拆箱4.为什么要有包装类型?5.aab与ab有什么区别吗?1.Java有哪些数据类型 8种基本数据类型: 6种数字类型(4个整数型…...
GoLang设置gofmt和goimports自动格式化
目录 设置gofmt gofmt介绍 配置gofmt 设置goimports goimports介绍 配置goimports 设置gofmt gofmt介绍 Go语言的开发团队制定了统一的官方代码风格,并且推出了 gofmt 工具(gofmt 或 go fmt)来帮助开发者格式化他们的代码到统一的风格…...
【k8s】如何搭建搭建k8s服务器集群(Kubernetes)
搭建k8s服务器集群 服务器搭建环境随手记 文章目录搭建k8s服务器集群前言:一、前期准备(所有节点)1.1所有节点,关闭防火墙规则,关闭selinux,关闭swap交换,打通所有服务器网络,进行p…...
DIDL4_前向传播与反向传播(模型参数的更新)
前向传播与反向传播前向传播与反向传播的作用前向传播及公式前向传播范例反向传播及公式反向传播范例小结前向传播计算图前向传播与反向传播的作用 在训练神经网络时,前向传播和反向传播相互依赖。 对于前向传播,我们沿着依赖的方向遍历计算图并计算其路…...
链表学习之链表划分
链表解题技巧 额外的数据结构(哈希表);快慢指针;虚拟头节点; 链表划分 将单向链表值划分为左边小、中间相等、右边大的形式。中间值为pivot划分值。 要求:调整之后节点的相对次序不变,时间复…...
(考研湖科大教书匠计算机网络)第五章传输层-第一、二节:传输层概述及端口号、复用分用等概念
获取pdf:密码7281专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:传输层概述(1)概述(2)从计算机网络体系结构角度看传输层(3)传输层意义二&am…...
C#:Krypton控件使用方法详解(第七讲) ——kryptonHeader
今天介绍的Krypton控件中的kryptonHeader,下面开始介绍这个控件的属性:控件的样子如上图所示,从上面控件外观来看,这个控件有三部分组成。第一部分是前面的图片,第二部分是kryptonHeader1文本,第三部分是控…...
5年软件测试工程师分享的自动化测试经验,一定要看
今天给大家分享一个华为的软件测试工程师分享的关于自动化测试的经验及干货。真的后悔太晚找他要了, 纯干货。一定要看完! 1.什么是自动化测试? 用程序测试程序,用代码取代思考,用脚本运行取代手工测试。自动化测试涵…...
什么是猜疑心理?小猫测试网科普小作文
什么是猜疑心理?猜疑心理是说一个人心中想法偏离了客观事实,牵强附会,往往是指不好的一面,对别人的一言一行都充满了不良的解读,认为这些对自己都有针对性,目的性,对自己都是不利的。猜疑心理重…...
Redis命令行对常用数据结构String、list、set、zset、hash等增删改查操作
1.Redis命令的小套路 - NX:not exist - EX:expire - M:multi 2.基本操作 ①切换数据库 Redis默认有16个数据库。 115 # Set the number of databases. The default database is DB 0, you can select 116 # a different one on a per-con…...
mycobot 使用教程
(1) 树莓派4B ubuntu系统调整swap空间与使SD卡快速扩容参考:https://www.bilibili.com/read/cv14825069https://blog.csdn.net/weixin_45824920/article/details/114381292?spm1001.2101.3001.6650.1&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edef…...
JVM学习总结,虚拟机性能监控、故障处理工具:jps、jstat、jinfo、jmap、Visual VM、jstack等
上篇:JVM学习总结,全面介绍运行时数据区域、各类垃圾收集器的原理使用、内存分配回收策略 参考资料:《深入理解Java虚拟机》第三版 文章目录三,虚拟机性能监控、故障处理工具1)jps:虚拟机进程状况工具2&…...
指针笔记(指针数组和指向数组的指针,数组中a和a的区别等)
指针数组和指向数组的指针 int *p[4]和int (*p)[4]有何区别? 前者是一个指针数组,数组大小为4,每一个元素都是一个指向int的指针 后者是指向int[4]类型数组的指针 以上代码若运行会报如下错误 main函数中定义的a数组本质是一个指向int[2]的…...
MySQL ---基础概念
目录 餐前小饮:什么是服务器?什么是数据库服务器? 一、数据库服务软件 1. 常见数据库产品 2.如何开启和停止MySQL服务 二、数据库术语及语法 1.数据库术语 2.SQL语法结构 3.SQL 语法要点 三、SQL分类 1.数据定义语言(D…...
【基础】Flink -- ProcessFunction
Flink -- ProcessFunction处理函数概述处理函数基本处理函数 ProcessFunction按键分区处理函数 KeyedProcessFunction定时器与定时服务基于处理时间的分区处理函数基于事件时间的分区处理函数窗口处理函数 ProcessWindowFunction应用案例 -- Top N处理函数概述 为了使代码拥有…...
JavaEE|网络编程基础与Socket套接字
文章目录一、为什么需要网络编程二、什么是网络编程三、网络编程中的基本概念1.发送端和接收端2.请求和响应3.客户端和服务端4.常见的客户端服务端模型四、Socket套接字概念及分类1.概念2.分类1)流套接字:使用传输层TCP协议2)数据报套接字&am…...
【SpringBoot】基础协议及邮件配置整合
一、名词概念解释 什么是POP3、SMTP和IMAP? 简单的说:POP3和IMAP是用来从服务器上下载邮件的。SMTP适用于发送或中转信件时找到下一个目的地。所以我们发送邮件应该使用SMTP协议。 POP3、SMTP和IMAP协议介绍 IMAP和POP3有什么区别?什么是免费…...
pytorch配置—什么是CUDA,什么是CUDNN、在配置pytorch虚拟环境中遇到的问题、在安装gpu—pytorch中遇到的问题
1.什么是CUDA,什么是CUDNN (1)什么是CUDA CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 ࿰…...
jfr引起的一次jvm异常记录
业务生产启动时,20个节点有1-2个节点因为jvm问题出现启动失败,k8s自动重启后正常。在测试环境2个节点下偶现 排查思路: 先拿到hs_err_pid的jvm错误文件找到当前线程和内部错误信息 hs_err_pid 文件分析 当前线程:lettuce的线程…...
Java智慧校园平台源码:SaaS模式智慧校园运营云平台源码
校班务管理:评价管理: 1.web端/教师端小程序编辑点评 多元化评价,捕捉学生闪光点全方位评价,自定义评价类型、 评价信息实时推送至家长、AI智能点评 班级报表一键导出,智能评测学生在校表现,老师、家长实…...
Plausible Analytics:隐私友好型网站统计完全指南:Google Analytics替代方案
Plausible Analytics:隐私友好型网站统计完全指南:Google Analytics替代方案 背景 网站分析是网站运营优化的重要基础。Google Analytics 作为最广泛使用的网站分析工具,提供了强大的数据洞察能力。然而,GA 存在诸多问题&#x…...
【实战指南】Spirent TCL 并发与新建连接测试全流程解析
1. Spirent TCL测试基础与环境搭建 第一次接触Spirent TestCenter时,我也被它强大的功能和复杂的界面吓到过。但实际用下来发现,只要掌握几个核心模块,就能完成大多数性能测试任务。这里先带大家快速搭建测试环境,为后续的并发和新…...
OpenOCD配置文件进阶指南:手把手教你定制STM32F0x的swj-dp.tcl脚本
OpenOCD深度定制:STM32F0x调试接口脚本开发实战 嵌入式开发中,调试工具的灵活配置往往决定着开发效率。对于STM32F0x系列芯片而言,OpenOCD作为开源调试工具链的核心组件,其配置文件的可定制性为开发者提供了极大的灵活性。本文将深…...
YOLOv8训练参数全解析:从epochs到optimizer的保姆级配置指南
YOLOv8训练参数深度优化指南:从基础配置到高阶调参实战 1. 核心训练参数解析与实战配置 YOLOv8作为目标检测领域的新标杆,其参数体系既保留了经典配置又引入了创新机制。我们先从最基础的训练周期控制开始: epochs与time的智能搭配࿱…...
任务式智能客服工作流架构设计与性能优化实战
最近在重构公司的智能客服系统,原来的系统在高并发时经常卡顿,用户排队时间长得让人抓狂。经过一番折腾,我们设计了一套基于事件驱动的任务式工作流,效果拔群,吞吐量直接翻了好几倍。今天就来聊聊这套架构的设计思路和…...
AppleRa1n:解锁iOS设备激活锁的专业指南与安全实践
AppleRa1n:解锁iOS设备激活锁的专业指南与安全实践 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 当您面对一台被激活锁困住的iPhone或iPad时,那种无助感就像是拥有一把无法打…...
Logisim-evolution完全指南:跨平台安装与配置实战
Logisim-evolution完全指南:跨平台安装与配置实战 【免费下载链接】logisim-evolution Digital logic design tool and simulator 项目地址: https://gitcode.com/gh_mirrors/lo/logisim-evolution 准备阶段:从零开始的环境搭建 1.1 认识Logisim…...
隐私优先方案:OpenClaw本地化部署Qwen3.5-9B处理敏感财报分析
隐私优先方案:OpenClaw本地化部署Qwen3.5-9B处理敏感财报分析 1. 为什么金融从业者需要本地化AI方案 作为一名长期关注金融科技自动化的从业者,我深刻理解处理财报数据时的隐私焦虑。去年尝试使用某云端AI服务分析客户财报时,系统突然弹出&…...
【一键养龙虾】阿里云OpenClaw快速部署方案,两步拥有专属龙虾AI助理!
还在羡慕别人拥有能“动手干活”的AI数字员工吗?还在为复杂的本地环境配置、端口映射和依赖冲突而头疼吗?别急,阿里云推出了OpenClaw快速部署方案,官方镜像一键部署,只需两步,轻松拥有专属“龙虾AI”助理&a…...
ViGEmBus虚拟控制器驱动完全指南:从技术原理到场景落地的突破方案
ViGEmBus虚拟控制器驱动完全指南:从技术原理到场景落地的突破方案 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 价值定位:重新定义…...
