Java全面细致讲解Wrapper的使用

目录
  • 一、概述
  • 二、作用
  • 三、使用
    • 1. 基本数据类型-包装类的实例(装箱)
    • 2. 包装类-基本数据类型(拆箱)
    • 3. String-基本数据类型/包装类
    • 4. 基本数据类型/包装类-String
    • 5. 转换图
  • 四、经典题目

一、概述

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

二、作用

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

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

基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

三、使用

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. 转换图

四、经典题目

//(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

到此这篇关于Java全面细致讲解Wrapper的使用的文章就介绍到这了,更多相关Java Wrapper内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java Wrapper类基本用法详解

    在封装中有一种特殊的类,能够把基本的数据类型进行转换来方便实际的使用.我们在之前提到的一些数据类型,最明显的特征是所有字母为小写状态,那么经过Wrapper的包装后,首字母就变成了大写.下面我们就这种特殊的封装类Wrapper的概念.转换图解.模式以及实例带来分享. 1.概念 wrapper类是在Java中创建对象引用类型的原始类型的方式.我们可以说,通过提供wrapper类,使Java在面向对象技术的本质上摆脱了困境,即使是原类型没有被保存. 2.转换图解 该类主要用于基本数据类型和字符串之间

  • Java全面细致讲解Wrapper的使用

    目录 一.概述 二.作用 三.使用 1. 基本数据类型-包装类的实例(装箱) 2. 包装类-基本数据类型(拆箱) 3. String-基本数据类型/包装类 4. 基本数据类型/包装类-String 5. 转换图 四.经典题目 一.概述 针对八种基本数据类型定义相应的引用类型—包装类(封装类). 二.作用 有了类的特点,就可以调用类中的方法,Java才是真正的面向对象. 八种基本数据类型与其包装类的对应关系: 基本数据类型 包装类 byte Byte short Short int Integer

  • Java全面细致讲解类与对象

    目录 类和对象的关系 类和对象的实例化 static关键字 private实现的封装 构造方法 this关键字 代码块 匿名对象 小结 类和对象的关系 类就是一类对象的统称.对象就是这一类具体化的一个实例. (对象是类的实例化) 对象是什么? 此对象非彼对象!!!说到对象就要提到过程. 面向过程:C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题.面向过程注重的是过程,在整个过程中所涉及的行为,就是功能. 面向对象:JAVA是基于面向对象的,关注的是对象,将一件事情

  • Java全面细致讲解final的使用

    目录 一.理解 二.作用 1. 修饰-类 2. 修饰-方法 3. 修饰-变量 3.1 修饰-成员变量(属性) 3.2 修饰-局部变量 三.经典题目 一.理解 final:最终的 二.作用 final 可以用来修饰的结构:类.方法.变量 1. 修饰-类 final 用来修饰一个类,表示此类不能被其它类所继承,提高安全性,提高程序的可读性. 比如:String类.System类.StringBuffer类… 代码演示: final class A{}class B extends A{ //错误,不

  • Java全面细致讲解==和equals的使用

    目录 equals与== 1. ==的使用 1.1 概述 1.2 代码演示 2. equals的使用 2.1 概述 2.2 代码演示 3. ==和equals的区别 3.1 概述 3.2 代码演示 上篇博文:Java-多线程的使用 equals与== 1. ==的使用 1.1 概述 用于基本类型比较值时:只要两个变量的值相等,即为true. 用于引用类型比较引用(是否指向同一个对象)时,比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体,只有指向同一个对象时,==才返回true. 用

  • Java全面细致讲解Cookie与Session及kaptcha验证码的使用

    目录 Cookie 1. 概念 2. 创建Cookie 3. 服务器获取Cookie 4. Cookie的修改 5. Cookie的生命控制 6. Cookie的有效路径Path 7. Cookie应用-免用户名密码登录 Session 1. 概念 2. 创建和获取Session 3. Session域数据的存取 4. Session的生命周期的控制 5. 浏览器和Session的关联 kaptcha验证码 1. 使用 2. 验证码的切换 Cookie 1. 概念 是服务器通知客户端保存键值对的

  • Java 多线程实例讲解(一)

    Java多线程(一) 多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点.掌握了上图中的各知识点,Java中的多线程也就基本上掌握了.主要包括: Java线程具有五中基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程对象的

  • Java代理深入讲解之静态代理

    什么是代理 代理就是给目标对象一个代理对象,并由代理对象控制目标的引用. 为什么要使用代理模式 1.通过引入代理对象的方式,可以间接的访问目标对象,避免直接访问目标对象给系统带来不必要的复杂性. 2.通过代理对象可以对原有的业务进行业务增强处理. 举例:如果我们需要买国外的某一件商品A,这个时候我们一般有两个途径要么直接去国外买,要么可以找一些代购人员帮我们去购买.在这种情况下,我们由于直接去国外买,实在是太耗软妹币,而且还要花时间等等,这个时候我们最优的选择就是找代购购买,这样也帮我们省去了很

  • java中断机制实例讲解

    一.导言 线程A对线程B发出建议: 你好,可以停止了哟~ 在实际生产环境中,对于阻塞任务,可能存在一些情况导致阻塞任务取消.终止,例如: 计时器到期,I/O 完成,或者另一个线程的动作(释放一个锁,设置一个标志,或者将一个任务放在一个工作队列中).这种情况下可以使用java的中断机制来进行线程间通信. java线程中断的实现是基于一个称为中断状态的内部标志位来实现的,其中断的含义更像是建议,一个线程如何响应另一个线程的中断完全取决于程序员: 继续向上抛出.封装后抛出.中断状态复原.忽略等.jav

  • Java RMI机制讲解

    Java RMI Java RMI之HelloWorld篇 Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法.可以用此方法调用的任何对象必须实现该远程接口. Java RMI不是什么新技术(在Java1.1的时代都有了),但却是是非常重要的底层技术. 大名鼎鼎的EJB都是建立在rmi基础之上的,现在还有一些开源的远程调用组件,其底层技术也是rmi. 在大力鼓

  • java volatile案例讲解

    本篇来自java并发编程实战关于volatile的总结. 要说volatile,先得明白内存可见性.那我们就从内存可见性说起. 一.内存可见性 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉.在单线程环境中,如果向某个变量先写入值,然后在没有其他写入操作的情况下读取这个变量,那么总能得到相同的值.这看起来很自然.然而,当读操作和写操作在不同的线程中执行时,情况却并非如此,这听起来或许有些难以接受.通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能

随机推荐