0 0

关于一个java基础问题的困惑10

public class App{
     static void f(int i) {
          System.out.println("first");
     }

     static void f(char... args) {
          System.out.println("second");
     }

     public static void main(String[] args) {
          f('a');
     }
}


把入参的三个点去掉,为啥结果就不一样?
编译器对于可变参的重载规则又是怎样?
求指点!
2013年5月14日 10:54

3个答案 按时间排序 按投票排序

0 0

带有可变参数的函数重载,首先找能直接匹配的,找不到的话找能转型的,转型不成找可变参数的,实在没有就把报错

2013年5月14日 11:50
0 0

参数中char...代表的是char[]数组,你穿‘a’进去他肯定是不会调用这个方法了,又因为‘a’可以自动转为整形,所以会调方法一。如果是去掉三个点,代表的是char类型的参数,直接就匹配到了,所以调的是方法二

2013年5月14日 11:49
0 0

构造函数发生了变化,三个小数点代表是数组形式。去掉就是符合了char的函数重载。

2013年5月14日 11:45

相关推荐

    Java基础以及提高教程

    教程中强调建立一个知识结构的重要性,这有助于深化对语言的理解,并在遇到困难时能找到解决问题的线索。作者Bruce Eckel在教授编程语言方面有着丰富的经验,他注意到传统的授课方式可能会让一些学生感到困惑。因此...

    java基础教程(java SE)

    总之,“Java基础教程(Java SE)”是一个全面的初级入门资料,无论你是0基础还是有一定编程经验,都能从中受益。通过系统学习,你将能够熟练掌握Java编程,为进一步学习Java EE、Android开发或其他基于Java的技术...

    Java基础课件和作业合集(有答案)+一个小型资产管理项目

    我们为你准备了一个小型资产管理项目。这个项目将让你在实际开发中,应用所学知识,实现功能完备的资产管理系统。通过这个项目,你将深刻体会到Java编程的魅力和实用性。 三、双重身份,满足多重需求 无论你是刚...

    关于Java开发的五百个常见问题

    "关于Java开发的五百个常见问题"这个资源可能是对这些问题的集中解答,旨在帮助开发者提升技能,解决问题。虽然没有具体的标签来指示内容的分类,但我们可以根据Java开发的普遍问题类型进行讨论。 1. **基础语法**...

    JAVA基础易错总结(50%你不知道)

    正确地使用try-catch-finally结构,以及理解checked和unchecked异常的区别,是每个Java开发者必备的技能。 再者,内存管理也是Java初学者容易困惑的地方。Java通过垃圾回收机制自动管理内存,但这并不意味着开发者...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    第1章 让自己的第一个Java程序跑起来 2 教学视频:19分钟 1.1 想要用Java改变这个世界吗? 2 1.1.1 Java有什么优势? 2 1.1.2 Java在哪儿? 3 1.2 准备好开始Java之旅 3 1.2.1 下载JDK 4 1.2.2 安装JDK 5 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    第1章 让自己的第一个Java程序跑起来 2 教学视频:19分钟 1.1 想要用Java改变这个世界吗? 2 1.1.1 Java有什么优势? 2 1.1.2 Java在哪儿? 3 1.2 准备好开始Java之旅 3 1.2.1 下载JDK 4 1.2.2 安装JDK 5 ...

    JAVA 解惑 java经典

    以上知识点是Java编程中不可或缺的部分,"JAVA解惑.pdf"很可能详细讲解了这些内容,为读者提供了一条清晰的学习路径,以解答他们在学习过程中遇到的困惑。通过深入学习这些内容,开发者可以提升自己的Java技能,更好...

    java面试题解析困惑之一

    在Java面试中,理解这三个概念的区别是非常基础且重要的。 首先,`final`是一个修饰符,它有以下几个用途: 1. **定义变量**:无论是静态还是非静态的变量,一旦被`final`修饰,该变量的值就不能被修改。对于基本...

    java 基础

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和强大的库支持而闻名。"Java基础"是每个想要踏入..."Java经典问答"是一个很好的辅助资源,它可以帮助你在遇到困惑时找到答案,同时也能检验你的学习成果。

    java与模式

    该部分内容提到了一个Java学习群,这可能是一个提供学习支持和资源分享的在线社群。对于Java初学者来说,加入这样的社群可以带来以下好处: - 与有经验的工程师互动,快速获得学习上的帮助和指导。 - 获取免费的...

    Java编程思想让很多新手止步不前,困惑已久的问题由此解开

    接下来,异常处理是Java中不容忽视的一个部分。Java使用try-catch-finally结构来捕获和处理程序运行时可能出现的错误,这对于编写健壮的代码至关重要。理解何时抛出异常,如何妥善处理它们,可以避免程序意外终止,...

    java语言程序设计(基础与进阶篇)答案

    在编程题部分,可能会有各种实际问题的实现,例如设计一个简单的计算器,构建一个学生管理系统,或者实现一个简单的游戏。这些问题旨在锻炼学习者的逻辑思维和代码实现能力。 综上所述,“java语言程序设计(基础与...

    JAVA初学者应该明白的问题

    对于Java初学者而言,在学习过程中往往会遇到许多令人困惑的问题。这些问题不仅涉及到语言的基础概念,还包括一些进阶的用法与理解。本文将针对一些常见的问题进行详细的解释与分析,帮助初学者更好地理解和掌握Java...

    0分21天学会java

    "0分21天学会Java"是一套全面的Java学习资源集合,旨在帮助初学者快速掌握这门流行的...这个资源包为初学者提供了一个良好的起点,但学习是一个持续的过程,只有不断探索和学习,才能在Java编程领域取得更大的成就。

    用java 做的一个聊天程序

    【标题】"用Java做的一款聊天程序"是一个典型的Java编程实践项目,主要目的是为初学者提供一个实际操作的示例,帮助他们理解如何利用Java语言构建一个简单的交互式应用程序。在Java编程中,聊天程序是一个常见的练习...

    java学习资料打包下载

    《Java解惑》是一本针对常见Java问题和困惑的解答书籍,可能包含了异常处理、内存管理(如垃圾回收机制)、集合框架、IO流、多线程等方面的解释,帮助开发者解决实际编程中遇到的问题。 《Java线程(Java线程经典...

Global site tag (gtag.js) - Google Analytics