java Wrapper包装类
Object类
java.lang.Object类 . Object 类是所有java类的根父类
. 如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 . Object类中的功能(方法与属性)具有通用性 属性: 无
方法: equals() toString() getClass().....
包装类
什么是包装类?为什么需要包装类? 这是大家要了解的
对于java中的基本数据类型我们如果想要把当当做类来使用怎么办呢? 如果想要对这些基本数据类型直接调用一些方法来操作的话 怎么做呢?
由以上就产生了Wrapper包装类(这在python中叫装饰器)
包装类作用:
java提供了8种基本数据类型的对应的包装类, 使得基本数据类型的变量有了类的特征
掌握:基本数据类型
1: 是针对八种基本数据类型定义的相应的引用数据类型---包装类(封装类)
2: 有了类的特征就可以调用类的方法
3: 我们希望java的基本数据类型也有java面向对象的特殊所以定义了 包装类 把基本数据类型的特殊都封装在对应的类中
基本数据---->Wrapper
基本数据类型转化为包装类:调用包装类的构造器
// 基本数据转化为Wrapper : 直接调用包装类的构造器即可
public void testOne() {
int num1 = 10;
Integer integer = new Integer(num1);
System.out.println("基本数据转化为包装类的结果:" + integer); Float f = new Float(3.5);
System.out.println(f);
}
Wrapper ---> 基本数据
Wrapper 转化为基本数据类型: 调用Wrapper包装类的 XXValue()方法
//Wrapper 转化为 基本数据 : 直接调用XXValue() 方法
public void WrapperToBasic() {
Integer integer = new Integer(34);
int num = integer.intValue();
System.out.println("Wrapper--->基本数据:"+num); Float f = new Float(4.6f);
float fl = f.floatValue();
System.out.println("Float ----> 基本数据类型:"+fl);
}
基本数据,Wrapper----> String
基本数据和包装类转化为String : 调用String重载的valueOf()方法
//基本数据,Wrapper ---> String : 基本数据和包装类转化为String 直接调用String的valueOf()方法
public void basicWrapperToString() {
//方法一直接转化
int num = 10;
System.out.println("这是num" + num); //直接加减 //方法二调用String的valueOf()
int num1 = 20;
String strNum1 = String.valueOf(num1);
System.out.println("基本数据转化为String:"+strNum1); Integer integer = new Integer(35);
String strInteger = String.valueOf(integer); }
String ---> 基本数据类型,Wrapper
String 转化为基本数据类型和包装类 需要调用包装类的parseXX()方法
//String ---> 基本数据,Wrapper : 调用包装类的paseXX
public void StringToBsicsWrapper() {
String str = "123"; //必须是转化的对应类型的字符, 转为int那么久必须是字符串类型的int
Integer integerStr = Integer.parseInt(str);
System.out.println(integerStr);
}
错误的
public void StringToBsicsWrapper() {
String str = "老王";
Integer integerStr = Integer.parseInt(str); //这样是错误的 因为你要转化为int那么String就要是字符串类型的int "123"
System.out.println(integerStr);
}
装箱子:
//装箱子: 转化为String
//需要先把对应的信息转化为包装类 有了类的特征就可以调用类的方法了
public void pack(){
int num = ;
Integer integer = new Integer(num);
String str = integer.toString();
System.out.println("pack:"+str); }
转化 | 方法 | 演示 |
基本数据转为Wrapper | 直接调用Wrapper的构造器 | Integer in= new Integer(30); |
Wrapper--->基本数据类型 | 调用包装类的XXXValue()方法 |
Integer integer = new Integer(34); |
基本数据,Wrapper--->String | 调用String的valueOf()方法 |
int num1 = 20; |
String----->基本数据,Wrapper | 调用包装类的paseXX()方法 |
String str = "123"; |
习题:
如下两个题目输出结果相同吗?各是什么:
1:
Object o1 = true ? new Integer() : new Double(2.0);
System.out.println(o1);//
2:
public void test() {
Object o2;
if (true)
o2 = new Integer();
else
o2 = new Double(2.0);
System.out.println(o2);//
}
3:
public void method1() {
Integer i = new Integer();
Integer j = new Integer();
System.out.println(i == j);
Integer m = ;
Integer n = ;
System.out.println(m == n);
Integer x = ;
Integer y = ;
System.out.println(x == y);
}
解答:
习题1: 答案是:1.0 因为 // 因为在编译的时候int 和dubbo会自动对类型提升为dubbo的 所以结果是1.0
习题2: 答案: 因为没有进行对比只是赋值
习题3: a: //false == 比引用地址 是否同一个对象 不是的
b://true
c:// false 因为Internet会把使用频繁的数字存到自己的地址值中 方便我们来调用避免重复调用,-128 ---- 127 这个范围内的 都是调用integer中的保存的都是同一个地址值 超过这个范围就不是同一个自地址值就是新建的了
3:知识点:
Integer内部定义了IntegerCache的结构 IntegerCache中定义了Integer[],
保存了从- --- 127范围的整数,如果我们使用自动装箱的方式给Inte赋值的范围在
- -- 的范围内时候就可以直接使用数组中的元素 不用去new了
.
java Wrapper包装类的更多相关文章
- 浅谈Java的包装类
一.什么是Java包装类 所谓Java包装类,就是将Java中的8种基本数据类型分别包装成为类的形式.包装类与基本数据类型的对应关系如下表所示. 基本数据类型 包装类 byte Byte short ...
- Java开发知识之Java的包装类
Java开发知识之Java的包装类 一丶什么是包装类 包装类的意思就是对基本数据类型封装成一个类.这些类都是Number的子类.区别就是封装数据类型不同.包含的方法基本相同. 具体可以查询JAVA A ...
- [java初探09]__关于java的包装类
前言 在Java语言的学习过程中,我们逐渐的理解了Java面向对象的思想,与类和对象的应用.但是在基本数据类型的使用上,我们无法将其定义为一个对象,通过使用对象的方法来使用它们,但是Java语言的思想 ...
- Java学习——包装类
Java学习——包装类 摘要:本文主要介绍了Java中常用的包装类和基本类型之间的转换,包装类或基本类型和String之间的转换. 部分内容来自以下博客: https://www.cnblogs.co ...
- 小白学Java:包装类
目录 小白学Java:包装类 包装类的继承关系 创建包装类实例 自动装箱与拆箱 自动装箱 自动拆箱 包装类型的比较 "=="比较 equals比较 自动装箱与拆箱引发的弊端 自动装 ...
- Java:包装类小记
Java:包装类 对 Java 中的 包装类 这个概念,做一个微不足道的小小小小记 基本数据&包装类 四类八种基本数据类型: 数据类型 关键字 内存占用 取值范围 字节型 byte 1个字节 ...
- Java api 入门教程 之 JAVA的包装类
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数 ...
- JAVA的包装类 【转】
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数 ...
- java的包装类(转)
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数 ...
随机推荐
- Asp.Net Core 第05局:读取配置
前言 本文介绍Asp.Net Core 读取配置文件. 环境 1.Visual Studio 2017 2.Asp.Net Core 2.2 开局 前期准备 1.添加app.j ...
- (appium+python)UI自动化_01_自动化环境搭建【MAC版】
Appium简介 Appium是一个开源的.跨平台的测试框架,主要用来进行app UI自动化,适用于原生应用.混合应用和移动网页应用(H5页面).目前支持Python.JavaScript.Objec ...
- GET和POST的数据传递到底有何区别?
1. GET和POST与数据如何传递没有关系 GET和POST是由HTTP协议定义的.在HTTP协议中,Method和Data(URL, Body, Header)是正交的两个概念,也就是说,使用哪个 ...
- C语言|博客作业12
一.我学到的内容(整理本课程所学,[用思维导图的方式] 二.我的收获(包括我完成的所有作业的链接+收获)不能只有作业链接,没有收获 作业链接 收获 https://edu.cnblogs.com/ca ...
- spring, spring mvc, mybatis整合文件配置详解
转自:http://www.cnblogs.com/wxisme/p/4924561.html 使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用 ...
- luoguP1084 疫情控制(题解)(搜索+贪心)
luoguP1084 疫情控制 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include& ...
- 公司redis
一: redis cluster介绍篇 1:redis cluster的现状 目前redis支持的cluster特性(已亲测): 1):节点自动发现 2):slave->master 选举,集群 ...
- redis集群搭建(简单简单)一台机器多redis
redis集群搭建 在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件: 进入到解压缩后的redis文件目录(此时可以看到Makef ...
- ReactOS 无法显示中文的问题
其实非常简单, 实际上是因为包里面没有中文字体,所以输出文字都是乱码, 去 https://svn.reactos.org/optional/ 这里,下载ttf字体文件, 把字体文件放到源码中 mod ...
- hdu 5435 A serious math problem
A serious math problem Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...