我是靠谱客的博主 舒适诺言,最近开发中收集的这篇文章主要介绍java char的包装对象,Java 从Character和char的区别来学习自动拆箱装箱,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文结构

1.Character和char 的区别:

2.自动拆箱装箱java

1.Character和char 的区别:

Character是类,char基本数据类型.数组

在java中有三个类负责对字符的操做:Character、String、StringBuffer。其中Character类是对单个字符进行操做,String是对一个字符序列的操做,StringBuffer是对一串字符进行操做。缓存

char能够自动包装成Character;Character也能够自动拆包成char。jvm

java中默认基本类型的数据是分配在栈上,若是你想把它包装成一个类的对象,让它分配在堆上,就须要用到包装类,Character就是char的包装类。code

char能够自动包装成Character;Character也能够自动拆包成char.对象

2.自动拆箱和装箱

每一种基本数据类型,都对应了一个包装类:继承

byte——Byteclass

int——Integer变量

char——Character数据类型

。。。。。

这些包装类final修饰不能被继承。

每个包装类对象,维护了一个对应的基本数据类型的值,且这个对象的值不会变,永远对应。1——Integer(1)

//装箱

int a=1;

Integer integer=new Integer(a);

//将基本数据类型的值封装到其对应的包装类对象中,叫作装箱。

//拆箱

int i=integer.intValue();//注意integer同上,都为定义的对象名

Sout输出为1

//从包装类对象中,取出其所包装的基本数据类型的值,叫作拆箱。

//自动装箱

int a=1;

Integer integer=a;//竟然把一个基本类型值赋值给了引用型变量,好矛盾,实际上jvm自动装箱了。

//Integer integer=new Integer(a);jvm自动补齐了

//自动拆箱

int b=integer;//竟然把地址赋值给了基本类型的变量里

//int b=integer.intValue();jvm自动补齐了

Integer integer1=1;

Integer integer2=1;

SOUT(integer1==integer2);//输出的是true

//不对呀两个对象应该是两个地址呀,这是由于对于数据范围-128~127这个范围的包装类对象,作了缓存,

//因此俩是一个对象

//注意:虽然有了自动装箱和自动拆箱,但不是在全部的场景下基本数据类型的值与包装类对象都等价

//第一个场景

int[] a=new int[100];

Integer[] b=a;//报错,不行,站在整个数组的角度来看是错误的

a[0]=new Integer(100);//能够,站在单个数组单元来看是能够的

//第二个场景

//父类方法用int型

//子类方法用Integer报错

最后

以上就是舒适诺言为你收集整理的java char的包装对象,Java 从Character和char的区别来学习自动拆箱装箱的全部内容,希望文章能够帮你解决java char的包装对象,Java 从Character和char的区别来学习自动拆箱装箱所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部