网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

JAVA的REMOVE重载方法有哪些

本篇内容主要讲解“JAVA的REMOVE重载方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA的REMOVE重载方法有哪些”吧!

站在用户的角度思考问题,与客户深入沟通,找到凤冈网站设计与凤冈网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖凤冈地区。

测试类设计

测试类一

public class Text { public void remove(int index){  System.out.println("调用传参为int的remove方法"); } public void remove(Integer object){  System.out.println("调用传参为Integer的remove方法"); } public void remove(Object object){  System.out.println("调用传参为Object的remove方法"); }}

测试类二

public class Text {  public void remove(Integer object){  System.out.println("调用传参为Integer的remove方法"); } public void remove(Object object){  System.out.println("调用传参为Object的remove方法"); }}

测试类三

public class Text { public void remove(Object object){  System.out.println("调用传参为Object的remove方法"); }}

结果

三个测试类分别传入int,Integer,Object型变量,观察效果。

测试类一

传入类型为int:调用传参为int的remove方法  传入类型为Integer:调用传参为Integer的remove方法  传入类型为Object:调用传参为Object的remove方法

测试类二

传入类型为int:调用传参为Integer的remove方法  传入类型为Integer:调用传参为Integer的remove方法  传入类型为Object:调用传参为Object的remove方法

测试类三

传入类型为int:调用传参为Object的remove方法  传入类型为Integer:调用传参为Object的remove方法  传入类型为Object:调用传参为Object的remove方法

从输出结果可以看出,当方法的传参的类层级逐渐变高时,层级较低的传参会进行向上转型适应传参的需要。

原因分析

下面我们先反编译各测试类的源码,结果如下

测试类一

invokevirtual #11 // Method remove:(I)V

invokevirtual #15 // Method remove:(Ljava/lang/Integer;)V

invokevirtual #18 // Method remove:(Ljava/lang/Object;)V

测试类二

invokevirtual #11 // Method remove:(Ljava/lang/Integer;)V

invokevirtual #11 // Method remove:(Ljava/lang/Integer;)V

invokevirtual #17 // Method remove:(Ljava/lang/Object;)V

测试类三

invokevirtual #10 // Method remove:(Ljava/lang/Object;)V

invokevirtual #10 // Method remove:(Ljava/lang/Object;)V

invokevirtual #10 // Method remove:(Ljava/lang/Object;)V

可以看出,反编译代码中都是调用实例方法的命令,所以结果中自动"向上转型"其实是jvm的功劳。jvm通过在编译时确定调用的传参类型,静态分派到具体方法的。

所以在前言中的困惑已经解除了,就是由于jvm中静态分派的实现,调用次序是int->Integer->Object。

到此,相信大家对“JAVA的REMOVE重载方法有哪些”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


当前标题:JAVA的REMOVE重载方法有哪些
文章起源:http://bjjierui.cn/article/jscijj.html

其他资讯