JAVA基本类型和包装类型

JAVA基本类型和包装类型

前言

Java语言中的数据类型分为基本数据类型和引用类型,而我们进行Java开发的时候都听说过基本数据类型和包装类型,今天我们就来详细聊一聊Java中的基本数据类型和包装类型之间的区别。

基本数据类型

Java中的基本数据类型一共有8种基本数据类型,分别是4种整型(byte、short、int、long)、2种浮点型(float、double)、1种字符类型(char)、1中布尔类型(boolean)。下面我们使用表格来详细展示一下

基本数据类型 字节 位数 默认值 取值范围 byte 1 8 0 -128~127或者-2^7~2^7-1 short 2 16 0 -32768~32767或者-2^15~2^15-1 int 4 32 0 -2147483648~2147483647 long 8 64 0L -9223372036854775808~9223372036854775807或者-2^63~2^63-1 float 4 32 0.0f 3.410^(-38)~3.410^38 double 8 64 0.0d 1.710^(-308)~1.710^308 char 2 16 ‘u0000’ 0~65535或者0~2^16-1 boolean 1/8 1 false true,false

注:每个字节包含8个位。

boolean占用的字节数,一直有很多种答案,一般有认为1个bit、1个字节、4个字节等,但是具体占用多少位,还是需要看虚拟机的具体实现,需要考虑性能、存储等多个因素。

包装类型

基本数据类型比较简单,但是不具有对象的特性,所以Java将基本数据类型封装后,就产生了包装类。包装类和基本数据类型都有对应关系,并且还包含各类方法。

基本数据类型 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean

我们在使用基本数据类型和包装类型时,肯定会遇到相关转换,这种转换我们称之为”装箱”和”拆箱”。例如将基本数据类型转换为包装类叫做装箱,将包装类转换成基本数据类型叫做拆箱。

Integer i = Integer.valueOf(100); // 装箱
int i1 = i.intValue(); // 拆箱

Java还提供了自动拆箱和自动装箱的功能。

Integer i = 100; // 装箱
int i1 = i; // 拆箱

区别

  1. 包装类型不赋值是null,基本数据类型有默认值。
  2. 包装类型可以用于泛型,基本数据类型不可以。
  3. 基本数据类型占用的空间小。
  4. 基本数据类型是存储在栈中的,是值传递,包装类型时存储在堆中的,存储的是堆中引用,是引用传递。
  5. 声明方式不用,包装类型需要使用new关键字创建,基本类型不需要。

原文链接:https://monkey.blog.xpyvip.top/archives/java-ji-ben-lei-xing-he-bao-zhuang-lei-xing

Original: https://www.cnblogs.com/aibianchengya/p/16814991.html
Author: 程序猿的代码
Title: JAVA基本类型和包装类型

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/643091/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Docker Manager for Docker Swarm deploy

    一、Swarm概述 Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机。Swa…

    技术杂谈 2023年7月10日
    0114
  • JAVA基础学习第三天!

    精华笔记: 1.运算符: -算术:+、-、*、/、%、++、– -关系:>、 -逻辑:&&、||、! -赋值:=、+=、-=、*=、/=、%= -…

    技术杂谈 2023年7月11日
    0135
  • HTML网页中,img标签和Ajax请求是支持跳转(Redirect)的

    我们知道在HTTP请求中,状态码301和302代表跳转,也叫重定向(Redirect)。 301-Moved Permanently:永久移动。请求的资源已被永久的移动到新URI,…

    技术杂谈 2023年5月31日
    0143
  • java反序列化漏洞cc_link_one

    前言 这里也正式进入的java的反序列化漏洞了,简单介绍一下CC是什么借用一些官方的解释:Apache Commons是Apache软件基金会的项目,曾经隶属于 Jakarta项目…

    技术杂谈 2023年6月21日
    0112
  • 用「闪电侠」的例子解释一下进程和线程

    1. 艾伦在一次粒子加速器爆炸大事故中获得了极速移动的超能力,因此开始化身为超级英雄”闪电侠”。类比之下,CPU是计算机最核心的部件,它负责指令的读取和执行…

    技术杂谈 2023年7月23日
    087
  • 包机制

    ; ; 包机制 包就是装代码的文件夹。 为了更好地组织类,JAVA提供了包机制,用于区别类名的组织空间。 package 包语句的句法格式为: 一般利用公司域名倒置作为包名。 im…

    技术杂谈 2023年6月21日
    0119
  • subprocess模块简介

    subprocess模块可以执行系统命令,该模块允许用户创建一个新的进程,该进程会连接到input|output|error管道并获取到返回的状态码。 本文版本是以python3….

    技术杂谈 2023年7月11日
    0117
  • 快速模幂算法

    快速模幂算法就是将指数变成二进制数来计算,每次按照底数的二进制次方进行计算,因为底数相乘指数相加,又模和乘可以相互变化,所以最后可以一边模一边乘,最后得出的结果还是正确的。 例如:…

    技术杂谈 2023年6月21日
    0122
  • Java后端开发——美团(牛客)

    Java的基本数据类型,各自的字节数 ​ 老生常谈,不多说了. 类型 字节数 byte 1字节 short 2字节 int 4字节 long 8字节 float 4字节 doubl…

    技术杂谈 2023年7月11日
    090
  • Eclipse崩溃后无法启动的问题解决

    一次Eclipse发生内存溢出(ADT环境,多打开几个xml文件内存占用就会飚升),强制结束任务,再次启动Eclipse发现闪退。查看workspace/.metadata/.lo…

    技术杂谈 2023年5月30日
    098
  • 图片优化

    前面的话 本文将详细介绍前端项目中的图片相关的优化方案 图片格式 目前在前端的开发中常用的图片格式有jpg、png、gif,png8、png24、png32、svg和webp 【g…

    技术杂谈 2023年5月31日
    0120
  • 手写一个模拟的ReentrantLock

    package cn.daheww.demo.juc.reentrylock; import sun.misc.Unsafe; import java.lang.reflect.F…

    技术杂谈 2023年7月25日
    0103
  • Guava常用工具类总结

    === -"我想写得更优雅,可是没人告诉我怎么写得更优雅" -"Null的含糊语义让人很不舒服。Null很少可以明确地表示某种语义,例如,Map.ge…

    技术杂谈 2023年7月24日
    0104
  • idea 中 下载、安装、运行 Antlr4

    posted @2022-11-02 18:42 学而不思则罔! 阅读(12 ) 评论() 编辑 Original: https://www.cnblogs.com/bajiaot…

    技术杂谈 2023年7月11日
    077
  • Javaweb学习-HTML

    ; ; 重新开始HTML,之前学的都忘了 posted @2022-03-24 21:27 HelloHui 阅读(7 ) 评论() 编辑 Original: https://ww…

    技术杂谈 2023年6月21日
    099
  • pytest-xdist–分布式执行用例

    pytest-xdist基本的介绍 声明:在介绍pytest-xdist时,本人不讲任何原理,需要看原理的请移至官方:当我们自动化测试用例非常多的时候, 一条条按顺序执行会非常慢,…

    技术杂谈 2023年7月25日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球