Java 从Character和char的区别来学习自动拆箱装箱
本文结构
1.Character和char 的区别:
2.自动拆箱装箱
1.Character和char 的区别:
Character是类,char基本数据类型.
在java中有三个类负责对字符的操作:Character、String、StringBuffer。其中Character类是对单个字符进行操作,String是对一个字符序列的操作,StringBuffer是对一串字符进行操作。
char可以自动包装成Character;Character也可以自动拆包成char。
java中默认基本类型的数据是分配在栈上,如果你想把它包装成一个类的对象,让它分配在堆上,就需要用到包装类,Character就是char的包装类。
char可以自动包装成Character;Character也可以自动拆包成char.
2.自动拆箱和装箱
每一种基本数据类型,都对应了一个包装类:
byte——Byte
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 从Character和char的区别来学习自动拆箱装箱的更多相关文章
- Java中的自动拆箱装箱(Autoboxing&Unboxing)
一.基本类型打包器 1.基本类型:long.int.double.float.boolean 2.类类型:Long.Integer.Double.Float.Boolean 区别:基本类型效率更高,类 ...
- Java 自动拆箱 装箱 包装类的缓存问题--结合源码分析
都0202 了 java 1.8 已经是主流 自动装箱 .拆箱已经很普遍使用了,那么有时候是不是会遇到坑呢? 我们先来看一段代码: public class TestWraperClass { pub ...
- JAVA高级特性--自动拆箱-装箱,枚举类型
基本数据类型转换为引用类型对象 一个自动装箱的例子 Integer i=10; 相当于 Integer i=new Integer(10); 一个自动拆箱的例子 Integer m=10; int n ...
- 关于Java自动拆箱装箱中的缓存问题
package cn.zhang.test; /** * 测试自动装箱拆箱 * 自动装箱:基本类型自动转为包装类对象 * 自动拆箱:包装类对象自动转化为基本数据类型 * * * /*缓存问题*/ /* ...
- 如何理解Java中的自动拆箱和自动装箱?
小伟刚毕业时面的第一家公司就被面试官给问住了... 如何理解Java中的自动拆箱和自动装箱? 自动拆箱?自动装箱?什么鬼,听都没听过啊,这...这..知识盲区... 回到家后小伟赶紧查资料,我透,这不 ...
- JavaSE的包装类,自动装箱和自动拆箱 ,字符窜转换,toString(),equals(), hashCode()的区别
一.基本数据类型和包装类 包装类均位于Java.lang包,包装类和基本数据类型的对应关系如下表所示: Primitive-Type Wrapper-Class byte ...
- java 自动装箱自动拆箱
1.Java数据类型 在介绍Java的自动装箱和拆箱之前,我们先来了解一下Java的基本数据类型. 在Java中,数据类型可以分为两大种,Primitive Type(基本类型)和Reference ...
- 转!!Java学习之自动装箱和自动拆箱源码分析
自动装箱(boxing)和自动拆箱(unboxing) 首先了解下Java的四类八种基本数据类型 基本类型 占用空间(Byte) 表示范围 包装器类型 boolean 1/8 true|fal ...
- 《java入门第一季》之Integer类和自动拆装箱概述
/ * int 仅仅是一个基本类型.int有对应的类类型,那就是Integer. * 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型--包装类类型 ...
随机推荐
- .net core 和 WPF 开发升讯威在线客服与营销系统:(插曲)一次端口攻击行为的分析与应对
本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...
- Spring Data Cache
Spring Data Cache注解使用 方法是一个对象,使用对象中的属性,如ID,作为cache key RedisConnection超时设置 参考 SpringBoot使用Redis缓存
- Java学习日报7.27
笔记
- Java学习日报7.15
package oddor;import java.util.Scanner;public class Oddor{ public static void main(String args[]) { ...
- Mapreduce实例--去重
数据去重"主要是为了掌握和利用并行化思想来对数据进行有意义的筛选.统计大数据集上的数据种类个数.从网站日志中计算访问地等这些看似庞杂的任务都会涉及数据去重. 数据去重的最终目标是让原始数据中 ...
- HTML学习案例-仿慕课网网页制作(一)
概述:仿制慕课网头部导航栏和分支导航栏的外观 考察知识点: 1.消除浮动的原因:如果最上面的块级元素不清楚浮动的话就会影响下面的块级元素的布局 对subnav块使用了float,结果subnav块飞到 ...
- 树莓派(4B)新手入门教程
前期准备 必要物料 树莓派4B 主机 Type-C 电源 内存卡(8G+) 一般建议一步到位64G 系统镜像 镜像写入工具 下载地址 镜像下载 官方下载地址: https://www.raspberr ...
- 【Azure Developer】使用Postman获取Azure AD中注册应用程序的授权Token,及为Azure REST API设置Authorization
Azure Active Directory (Azure AD) is Microsoft's cloud-based identity and access management service, ...
- RecyclerView 源码分析(一) —— 绘制流程解析
概述 对于 RecyclerView 是那么熟悉又那么陌生.熟悉是因为作为一名 Android 开发者,RecyclerView 是经常会在项目里面用到的,陌生是因为只是知道怎么用,但是却不知道 Re ...
- postgresql数据库升级
pg_upgrade官网介绍:https://www.postgresql.org/docs/10/pgupgrade.html 1.查看老版本数据库编译参数值并记录 select name,sett ...