- 浏览: 1681102 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (335)
- uml (11)
- java (318)
- python (11)
- socket (2)
- ant (1)
- data structures (58)
- algorithms (67)
- concurrency (16)
- multithreading (16)
- mysql (2)
- ubuntu (2)
- c语言 (1)
- lucene (0)
- elasticsearch (0)
- django (1)
- 读书 观点 (2)
- 读书 (4)
- 观点 (4)
- collections (8)
- nio (1)
- io (2)
- 系统集成 (1)
- activemq (2)
- restful (0)
- web service (0)
- HttpClient (1)
- serializable (0)
- annotation (1)
- jdbc (3)
- classloader (0)
- regular expression (1)
- jpa (4)
- jvm (0)
- reflection (1)
- commons-pool2 (2)
- javamail (1)
- velocity (1)
- mathematics (3)
- graph (13)
- LeetCode (159)
- scala (0)
- spring (24)
- maven (5)
- spring batch (1)
- quartz (2)
- IOC (2)
- ORM (3)
- hibernate (2)
- aop (4)
- redis (0)
- zookeeper (0)
- spring mvc (4)
- ELK (1)
- string (1)
- gradle (1)
- mybatis (5)
- docker (0)
- servlet (0)
- log4j2 (1)
- html (0)
- css (0)
最新评论
-
nucleus:
貌似是因为图片的路径是http的缘故:http://dl2.i ...
spring container 实现分析:BeanWrapper -
nucleus:
nucleus 写道BeanWrapper这一块相关的类结构如 ...
spring container 实现分析:BeanWrapper -
nucleus:
BeanWrapper这一块相关的类结构如下图:文中提到的上述 ...
spring container 实现分析:BeanWrapper -
leshy:
inventory.sort(Comparator.compa ...
java8 lambda表达式学习总结 -
Leisurez:
di1984HIT 写道xuexile~hahaha~
activemq的几种基本通信方式总结
不废话,先上代码:
ArrayList<Integer> col = new ArrayList<Integer>(); System.out.println("Initial size: " + col.size()); for(int i = 0; i < 20; i++) col.add(i + 10);
显然,上面这段代码再简单不过了,建立一个Interger类型参数的ArrayList.
于是考虑到要从ArrayList删除两个元素,比如10, 25。初步设想的代码如下:
col.remove(10); col.remove(25);
基于这种设想的原因是,既然ArrayList<Integer>里的类型是Integer,我传入一个int的应该可以自动实现autoboxing.那么,如果和设想的一样,col中的10和25两个元素都被删除了。
实际运行的结果不然:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 25, Size: 20
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.remove(ArrayList.java:445)
at CollectionBasics.main(CollectionBasics.java:54)
从错误中间可以看到,提示的是访问数组索引越界了。怎么会这样呢?很显然,传入的10,25被当成索引而不是要移除的元素。
察看java doc里面才发现,里面有两个remove方法,分别定义如下:
public E remove(int index); public boolean remove(Object o);
当我们传入int类型的时候,会自动被当成上面那个方法来调用。而下面那个移除某个特定元素的方法是需要传入一个Object对象。所以,为了移除制定的元素而不至于引起混淆的话,可以将传入的int先封装一下:
col.remove((Integer)10); col.remove((Integer)25);这样结果就对了。
评论
5 楼
793059909
2014-07-08
frank-liu 写道
793059909 写道
重载有优先级?
837062099 写道
重载方法中,调用优先级最高的是最精确的方法。
这样的重载,确实很容易是调用者发生错误,以前我自己写的这样的方法,找了好久才发现这个错误。
这样的重载,确实很容易是调用者发生错误,以前我自己写的这样的方法,找了好久才发现这个错误。
因为在这里remove方法接收的参数是remove(Integer item),就是说如果我们传进来的参数是Integer类型的,那么就会调用这个删除指定元素的方法。而还有一个remove(int item)这个方法接收的参数是int类型的,和它最匹配的是一个int参数。在前面的代码里我们传进来的参数就是直接的一个int,所以和它最匹配的那个就是删除指定索引的那个。
package overload.special; public class OverLoadTest { public void test(Object obj){ System.out.println("Object:"+obj); } public void test(Integer integer){ System.out.println("Integer:"+integer); } public void test(int int1){ System.out.println("int:"+int1); } public void test(String str){ System.out.println("String:"+str); } public static void main(String[] args) { OverLoadTest ot=new OverLoadTest(); ot.test(1); ot.test("1"); } }
输出:
int:1
String:1
===》
优先级:
基本类型>对象
对象中 子类>父类,其中Object类的优先级最低
4 楼
frank-liu
2014-07-04
793059909 写道
重载有优先级?
837062099 写道
重载方法中,调用优先级最高的是最精确的方法。
这样的重载,确实很容易是调用者发生错误,以前我自己写的这样的方法,找了好久才发现这个错误。
这样的重载,确实很容易是调用者发生错误,以前我自己写的这样的方法,找了好久才发现这个错误。
因为在这里remove方法接收的参数是remove(Integer item),就是说如果我们传进来的参数是Integer类型的,那么就会调用这个删除指定元素的方法。而还有一个remove(int item)这个方法接收的参数是int类型的,和它最匹配的是一个int参数。在前面的代码里我们传进来的参数就是直接的一个int,所以和它最匹配的那个就是删除指定索引的那个。
3 楼
793059909
2014-07-04
重载有优先级?
837062099 写道
重载方法中,调用优先级最高的是最精确的方法。
这样的重载,确实很容易是调用者发生错误,以前我自己写的这样的方法,找了好久才发现这个错误。
这样的重载,确实很容易是调用者发生错误,以前我自己写的这样的方法,找了好久才发现这个错误。
2 楼
lizhensan
2012-03-10
void method(int a)
void method(Integer a)
这两个方法是重装的方法,调用时不一样的。
void method(Integer a)
这两个方法是重装的方法,调用时不一样的。
1 楼
837062099
2012-03-09
重载方法中,调用优先级最高的是最精确的方法。
这样的重载,确实很容易是调用者发生错误,以前我自己写的这样的方法,找了好久才发现这个错误。
这样的重载,确实很容易是调用者发生错误,以前我自己写的这样的方法,找了好久才发现这个错误。
发表评论
-
spring源代码分析:aop的实现
2018-10-03 23:32 735简介 在之前的文章里我们讨论过一些程序构建Pro ... -
java annotation基础
2018-06-30 16:41 882简介 之前有一篇简短的文章讨论过annotati ... -
spring源代码分析:annotation支持的实现
2018-09-03 23:31 2546简介 在之前的文章里,我们讨论了spring I ... -
spring container 实现分析:BeanFactory and ApplicationContext
2018-06-02 18:29 1465简介 在之前的文章里,我们讨论过作为spring ... -
spring aop: ProxyFactory
2018-04-30 16:45 837简介 在之前的文 ... -
日志与log4j2的配置和应用总结
2018-02-15 15:47 12310简介 通常我们在日常的应用开发中,日志起到一个非 ... -
Java servlet学习总结
2018-01-02 21:14 0简介 应用系统架构的演化(从CS到BS) ... -
spring container 实现分析:BeanWrapper
2018-02-19 18:10 1980简介 在之前的一篇文章里, 我们基于《Exper ... -
spring propertyeditor
2017-10-26 09:17 0pro spring 5 chapter 4, page ... -
spring bean life cycle
2018-02-25 13:30 923简介 在使用spring bean的过程中,有一个 ... -
spring container的设计与实现分析
2017-10-08 21:31 2766简介 在之前的一 ... -
jdbc数据访问的封装和演化
2017-09-16 17:00 2688简介 在使用传统jdbc的方式来访问数据的时候, ... -
Boyer Moore算法分析总结
2017-03-31 18:42 3551简介 在之前的文章里,对于字符串的搜索算法,我曾 ... -
mybatis学习总结:mybatis和spring, spring boot的集成
2017-03-04 18:07 2508简介 在前面的讨论里已经提到了mybatis的各种配置 ... -
mybatis学习总结:annotation与xml结合示例
2017-02-25 21:09 3699简介 在之前的文章里讨论过mybatis纯xml或者 ... -
mybatis学习总结:对象关系映射的xml配置实现
2017-02-19 23:03 4064简介 在之前的文章里已经讨论过mybatis的基本配 ... -
mybatis学习总结:annotation示例改进
2017-01-24 09:06 3436简介 在前一篇文 ... -
mybatis学习总结:基础示例
2017-01-21 23:30 895简介 mybatis是一个比较流行的ORM框架, ... -
gradle学习总结
2016-12-18 21:01 4625简介 Java的自动化构建工具比较多,从最开始的an ... -
String sort的几种方法
2016-10-16 23:07 2183简介 在之前的一 ...
相关推荐
关于组织参加“第八届‘泰迪杯’数据挖掘挑战赛”的通知-4页
PyMySQL-1.1.0rc1.tar.gz
技术资料分享CC2530中文数据手册完全版非常好的技术资料.zip
docker构建php开发环境
VB程序实例,可供参考学习使用,希望对你有所帮助
pytz库的主要功能 时区转换:pytz库允许用户将时间从一个时区转换到另一个时区,这对于处理跨国业务或需要处理多地时间的数据分析尤为重要。 历史时区数据支持:pytz库不仅提供了当前的时区数据,还包含了历史上不同时期的时区信息,这使得它在处理历史数据时具有无与伦比的优势。 夏令时处理:pytz库能够自动处理夏令时的变化,当获取某个时区的时间时,它会自动考虑是否处于夏令时期间。 与datetime模块集成:pytz库可以与Python标准库中的datetime模块一起使用,以确保在涉及不同时区的场景中时间的准确性。
VB程序实例-为程序添加快捷键.zip
画2、3维的隐含数
pytz库的主要功能 时区转换:pytz库允许用户将时间从一个时区转换到另一个时区,这对于处理跨国业务或需要处理多地时间的数据分析尤为重要。 历史时区数据支持:pytz库不仅提供了当前的时区数据,还包含了历史上不同时期的时区信息,这使得它在处理历史数据时具有无与伦比的优势。 夏令时处理:pytz库能够自动处理夏令时的变化,当获取某个时区的时间时,它会自动考虑是否处于夏令时期间。 与datetime模块集成:pytz库可以与Python标准库中的datetime模块一起使用,以确保在涉及不同时区的场景中时间的准确性。
加载虚拟光驱并打开ma软件.
VB程序实例-图像的缩小.zip
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
推荐几个国外 Java 大佬的优质博客.docx
Arduino一分钟快速在vs code 编译开发Arduino
强网杯objective-c可视化演示5中的常见排序算法,包括选择排序、气泡排序、插入排序、快速排序、堆排序等.zip
VB程序实例,可供参考学习使用,希望对你有所帮助
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
强网杯
技术资料分享AT070TN92非常好的技术资料.zip