目录

包装类概念

包装类的继承

基本数据类型——>>包装类 的转换

默认值的区别

包装类——>>基本数据类型 的转换

xxValueof方法  toString方法 区别

自动装箱:

自动拆箱:

基本数据类型、包装类——>String类型 的转换

Sting类型——>基本数据类型、包装类 的转换


包装类概念

因为Java是一个完全的面向对象的语言,几乎所有的方法都可以直接通过对象.方法()调用,然而8种基本数据类型的存在就很鸡肋,不能直接用int.   char.   double.来调用想用的功能,也没有继承封装等面向对象的思想,因此引入了包装类:

包装类的继承

除了int和char,其他的都是直接首字母大写,前6个数值型的包装类都有一个共同的父类Number,Number又继承于Object

这8种包装类都有这类似的一句“提供String转换方法”,即在初始化构造的时候可以在()种输入String类型,并且每个包装类都有独自的转换方式

基本数据类型——>>包装类 的转换

 Boolean例子

public class WrapTest {
public static void main(String[] args) {Boolean A = new Boolean(true);//true
//加不加双引号都行,加了就自动String转booleanBoolean B = new Boolean("TrUe");//ture
//Boolean包装类定义构造的时候忽略大小写Boolean C = new Boolean("qwer123");//true
//其他的所有情况都是falseSystem.out.println(A.toString()+B.toString()+C.toString());}
}

 Float例子

Float的()中可以放double float String三种类型

Float A = new Float(12.3);
//double自动转成float
Float A2 = new Float(12.3f);
Float B = new Float("12.3");
//String自动转成float
Float C = new Float("12.3aaa");
//编译正常,运行报错,Float没有定义怎么处理字母

以上的new出来再填值的操作都调用了构造器,包装类的构造器有String到基本数据类型的转换方法,在后面(自动装箱)

默认值的区别

包装类是个类,因此默认值是null。基本数据类型有自己的默认值

class Order{
int a ;
Integer b;
}//测试
System.out.println(new Order().a);//0
System.out.println(new Order().b);//null
//这里无论什么包装类,默认值都是null

包装类——>>基本数据类型 的转换

xxValueof方法  toString方法 区别

例如Float包装类的对象在调用float值的时候会自动调用floatValue()方法,也可以自己显式表达

Float B = new Float("12.3");
System.out.println(B.toString()+1);//12.31
//toString出来的是String类型,+1是一个连接符+1
System.out.println(B.floatValue()+1);//13.3
System.out.println(B+1);//13.3
//B+1是自动调用成B.floatValue()+1

同理:Integer对应的就是B.intValue()

自动装箱:

基本数据类型 —— 装箱 ——> 包装类

可以直接把基本数据类型赋值给包装类,而不用new一个出来,例如

Integer A = 1;
相当于
Integer A = new Integer(1);

根据这个特性,可以定义方法method(Object obj){ } 形参可以直接放数字1,数字1会自动转换为Integer包装类

由此可见,这是一个正确的表达式(true)

System.out.println(new Integer("111").equals(111));
System.out.println(new String("aaa").equals("aaa"));

自动拆箱:

包装类 —— 装箱 ——> 基本数据类型

可以不用xxValue方法,直接取值

Integer A = 1; //没有调用构造器,不能填String类型的
int a = A;
相当于
Integer A = new Integer(1);
int a = A.intValue();

基本数据类型、包装类——>String类型 的转换

1, +“”转换法:

2,String.Valueof(基本数据类型or包装类)转换法:

注意区分一下String.Valueof(xx)和XX.intValue()格式上的差别

Integer A = 111;//int A = 111;也一样
System.out.println(A+""+123);
System.out.println(String.valueOf(A)+123);
//两个结果都为111123,因此发生了字符串连接

Sting类型——>基本数据类型、包装类 的转换

包装类.parse包装类名(String)方法

Integer A = Integer.parseInt((new String("111")));//111
Double B = Double.parseDouble(A.toString());//111.0
Float C = Float.parseFloat("111");//111.0
Boolean D = Boolean.parseBoolean("true");//D就是true

为什么不能直接强转成String类型?

  • 不同于8种基本数据类型之间可以强转,包装类是类,必须要有子父类关系才能强转(子转父)
  • Integer A = (Integer)(new String("1111"));这类表达是错误的

Java包装类(封装类)详解相关推荐

  1. Java包装类API详解

    在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类 ...

  2. Java 线程池详解学习:FixedThreadPool,CachedThreadPool,ScheduledThreadPool...

    Java常用的线程池有FixedThreadPool和CachedThreadPool,我们可以通过查看他们的源码来进行学习. Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) ...

  3. Java期末复习题详解

    Java期末复习题详解 选择题 1 .class: .java: .cpp: .txt: 2 3 4 封装: 继承: 覆盖: 重载: 5 构造函数: 特点: 6 异常处理: 注:catch可以进行多重 ...

  4. java 反射机制详解

    火星十一郎 海纳百川, 有容乃大,QQ:791909235,Tel:13137910179 posts - 774, comments - 556, trackbacks - 0, articles ...

  5. Java 三目运算符细节详解

    Java 三目运算符细节详解 @author:Jingdai @date:2020.09.24 看到标题你肯定觉得三目运算符有什么好讲的,不是很简单嘛.我之前也是这么认为的,直到今天刷LeetCode ...

  6. jvm之java内存区域详解篇guide哥yyds

    jvm 一.java内存区域详解 1.运行时数据区域 线程私有的: 虚拟机栈 本地方法栈 程序计数器 线程共享的: 堆 方法区 直接内存(非程序运行时数据区的一部分) 1.1什么是程序计数器 程序计数 ...

  7. Java内存溢出详解之Tomcat配置

    Java内存溢出详解 转自:http://elf8848.iteye.com/blog/378805 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError ...

  8. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  9. Java类加载机制详解【java面试题】

    Java类加载机制详解[java面试题] (1)问题分析: Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数 ...

最新文章

  1. 美团语音交互部招聘NLP/知识图谱/语音识别等算法职位(可实习)
  2. 【Web安全】提权—使用中国菜刀和iis6.exe在目标服务器创建Administrators用户
  3. Mono 2.4 and MonoDevelop 2.0 have been released
  4. NLP中的Mask全解
  5. 定制圆角带背景色的矩形边框
  6. MySql中有哪些存储引擎
  7. OpenShift 4 之 GitOps(4)用ArgoCD向Multi-Cluster发布应用
  8. 揭秘支撑双 11 买买买背后的硬核黑科技!
  9. Codevs 1506 传话
  10. 听音乐学英语之- I Need to Wake Up 奥斯卡获奖单曲:关注全球变暖
  11. Mac多功能文件搜索软件:HoudahSpot
  12. 三星Galaxy note I9220 系统廋身
  13. 软件测试流程五个阶段
  14. ipa在线安装搭建_免电脑 iOS 12 一键越狱+手机端直接自动安装插件教程
  15. 利用Openyxl为Excel批量插入表头行(Excel读写基础操作)——下
  16. CRM客户管理系统搭建
  17. 服务器xfs数据丢失的数据恢复过程_服务器数据恢复方案
  18. Go包管理工具Vendor使用教程
  19. 如何在scrapy框架里进行调试嘞
  20. TQFP 和LQFP 器件的焊接方法

热门文章

  1. 源码0604-12-掌握-webView
  2. html如何调节透明度,CSS 如何设置一个元素的透明度呢?
  3. gee申请注册失败不用怕 最全gee注册认证攻略
  4. web.xml常用元素配置
  5. 常见算法讲解及实例——二分搜索法
  6. 计算机入门初中教学视频,【初中计算机教学方法初探】初中信息技术计算机组成教学视频...
  7. 双11,中小商家玩不起
  8. Nginx如何配置禁止访问某个目录
  9. 『言善信』Fiddler工具 — 9、Inspectors(检查器)界面
  10. CSS引入样式的四种方法及优先级顺序