详细总结Java基础类和包装类

一、简介

当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了。

基本数据类型存放在栈中,效率更高
每个基本类型在java.lang包中都有一个相应的包装类,new出来的对象存在于堆中(通过栈中的引用来使用这些对象),是一个对象,因此具有更多的诸如“转换”的方法

例子:

1.int转Integer

int i = 0;
Integer ii = new Integer(i);

2.Integer转int

Integer ii = new Integer(0);
int i = ii.intValue(); 

二、区别

  • 声明方式:基本类型不使用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;
  • 存储方式及位置:基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后通过引用来使用
Integer a = null;
int b = a; // 抛出NullPointException

该使用方式编译可以通过,但是会抛出空指针异常,
int b = a实际上是int b = a.intValue(),
由于a的引用值为null,在空对象上调用方法就会抛出NullPointException
  • 初始值不同:基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null;
  • 使用方式:基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到。

三、自动装箱和拆箱

装箱:自动将基本数据类型转换为包装器类型;

拆箱:自动将包装器类型转换为基本数据类型。

在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行:

Integer i = new Integer(10);

而在从Java SE5开始就提供了自动装箱与自动拆箱

Integer i = 10;  //装箱
int n = i;   //拆箱

到此这篇关于详细总结Java基础类和包装类的文章就介绍到这了,更多相关Java基础类和包装类内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java基本数据类型包装类原理解析

    数据类型包装类 Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(WrapperClass),有些地方也翻译为外覆类或数据类型类. 包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示: 包装类的用途 对于包装类说,这些类的用途主要包含两种: a.作为和基本数据类型对应的类类型存在,方便涉及到对象的

  • 讲解Java中的基础类库和语言包的使用

    Java基础类库 Java 的类库是 Java 语言提供的已经实现的标准类的集合,是 Java 编程的 API(Application Program Interface),它可以帮助开发者方便.快捷地开发 Java 程序.这些类根据实现的功能不同,可以划分为不同的集合,每个集合组成一个包,称为类库.Java 类库中大部分都是由Sun 公司提供的,这些类库称为基础类库. Java 语言中提供了大量的类库共程序开发者来使用,了解类库的结构可以帮助开发者节省大量的编程时间,而且能够使编写的程序更简单

  • Java基本类型和包装类型的区别

    包装类型可以为 null,而基本类型不可以 别小看这一点区别,它使得包装类型可以应用于 POJO 中,而基本类型则不行. POJO 是什么呢?这里稍微说明一下. POJO 的英文全称是 Plain Ordinary Java Object,翻译一下就是,简单无规则的 Java 对象,只有属性字段以及 setter 和 getter 方法,示例如下. class Writer { private Integer age; private String name; public Integer ge

  • Java基础详解之包装类的装箱拆箱

    一.包装类 概念: Java提供了两个类型系统,基本数据类型和引用数据类型,使用基本数据类型在于效率,然而很多情况下回创建对象使用,因为对象能做更多的功能. 所以可以使用一个类,把基本数据类型包装起来,在类中定义一些方法,这就叫做包装类.我们可以用这种方法来操作这些数据类型 基本类型 对应包装类(位于java.lang中) byte Byte short Short int Integer long Long float Float double Double char Character bo

  • 详解Java包装类及自动装箱拆箱

    Java包装类 基本类型 大小 包装器类型 boolean / Boolean char 16bit Boolean byte 8bit Byte short /16bit Short int 32bit Integer long 64bit Long float 32bit Float double 64bit Double void / Void Java 的包装类有两个主要的目的: Java包装类将基本数据类型的值"包装"到对象中,对基本数据类型的操作变为了对对象进行操作,从而使

  • Java基础类Class使用指南

    大家都知道Java是一门面向对象编程语言,在Java世界里,万事万物皆对象,那个Java中怎么表示对象呢?Class 我们知道Java中的对象都是Object类的子类,那么今天我们就一起来研究一下Java中的Class的使用. 问一下小问题:类是对象吗?类是谁的对象?答案是:类是对象,是java.lang.Class类的实力对象. package com.edu.hpu; public class Test { public static void main(String[] args) { /

  • Java基础之包装类

    一.java的包装类 什么是包装类 对于基本数据类型来讲,其实就是一个数字,但是当给基本数据类型添加一些属性 方法和构造器,将基本数据类型对应进行一个封装,就产生了一个新的类,这个类被称为是包装类. 那么基本数据类型在前面中讲过有byte short int long float double char boolean,也就是将这些进行封装,基本数据类型和包装类的对应关系是怎样的呢? 基本数据类型 对应的包装类 byte Byte short Short int Integer long Lon

  • java基础类型源码解析之多角度讲HashMap

    前言 终于来到比较复杂的HashMap,由于内部的变量,内部类,方法都比较多,没法像ArrayList那样直接平铺开来说,因此准备从几个具体的角度来切入. 桶结构 HashMap的每个存储位置,又叫做一个桶,当一个Key&Value进入map的时候,依据它的hash值分配一个桶来存储. 看一下桶的定义:table就是所谓的桶结构,说白了就是一个节点数组. transient Node<K,V>[] table; transient int size; 节点 HashMap是一个map结

  • Java包装类原理与用法实例分析

    本文实例讲述了Java包装类原理与用法.分享给大家供大家参考,具体如下: 产生: 为了提高数据类型的的面向对象性,所以产生了包装类,包装类中有各种便利的方法 数据类型对应的包装类 使用: 包装类可以实现将基本类型转换成字符串(或者字符串转换成基本类型): 1.包装类中方法parseXXX 2.构造器 3.对于String,使用String中的valueof能将基本数据类型转换成字符串 包装类的实例可以与基本数据类型比较: 直接把实例中包装的数值拿出来比较 当如果是包装类实例的比较的话,比较的是所

  • Java基本类型包装类概述与Integer类、Character类用法分析

    本文实例讲述了Java基本类型包装类概述与Integer类.Character类用法.分享给大家供大家参考,具体如下: 基本类型包装类概述 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据. 常用的操作之一:用于基本数据类型与字符串之间的转换. 基本类型和包装类的对应 Byte,Short,Integer,Long,Float,Double,Character,Boolean Integer类 为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装

  • java——Byte类/包装类的使用说明

    Byte类/包装类 包装类是一个常量类,可实例化 (意义:帮助对应的数据类型进行数据类型) java数据类型包括内置数据类型和引用数据类型 内置数据类型 :含6中数字类型(四个整数型,两个浮点型),一种字符类型,还有布尔类型 byte byte:数据类型占用1个字节=8bit,以二进制补码表示的整数 取值范围:默认值为0,最小值为-128(-2^7);最大值是127(2^7-1) 数据类型 关键字 内存中占用字节数 取值范围 默认值 布尔型 boolean 1 true/false FALSE

  • 使用java基础类实现zip压缩和zip解压工具类分享

    使用java基础类写的一个简单的zip压缩解压工具类 复制代码 代码如下: package sun.net.helper; import java.io.*;import java.util.logging.Logger;import java.util.zip.*; public class ZipUtil {    private final static Logger logger = Logger.getLogger(ZipUtil.class.getName());    privat

  • Java包装类的缓存机制原理实例详解

    这篇文章主要介绍了Java包装类的缓存机制原理实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java 包装类的缓存机制,是在Java 5中引入的一个有助于节省内存.提高性能的功能,只有在自动装箱时有效 Integer包装类 举个栗子: Integer a = 127; Integer b = 127; System.out.println(a == b); 这段代码输出的结果为true 使用自动装箱将基本类型转为封装类对象这个过程其实

  • Java基本数据类型与对应的包装类(动力节点java学院整理)

    Java是面向对象的编程语言,包装类的出现更好的体现这一思想. 其次,包装类作为类是有属性有方法的,功能比基本数据类型要强大. Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. 1.整数:包括int,short,byte,long ,初始值为0 2.浮点型:float,double ,初始值为0.0 3.字符:char ,初始值为空格,即'' ",如果输出,在Console上是看不到效果的. 4.布尔:boolean ,初始值为false 注

随机推荐