Java入门之包装类
包装类用途
Java中有些异类(8种基本数据类型)它们不能像对象一样进行属性和方法的调用以及进行相互之间的对象化处理,包装类的存在就是为了解决这些异类产生的问题,让它们能像对象一样进行交互。
包装类与基本数据类型之间的关系
包装类的常用方法
Java中所有包装类都是存放在java.lang这个包中。
以Integer为例,介绍它常用的属性和方法
public final class Integer(){ }
所有的包装类都是用final修饰,不允许被继承,无子类。
基本数据类型和包装类的转换
- 装箱 : 基本数据类型转换为包装类
- 拆箱:包装类转换为基本数据类型
自动装箱(拆箱):
int a = 1; Integer b = a;
手动装箱(拆箱):
int a = 1; Integer b = new Integer(a); //拆箱 int c = b.intValue();
基本数据类型和字符串之间转换
通过包装类完成基本数据类型和字符串之间转换。
public class Demo { public static void main(String[] args){ int a = 3; String name = Integer.toString(a); System.out.println(name); //1. int b = Integer.parseInt(name); //2.包装类的valueOf方法先将字符串转为包装类,再通过自动拆箱完成基本数据类型的转换 int d = Integer.valueOf(name); } }
补充知识
包装类对象的初始值
首先看下基本数据类型的初始值:
(注:上图中\u是unicode编码)
跟这些基本数据类型对应的包装类,它们的初始值是多少?
包装类的初始值为null。
包装类对象间比较
看代码:
public class WrapperTest { public static void main(String[] args) { // TODO Auto-generated method stub Integer one=new Integer(100); Integer two=new Integer(100); System.out.println("one==two的结果:"+(one==two));//1 Integer three=100;//自动装箱 //Integer three=Integer.valueOf(100); //等号两端比较的是值 System.out.println("three==100的结果:"+(three==100));//2 自动拆箱 //执行这个语句时 编译器实际上执行的是这个:Integer four=Integer.valueOf(100); Integer four=100; System.out.println("three==four的结果:"+(three==four));//3 Integer five=200; System.out.println("five==200的结果:"+(five==200));//4 Integer six=200; System.out.println("five==six的结果:"+(five==six));//5 Double d1=Double.valueOf(100); System.out.println("d1==100的结果:"+(d1==100)); Double d2=Double.valueOf(100); System.out.println("d1==d2的结果:"+(d1==d2)); } }
上边代码这个部分:Integer.valueOf(100)
,为了执行的效率,在这个方法执行的过程中,java内存提供了一个类似于常量数组的缓存区(对象池),如果传入这个方法的参数是大于-128小于127这个范围,会去缓存区查找是否存在,如果有,直接产生,如果没有,实例化新的产生。这也就解释了为什么three==four打印出的值是ture。而five==six的结果是false。
八种基本数据类型中,除了float和double
,其他的都是应用对象常量池这个概念的。
后续持续更新ing...
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
C# 程序关闭托盘图标不会自动消失
原文: C# 程序关闭托盘图标不会自动消失 c#程序关闭托盘图标不会自动消失,进程的托盘图标却不能随着进程的结束而自动消失必须将鼠标移到图标上面时才能消失?请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束),windows系统好多程序都会这样。 网上搜索后大家说法不一,如下: 1、这个就这样,很多程序都有这个问题,大家都习惯了 2、似乎没法解决。。任务管理器是强制关闭的,程序认为是异常结束,所以没有执行小图标关闭的操作,当你鼠标移上去的时候,系统找不到进程(因为已关闭),所以就消失了。 3、任务管理器是强制关闭的,程序认为是异常结束,所以没有执行小图标关闭的操作,当你鼠标移上去的时候,系统找不到进程(因为已关闭),所以就消失了。 4、只能习惯! 5、退出时让托盘控件不可见..再退出. 6、应用程序操作托盘图标是通过windows的委托来处理的,也就是应用程序对系统说“我要添加一个图标”,于是任务栏就多了个图标,程序退出时对系统说“把我的图标删除了”,任务栏才会消除图标。。。直接砍掉一个进程,那个程序异常退出,还未来得及说“把我的图标删除了”,所以任务...
- 下一篇
Bytom Java版本离线签名
比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom tx_signer Java implementation of signing transaction offline to bytomd. Pre Get the source code $ git clone https://github.com/Bytom/bytom.git $GOPATH/src/github.com/bytom git checkout $ git checkout dev Why need dev branch? Because you could call decode transaction api from dev branch and obtain tx_id and some inputs ids. Build $ cd $GOPATH/src/github.com/bytom $ make bytomd # build bytomd $ make byt...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- 设置Eclipse缩进为4个空格,增强代码规范
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7安装Docker,走上虚拟化容器引擎之路