首页 > 编程语言 >java中的自动拆装箱与缓存(Java核心技术阅读笔记)

java中的自动拆装箱与缓存(Java核心技术阅读笔记)

时间:2022-10-05 16:56:00浏览次数:44  
标签:缓存 java -- 数据类型 包装 自动 Java 装箱

最近在读《深入理解java核心技术》,对于里面比较重要的知识点做一个记录!

众所周知,Java是一个面向对象的语言,而java中的基本数据类型却不是面向对象的!为了解决这个问题,Java为每个基本数据类型引入一个对应的类,称为包装类!

byte -- Byte  boolean -- Boolean short -- Short  char -- Character  

int -- Integer  long -- Long  float -- Float  double -- Double

为什么需要包装类?

因为java是面向对象的语言,很多地方需要使用对象而不是基本数据类型。比如,在集合类中,无法将int,double放进去,因为集合容器要求的元素是object类型。

装箱:把基本数据类型转换成包装类的过程

拆箱:把包装类换成基本数据类型的过程

自动拆箱:将基本数据类型自动转换成对应的包装类

自动装箱:将包装类自动转换成对应的基本数据类型

自动拆箱与自动装箱的原理:

  public static void main(String[] args){

    Integer integer = 1;//装箱

    int i  = integer;//拆箱

  }

自动装箱都是通过包装类的valueOf()方法实现的,自动拆箱都是通过包装类对象的xxxvalue()方法实现的。

在那些场景下,java会自动拆装箱?

  场景一:将基本数据类型放入集合类

  把基本数据类型放入集合类

import java.util.ArrayList;
import java.util.List;

public class demo2 {
    public static void main(String[] args){
        List<Integer> list = new ArrayList<>();
        for(int i = 0;i < 10 ; i++){
            list.add(i);
        }
        System.out.println(list);
    }
}

 

  场景二:

 

标签:缓存,java,--,数据类型,包装,自动,Java,装箱
From: https://www.cnblogs.com/99kol/p/16755836.html

相关文章

  • JavaScript中的Promise详解
    我们了解Promise之前先了解一下什么是异步,因为Promise是用来处理异步操作的一、什么是异步异步(Asynchronous,async)是与同步(Synchronous,sync)相对的概念。总所周知,Jav......
  • Java方法
    流程控制基础1.用户交互Scanner定义:实现程序和人的交互,Scanner类可以来获取用户的输入基本语法 Scanners=newScanner(System.in); //创建Scanner对象通......
  • java框架——Spring(二)
    AOP简介AOP(AspectOrientedProgramming)面向切面编程,一种编程范式,指导开发者如何组织程序结构OOP(ObjectOrientedProgramming)面向对象编程作用:在不惊动原始设计的基......
  • java子类对父类继承的属性在不同修饰词下的访问权限
    父类中的属性和方法可以被子类继承子类中继承了父类中的属性和方法后,在子类中能不能直接使用这些属性和方法:和这些属性和方法原有的修饰符(publicprotecteddefaultpri......
  • 关于javaSE继承中super的考究
    在对父类非private属性的使用过程中super专门用来指代继承过来的属性,在子类没有与父类重名的情况下。实际功能与this并无二异packagegunjo.kirito.union.course;cla......
  • 手撕前端面试题【javascript~文件扩展名、分隔符、单向绑定、判断版本、深浅拷贝、内
    前端的那些基本标签​​......
  • JAVA的封装性--1
    classAnimal{Stringname;privateintlegs;//将属性私有化(private),然后提供公共的方法来获取(get),和设置(set)属性的值        以下标黄部分为封装性......
  • [金三银四面试季]Java面向对象高频面试题
      金三银四正是跳槽涨薪的好时节,波哥给大家整理了很多面试高频的问题,助力大家找到更好的工作哦,点点关注,感谢支持。面向对象面试题1.谈谈你对面向对象思想的理解?面向过程......
  • JAVA设计模式-装饰模式
    JAVA设计模式-装饰模式介绍装饰模式是一种结构型模式,在不改变现有对象结构的前提下,给现有对象添加新的功能,动态增加职责,是现有类的一个包装。角色Component:定义一......
  • Java IO详解(三)------字节输入输出流
    那么这篇博客我们讲的是字节输入输出流:InputStream、OutputSteam(下图红色长方形框内),红色椭圆框内是其典型实现(FileInputSteam、FileOutStream)  1、字节输出流:Output......