Java全面细致讲解Wrapper的使用

作者:小老师ir 时间:2023-02-14 00:49:24 

一、概述

针对八种基本数据类型定义相应的引用类型—包装类(封装类)。

二、作用

有了类的特点,就可以调用类中的方法,Java才是真正的面向对象。

八种基本数据类型与其包装类的对应关系:

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter

三、使用

1. 基本数据类型-包装类的实例(装箱)

⭕ 通过包装类的构造器实现:

int i = 500;
Integer t = new Integer(i);

⭕ 通过字符串参数构造包装类对象:

Float f = new Float(“4.56”);
//Long l = new Long(“asdf”); 报错:NumberFormatException

⭕ 错误举例:

Integer in3 = new Integer("123abc");
System.out.println(in3.toString());
/*  
报错:
Exception in thread "main" java.lang.NumberFormatException: For input string: "123abc"
*/

2. 包装类-基本数据类型(拆箱)

⭕ 调用包装类的xxxValue()方法:

boolean b = bObj.booleanValue();

注意:JDK1.5之后,支持自动装箱,自动拆箱。但类型必须匹配

3. String-基本数据类型/包装类

⭕ 通过包装类的构造器实现:

int i = new Integer(“12”);

⭕ 通过包装类的parseXxx(String s)静态方法:

Float f = Float.parseFloat(“12.1”);

⭕ 错误举例:

int num1 = (int)str1;
Integer in1 = (Integer)str1;
//可能会报NumberFormatException

4. 基本数据类型/包装类-String

⭕ 调用字符串重载的valueOf()方法:

String fstr = String.valueOf(2.34f);

⭕ 更直接的方式:

String intStr = 5 + "";

5. 转换图

Java全面细致讲解Wrapper的使用

四、经典题目

//(1)
    Object o1 = true ? new Integer(1) : new Double(2.0);
    System.out.println(o1);//1.0
    Object o2;
       if (true)
           o2 = new Integer(1);
       else
           o2 = new Double(2.0);
       System.out.println(o2);//1
   }
//(2)
//java
       Integer i = new Integer(1);
       Integer j = new Integer(1);
       System.out.println(i == j);//false
       Integer m = 1;
       Integer n = 1;
       System.out.println(m == n);//true
       Integer x = 128;
       Integer y = 128;
       System.out.println(x == y);//false

来源:https://blog.csdn.net/weixin_52533007/article/details/124892342

标签:Java,Wrapper
0
投稿

猜你喜欢

  • C# 基础入门--常量

    2022-01-29 18:54:53
  • 浅谈Java三目运算

    2023-11-29 07:27:59
  • git版本回退_动力节点Java学院整理

    2022-06-21 13:26:10
  • java实现在性能测试中进行业务验证实例

    2022-10-15 09:50:11
  • Spring Security 图片验证码功能的实例代码

    2023-11-17 14:23:56
  • C#读取写入文件的3种方式示例代码

    2022-09-15 06:57:38
  • 详解Java token主流框架之JWT

    2022-03-30 19:30:34
  • 详解java一维数组及练习题实例

    2023-05-21 17:31:56
  • 详解kotlin中::双冒号的使用

    2022-09-04 10:17:23
  • Java 提取照片的EXIF信息批量重命名

    2023-10-05 14:11:28
  • Java多线程Thread基础学习

    2023-04-17 17:12:21
  • Hibernate中的多表查询及抓取策略

    2022-02-22 18:58:28
  • 解决grails服务端口冲突的办法(grails修改端口号)

    2023-09-12 01:00:03
  • Android PopupWindow实现遮罩层效果

    2022-02-04 13:28:46
  • SpringBoot+Swagger-ui自动生成API文档

    2023-06-19 07:38:34
  • springcloud-gateway集成knife4j的示例详解

    2023-11-29 08:56:44
  • 浅谈C#泛型的用处与特点

    2022-04-22 02:39:35
  • C#使用WebSocket实现聊天室功能

    2022-08-10 09:29:33
  • 使用idea+gradle编译spring5.x.x源码分析

    2022-05-13 15:13:31
  • java中的Io(input与output)操作总结(四)

    2021-10-11 03:14:19
  • asp之家 软件编程 m.aspxhome.com