当前位置: 首页 > news >正文

Java:基本类型及它们的封装类

Java中的基本数据有个8个包含byte(字节型)、short(短整型)、int(整型)、long(长整型)、float(浮点型)、double(双精度浮点型)、boolean(布尔类型),char(字符型),不能直接当作对象使用

下列为对应封装类型:

数据类型名称占用字节默认值封装类
byte(字节型)10Byte
short(短整型)20Short
int(整型)40Integer
long(长整型)80lLong
float(浮点型)40.0fFloat
double(双精度浮点型)80Double
boolean(布尔类型)1true/falseBoolean
char(字符型)2\u0000Character

java是一种面向对象的语言,基本数据类型很显然不及备面向对象的条件。Object 类是所有类的父类,而且是唯一不用指定明确继承的类。例如基本类型如 int 不是引用类型,也不是继承自 Object,所以 Java 需要一个这样的包装类来使其面向对象的完整性。

一、为什么使用包装类? 

a、作为 和基本数据类型对应的类 类型存在,方便涉及到对象的操作。
b、包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。

包装类可以完成自动拆箱装箱,将基本类型的数据转换为引用类型数据,为装箱。反之则为拆箱

二、包装类与基本数据的不同之处 

1、在Java中,一切皆对象,但八大基本类型却不是对象。

2、声明方式的不同,基本类型无需通过new关键字来创建,而封装类型需new关键字。

3、存储方式及位置的不同,基本类型是直接存储变量的值保存在堆栈中能高效的存取,封装类型需要通过引用指向实例,具体的实例保存在堆中。

4、初始值的不同,封装类型的初始值为null,基本类型的的初始值视具体的类型而定,比如int类型的初始值为0,boolean类型为false;

5、使用方式的不同,比如与集合类合作使用时只能使用包装类型。

6、什么时候该用包装类,什么时候用基本类型,看基本的业务来定:这个字段允不允许null值,如果允许null值,则必然要用封装类,否则值类型就可以了,用到比如泛型和反射调用函数.,就需要用包装类! 

相关文章:

  • 复试 || 就业day05(2023.12.31)算法篇
  • SpringCloud(H版alibaba)框架开发教程,使用eureka,zookeeper,consul,nacos做注册中心——附源码(1)
  • IntelliJ IDEA [插件 MybatisX] mapper和xml间跳转
  • 【Spring Security】AuthenticationFailureHandler 用户认证失败后处理
  • 数据特征工程 | PSO粒子群算法的特征选择原理及python代码实现
  • web component - 使用HTML Templates和Shadow DOM构建现代UI组件
  • [BUG]Datax写入数据到psql报不能序列化特殊字符
  • C# MVC +Layui侧边导航栏的收缩及展开
  • VUE——IDEA 启动前端工程VS文件启动前端工程
  • 【操作系统】虚拟存储器
  • 相比于其他流处理技术,Flink的优点在哪?
  • N 皇后 II[困难]
  • 你好!Apache Seata
  • Android--Jetpack--Paging详解
  • C#-CSC编译环境搭建
  • Google 是如何开发 Web 框架的
  • 【刷算法】求1+2+3+...+n
  • django开发-定时任务的使用
  • export和import的用法总结
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • JAVA并发编程--1.基础概念
  • Joomla 2.x, 3.x useful code cheatsheet
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • MySQL数据库运维之数据恢复
  • node学习系列之简单文件上传
  • supervisor 永不挂掉的进程 安装以及使用
  • Xmanager 远程桌面 CentOS 7
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 前端学习笔记之观察者模式
  • 用jquery写贪吃蛇
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 云大使推广中的常见热门问题
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 容器镜像
  • ​MySQL主从复制一致性检测
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (Python) SOAP Web Service (HTTP POST)
  • (分布式缓存)Redis持久化
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (译)计算距离、方位和更多经纬度之间的点
  • (转载)OpenStack Hacker养成指南
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • ... 是什么 ?... 有什么用处?
  • ./configure,make,make install的作用(转)
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET 设计模式初探
  • .Net各种迷惑命名解释