知识点:

1.基本数据类型包装类的定义:

2.数据的装箱与拆箱;

3.数据类型的转换;

具体内容:

1.认识包装类:

java最初设计的基本原则是:一切皆对象,一切的操作都要求用对象的形式进行描述。但是这会出现一个矛盾,即基本类型不是对象。那么为了符合原则,所以最初就是利用认为的方式来解决这种问题的。

代码:

package 面试题目;public class MyInt { //一个类private int num;   //这个类包装的基本数据类型//构造的目的是为了将基本数据类型传递给对象public MyInt(int num){  //将基本类型包装类this.num = num;}public int intValue(){   //将包装的数据内容返回return this.num;}}
package 面试题目;public class TestDemo {public static void main(String[] args) {MyInt mi = new MyInt(10);  //将Int包装为类int temp = mi.intValue();  //将数据中包装的内容取出System.out.println(temp*2);}}

以上的转变是比较容易实现了,java为了方便用户的使用,所以专门提供了一组包装类,来包装所有的基本类型。

基本类型的数据有:byte(Byte)、short(Short)、int(Integer)、long(Long)、float(Folat)、double(Double)、char(Character)、boolean(Boolean)。

包装类的两种类型:

对象型包装类(Object直接子类):Character、Boolean

数值型包装类(Number直接子类):Byte、Short、Integer、Float、Double、Long

Number是一个抽象类,里面一共定义了六个操作方法:intValue()、doubleValue()、floatValue()、byteValue()、shortValue()、longValue()

2.装箱与拆箱

现在已经存在有基本数据类型与包装类了,那么这两种变量之间的转换就通过一下方式定义:

  • 装箱操作:将基本数据类型变化为包装类的形式

每个包装类的构造方法都可以接收各自的类型的变量;

  • 拆箱操作:从包装类中取出被包装的数据;

利用Number类中提供的一系列的:xxxValue()方法完成;

范例:使用Int和Integer

package 面试题目;public class TestDemo {public static void main(String[] args) {Integer obj = new Integer(10); //将基本类型装箱int temp = obj.intValue();    //将基本类型拆箱System.out.println(temp*2);}}

之前编写的是MyInt类,现在换成了Integer这个系统类。

范例:使用double和Double

package 面试题目;public class TestDemo {public static void main(String[] args) {Double obj = new Double(10.2); //将基本类型装箱Double temp = obj.doubleValue();    //将基本类型拆箱System.out.println(temp*2);}}

范例:boolean和Boolean(不是Number子类)

package 面试题目;public class TestDemo {public static void main(String[] args) {Boolean obj = new Boolean(true); //将基本类型装箱Boolean temp = obj.booleanValue();    //将基本类型拆箱System.out.println(temp);}}

以上统一的操作是JDK1.5的。在jdk1.5以后提供了自动装箱与自动拆箱机制,并且可以直接利用包装类的对象进型数学计算。

范例:自动装箱与自动拆箱

package 面试题目;public class TestDemo {public static void main(String[] args) {Integer obj = 10;  //自动装箱int temp = obj;     //自动拆箱obj++ ;    //包装类直接进行数学计算System.out.println(temp*obj);}}

如果可以直接利用包装类进行计算,那么就省略勒手工的拆箱部分。

注意:Integer类对象身上发现可以直接赋予内容,也可以利用构造方法?

package 面试题目;public class TestDemo {public static void main(String[] args) {Integer obja = 10;  //直接赋值Integer objb = 10;Integer objc = new Integer(10);System.out.println(obja == objb); //trueSystem.out.println(obja == objc); //falseSystem.out.println(objb == objc); //falseSystem.out.println(objc.equals(obja)); //true}}

判断内容是否相同需要使用equals()方法。

提示:Object可以统一天下了

Object可以接受一切的引用数据类型,但是由于存在有自动装箱机制,那么Object也可以存放基本类型了。

流程:基本数据类型——>自动装箱(成为对象)——>向上转向为Object

package 面试题目;public class TestDemo {public static void main(String[] args) {Object obj = 10; //先包装再转换//Object不可能直接向下转向为intint temp =(Integer)obj; //向下转向为IntegerSystem.out.println(temp*2);}}

doubel

package 面试题目;public class TestDemo {public static void main(String[] args) {Double obj = 10.0;//这里直接写10会被认为是int,因此必须写10.0System.out.println(obj*2);}}

boolean

package 面试题目;public class TestDemo {public static void main(String[] args) {Boolean flag = true ; //自动装箱if(flag){ //直接拆箱判断System.out.println("hello world!");}}}

有了以上的自动装箱和拆箱支持之后,在数据类型的选择上就方便了许多。

3.数据类型转换(核心)

包装类使用最多的是其数据类型转换功能,里面有将String数据变为基本类型的方法。

Integer类:public static int parseInt(String s);

Double类:public static double parseDouble(String s);

Boolean类:public static boolean parseBoolean(String s);

特别注意的是Character类里面并不存在有字符为字符的方法,因为String类有一个charAt()的方法可以更具索引取出字符内容。

范例:将字符串变为int型数据

package 面试题目;public class TestDemo {public static void main(String[] args) {String str = "123";int temp = Integer.parseInt(str);System.out.println(temp*2);}
}

此时实现了字符串变为基本类型的操作,但是在这样的转换过程中请一点光要注意:转换成数字的字符串一定要由数字组成。

范例:错误代码

package 面试题目;public class TestDemo {public static void main(String[] args) {String str = "1a23";int temp = Integer.parseInt(str);System.out.println(temp*2);}
}

Exception in thread "main" java.lang.NumberFormatException: For input string: "1a23"

范例:观察Doubel转换

package 面试题目;public class TestDemo {public static void main(String[] args) {String str = "1.23";Double temp = Double.parseDouble(str);System.out.println(temp*2);}
}

没有小数点也可以转换。

范例:观察boolean转换

package 面试题目;public class TestDemo {public static void main(String[] args) {String str = "true";Boolean flag = Boolean.parseBoolean(str);if(flag){System.out.println("**满足条件!**");} else{System.out.println("**不满足条件!**");}}
}

如果进行转换的时候,boolean对象不是true或者false,那么统一进行false处理。

基本类型变为字符串:

两种做法:方式一:任何基本数据类型与字符串使用了"+"操作之后都表示变为字符串;

package 面试题目;public class TestDemo {public static void main(String[] args) {int num = 100;String str = num+"";System.out.println(str.replaceAll("0","6"));}
}

这样的操作虽然可以简单的完成,但是会存在有垃圾问题(" ")。

方式二:public static String valueOf(数据类型 变量);

package 面试题目;public class TestDemo {public static void main(String[] args) {int num = 100;String str = String.valueOf(num);System.out.println(str.replaceAll("0","6"));}
}

总结:1.jdk1.5之后才会提供自动装箱与拆箱操作。

2.字符串与基本类型的相互转换:

  • 字符串变为基本类型,依靠包装类的parseXxx()方法
  • 基本数据类型变为字符串,依靠String.valueOf(基本数据类型)   方法。

No7.基本数据类型的包装类相关推荐

  1. java基本数据类型自动转包装类_java基本数据类型和包装类相互转换

    把基本数据类型 → 包装类: 通过对应包装类的构造方法实现 除了Character外,其他包装类都可以传入一个字符串参数构建包装类对象. 包装类 → 基本数据类型 包装类的实例方法xxxValue() ...

  2. java基本数据类型和包装类相互转换

    把基本数据类型 → 包装类: 通过对应包装类的构造方法实现 除了Character外,其他包装类都可以传入一个字符串参数构建包装类对象. 包装类 → 基本数据类型 包装类的实例方法xxxValue() ...

  3. 基本数据类型、包装类、String三者之间的相互转换

    package com.wdl.day13;import org.junit.Test;/** 包装类的使用:* 1.java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征** ...

  4. 包装类转换基本数据类型与基本数据类型转换为包装类

    包装类转换基本数据类型 基本数据类型转换为包装类 新特性: 自动装箱(基本数据类型转换为包装类): 自动拆箱(包装类转换基本数据类型): 基本数据类型.包装类向String 的转换 方式1:连接运算 ...

  5. (JAVA)基本数据类型 对象包装类

    package com.book.lite;/*** @author zhangyu* @date 2021年08月15日 4:51 下午* 基本数据类型 对象包装类* 对八个基本数据类型,提供8个类 ...

  6. 第 1-2 课:你不知道的基础数据类型和包装类 + 面试题

    基本数据类型 Java 基础数据按类型可以分为四大类:布尔型.整数型.浮点型.字符型,这四大类包含 8 种基础数据类型. 布尔型:boolean 整数型:byte.short.int.long 浮点型 ...

  7. java泛型一定用包装类_你不知道的基本数据类型和包装类

    你不知道的基本数据类型和包装类 基本数据类型 Java 基本数据按类型可以分为四大类:布尔型.整数型.浮点型.字符型,这四大类包含 8 种基本数据类型.布尔型:boolean 整数型:byte.sho ...

  8. Java基本数据类型及其包装类

    Java基本数据类型及其包装类 正文开始@Assassin 目录 Java基本数据类型及其包装类 1. 基本类型包装类概述: 1.1 基本数据类型和包装类型的区别: 1.2 各包装类的一些基本的属性: ...

  9. java基本数据类型自动转包装类_Java基础教程之基本类型数据类型、包装类及自动拆装箱...

    前言 我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, L ...

最新文章

  1. C++/C++11中std::runtime_error的使用
  2. .NET中,字符串首字母大写的方法
  3. 用pv操作描述如下前驱图_LinkedList实现分析(二)——常用操作
  4. opencv (一) 学习通过OpenCV图形界面及基础
  5. Could not load TestContextBootstrapper [null]. Specify @BootstrapWith‘s ‘value‘ attribute...
  6. python语言实现reverse函数翻转字符串_python 实现字符串反转的几种方法
  7. 刚嘲讽过iPhone 12,三星就打算“抄”了:取消赠送充电头和耳机?
  8. 1.1.0-简介-P3-CAP 分布式 高可用
  9. linux经典脚本实例,Linux常用Shell脚本珍藏
  10. webpack使用优化(基本篇
  11. oracle查看表空间里具体一张表的大小
  12. 2019新版《龙果学院JavaEE秒杀系统企业级实战应用教程》
  13. 清空html输入框,jquery清空textarea等输入框
  14. 算法血拼:Google+百度+Alibaba+字节+Tencent+网易+360+拼夕夕
  15. win10老是弹出计算机管理器,win10系统Ie11老是弹出“管理加载项”提示框取消的处理办法...
  16. Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介、案例应用(python中的编码格式及常见编码问题详解)之详细攻略
  17. 计算机应用基础第三版练习题答案,计算机应用基础练习题答案
  18. 让字体变的更清晰CSS 中 -webkit-font-smoothing
  19. AURIX TC397 SCU 之 Watchdog 看门狗
  20. 1、Go爬虫(http、goquery和colly)

热门文章

  1. HDU1849 SG函数
  2. 【QImage类常用函数】
  3. 可以正常上网但ping 127.0.0.1或localhost出现请求超时的解决方法
  4. Oracle 常见错误代码处理 08102-32001
  5. CART分类回归树算法
  6. 通过宝塔面板部署.NET项目(安装环境=>前后端部署)
  7. 智能货架安全监测系统
  8. 2020微信的小动作整理:微信生态将进一步完善,也是电商进一步发展的机遇
  9. 5张图带你了解Pulsar的存储引擎BookKeeper
  10. win10、win7 脚本导证书到系统中