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 注意 ...
- Code Review 最佳实践
ref: Code review Best Practices 文章将了以下内容: 3w:why.what.when 进行 code review code review 之前的准备 执行 code ...
- Error:java: JDK isn't specified for module 'xxx'异常的解决方法
问题描述 博主启动的项目的时候出现了一个这样的异常 解决方法 打开左上角这个Project Structure
- 高并发redis分布式锁
1.方法一 2方法二
- 浅入kubernetes(1):Kubernetes 入门基础
目录 Kubernetes 入门基础 Introduction basic of kubernetes What Is Kubernetes? Components of Kubernetes Kub ...
- JS验证三种提示框
1 <form> 2 <!-- 按钮选择点击 --> 3 <tr> 4 <td><input type="button" na ...
- Java基础经典案例
案例列表 01减肥计划switch版本 02减肥计划if版本 03逢七跳过 04不死神兔 05百钱白鸡 06数组元素求和 07判断两个数组是否相同 08查找元素在数组中的索引 09数组元素反转 10评 ...
- Kubernetes官方java客户端之四:内部应用
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- vue uni-app项目中的tabbar
由于公司要求开发百度小程序,所以我们采用uni-app开发的方式,一套代码多个小程序都可以用,在开发小程序的时候我们也经常会使用到tabbar.当然自己写出来也是不错的.这个就来介绍uni-app中的 ...
- 十八般武艺玩转GaussDB(DWS)性能调优:路径干预
摘要:路径生成是表关联方式确定的主要阶段,本文介绍了几个影响路径生成的要素:cost_param, scan方式,join方式,stream方式,并从原理上分析如何干预路径的生成. 一.cost模型选 ...