首页 > 编程语言 >JAVA基本类型和包装类型

JAVA基本类型和包装类型

时间:2022-10-21 22:48:59浏览次数:71  
标签:基本 拆箱 JAVA 包装 数据类型 类型 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.4*10^(-38)~3.4*10^38
double 8 64 0.0d 1.7*10^(-308)~1.7*10^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

标签:基本,拆箱,JAVA,包装,数据类型,类型,Java
From: https://www.cnblogs.com/aibianchengya/p/16814991.html

相关文章

  • Java中Final、 finally 、finalize的区别
    1、final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。2、finally一般作用在try-catch......
  • Java_6
    代号为Mustang。版本发布于2006年12月11日,Sun把原本的名称“J2SE”改为“JavaSE”,然后再从版本号中去掉“.0”[23],而开发者内部编号仍然是1.6.0。[24]这......
  • 常用的Java开发IDE
    IDE(IntegratedDevelopmentEnvironment),集成开发环境。NetBeans。https://netbeans.orgJBuilder。IntelliJIDEAhttps://www.jetbrains.com/idea/Eclipse中......
  • javaSE基础-内部类
    内部类定义:一个类A定义在类B中,则类A为内部类,类B为外部类分类:成员内部类静态成员内部类非静态成员内部类局部内部类方法内代码块内构造器内示例一://InnerCla......
  • java语言中的运算符
    java语言中的运算符java语言支持如下运算符算术运算符:+,-,*,/,%,++,--赋值运算符:=关系运算符:>,<,>=,<=,==,!=instanceof逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>(了解!!!)......
  • 【json报错】java json can not cast to JSONObject 报错解决方法【java json】【
     请问:如下:是否会报错?  解决方法:请先格式化json,再转对象。   原因:后端只图省事,直接这样写:获取的是json字符串没有转换直接put.   返回的报文就会不......
  • Java原码补码反码
    对于一个8位原码,01101010和11000110,求它们的补码。已知补码01101010和11000110,求它们的原码。(要求如题4)注:进制和原码等概念属于计算机编程基础知识,建议了解并熟悉它。答:(1)......
  • 请问Java语言是跨平台的吗?JVM是跨平台的吗?为什么?
    Java语言是跨平台的,JVM是不跨平台的。Java能跨平台正是以JVM不跨平台为代价的。Java的跨平台性由JVM实现,即JVM用于保证java的跨平台的特性。原理分析:JVM是在机器和编译......
  • 4.ClickHouse系列之数据类型与表引擎介绍
    上篇文章已经创建过表及熟悉了基本语法,本文介绍CK的数据类型以及表引擎的一些分类与作用1.数据类型类型整型Int8Int16Int32Int64浮点型Float32Flo......
  • java MD5加密工具类
    点击查看代码packageorg.example;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.nio.ByteBuffer;importjava.ni......