Object类和包装类的一些方法
一、instanceof关键字的使用:
a instanceof A:判断对象a是否是类A的实例。如果是,返回true;如果不是,返回false。
- 使用场景:为了避免在向下转型时出现ClassCastException的异常,我们在向下转型前,先进行instanceof的判断,一旦返回true,就进行向下转型。如果返回false,不进行向下转型。
- 如果a instanceof A返回true,则a instanceof B也返回true。其中类B是类A的父类。
二、equals()方法的使用:
1.是一个方法,而非运算符
2.只适用于引用数据类型
3.Object类中的equals()的定义:
public boolean equals(Object obj){
return (this == obj);
}
说明:Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同,即两个引用是否指向同一个地址。
4.像String、Date、File、包装类等都重写了object类中的equals()方法。重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的“实体内容”是否相同。
5.通常情况下,我们自定义的类如果使用equals()的话,也通常是比较两个对象的“实体内容”是否相同,所以我们也需要对object类中的equals()进行重写。
三、toString()的使用:
1.当我们输出一个对象的引用时,实际上就是调用当前对象的toString()
2.Object类中的toString()的定义:
public String toString(){
return getClass().getName()+"@"+Integer.toHexString(hashCode());
}
3.像String、Date、File、包装类等都重写了Object类中的toString()方法。使得在调用对象的toString()时,返回“实体内容”信息。
4.自定义类也可以重写toString()方法,当调用此方法时,返回对象的“实体内容”。
四、单元测试JUnit用法:
在Eclipce中步骤:
- 选中当前工程—>右键:build path——>add libraries——>JUnit4——>下一步
- 创建java类,进行单元测试,此时的java类要求:1.此类是public的。2.此类提供公共的无参的构造器。
- 此时的单元测试方法:权限是public,没有返回值,没有形参
- 此单元测试方法上需要声明注解:@Test,并在单元测试类中导入:import org.junit.Test;
- 声明好单元测试方法后,就可以在方法体内测试相关代码。
- 写完代码后,左键双击单元测试方法名,右键:run as——>JUnit Test
代码例子如下:
public class JUnitTest{
@Test
public void testthis(){//双击testthis执行
... //被测试的内容
}
}
五、包装类的使用:
- 针对八中基本数据类型定义相应的引用类型-包装类(封装类)
- 有了类的特点,就可以调用类中的方法,java才是真正的面向对象
1.java提供了8中基本数据类型对应的包装类,是的基本数据类型的变量具有类的特征。

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

3.自动装箱和自动拆箱:
自动装箱:基本数据类型——>包装类的对象
代码举例:
int num = 10;
Integer in = num;//自动装箱
Integer in = new Integer(num);//手动装箱
自动拆箱:包装类——>基本数据类型
代码举例:
int num1 = num;//自动装箱
4.基本数据类型、包装类——>String类型:调用String重载的valueOf(XXX xxx)或者直接+
举例子:
int num = 10;
String str = num + "";//直接+方式
String str2 = String.valueOf(num);//方法
5.String类型——>基本数据类型、包装类:调用包装类的parseXxx(String s)
举例子:
String str = "123";
int num = Integer.parseInt(str);//String转化为int
特别的:Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer【】,保存了从-128~127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在-128~128范围内时,可以直接使用数组中的元素,不再去new了。目的:提高效率。
代码举例说明:
public void test(){
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out,println(i == j);//false ,因为比较的是地址,new了就是地址不同了
Integer i = 1;
Integer j = 1;
System.out,println(i == j);//turn,因为是直接使用Integer中定义的数,地址一样
Integer i = 128;
Integer j = 128
System.out,println(i == j);//false,因为128超过了127,相当于重新new了,而不是用的方法定义的数,所有地址不同
Object类和包装类的一些方法的更多相关文章
- 面向对象高级——Object类、包装类以及匿名内部类
Object类 知识点:掌握Object类的作用.掌握Object类中toString().equal()方法的作用 ,掌握Object接收引用数据类型的操作. 假设一个类在定义时没有明白指明继承哪 ...
- Object类的equals()方法总结
1.equals()是Object中的方法,作用在于检测一个对象是否等于另一个对象. 2.在Object类中equals()方法是判断两个对象是否有相同的引用 ,即是否是相同的对象. 3.String ...
- 并发编程(六)Object类中线程相关的方法详解
一.notify() 作用:唤醒一个正在等待该线程的锁的线程 PS : 唤醒的线程不会立即执行,它会与其他线程一起,争夺资源 /** * Object类的notify()和notifyAll()方法详 ...
- Object类、包装类、内部类详解
1.Object类 1.概念: 1.1 所有类在创建时都默认继承了java.lang.Object 1.2 所有类对象都可以声明为类对象的引用 Object ob1=new String(); Obj ...
- (1)Object类 (2)包装类和数学处理类 (3)String类
1.Object类1.1 基本概念 java.lang.Object类是Java类层次结构的根类,任何类都是Object类的直接/间接子类. 1.2 常用的方法(重点) Object() - 无参构造 ...
- python 全栈开发,Day20(object类,继承与派生,super方法,钻石继承)
先来讲一个例子 老师有生日,怎么组合呢? class Birthday: # 生日 def __init__(self,year,month,day): self.year = year self.m ...
- 【代码笔记】Java常识性基础补充(三)——Java的API及Object类、正则表达式、getTime()方法、DateFormat类、Calendar类
1.0 Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 2.0 Java API就是JDK中提供给我们使用的类,这些类将底层 ...
- 关于object类的两个重要方法以及为什么重写equals一定要重写hashcode()
toString()----------------------输出对象的地址 重写后输出对象的值对象.equals(对象)---------------比较两个对象的内存地址 可以被重写,重写后比较 ...
- Object类中的五种方法
clone() Object类源码:protected native Object clone() throws CloneNotSupportedException; 这里有个问题:为什么Sun公司 ...
随机推荐
- 2018年最新 Java面试通关要点汇总集
基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自 ...
- source insight 保存时删除多余空格,去除多余空格 space tab键
source insight 保存时删除多余空格,去除多余空格 space tab键 摘自:https://blog.csdn.net/lanmanck/article/details/8638391 ...
- servlet介绍
1.首先说Servlet API:servlet的命名:server+applet Servlet的框架是由两个Java包组成的:javax.servlet与javax.servlet.http. 在 ...
- 02 Transcribing DNA into RNA
Problem An RNA string is a string formed from the alphabet containing 'A', 'C', 'G', and 'U'. Given ...
- bt协议详解 基础篇(上)
bt协议详解 基础篇(上) 最近开发了一个免费教程的网站,产生了仔细了解bt协议的想法,所以写了这一篇文章,后续还会写一些关于搜索和索引的东西,都是在开发这个网站的过程中学习到的技术,敬请期待. 1 ...
- 深入浅出Java多线程(2)-Swing中的EDT(事件分发线程) [转载]
本系列文章导航 深入浅出Java多线程(1)-方法 join 深入浅出Java多线程(2)-Swing中的EDT(事件分发线程) 深入浅出多线程(3)-Future异步模式以及在JDK1.5Concu ...
- Apache网站服务
Apache 下载地址: http://mirror.bit.edu.cn/apache/httpd/相关软件下载地址:http://mirror.bjtu.edu.cn/apache/apr/apr ...
- Linq to Entities基础之需要熟知14个linq关键字(from,where,select,group,let,on,by...)
1.Linq基础 <1> 关键词: from,in,group,by,where..... MSDN上总结的有14个关键词法... from xxxx in xxxx select =&g ...
- jQuery基础入门
一.什么是 jQuery Jquery它是javascript的一个轻量级框架,对javascript进行封装,它提供了很多方便的选择器.供你快速定位到需要操作的元素上面去.还提供了很多便捷的方法. ...
- VMware下拷过来的Linux系统ifconfig下没有网络问题
拷了同事的Linux系统,拷过来时还可以用,今天再打开发现找不到ip了,于是就在网上找解决方法,因本人从没接触过Linux所以查的挺多的但解决的方法试了好几个就是不行,后面找到的有效的解决方法有: L ...