目录html
补充:面试未经过前端
一轮 电话面试
2019.04.28 16:21java
[w]:面试官,[m]:我,下面的内容来自电话录音。git
[m]:喂,喂
[w]:喂你好,请问是xxx同窗吗?
[m]:对,是的;
[w]:你好,我这边是上海爱奇艺,以前和你约好下午有电话面试,你如今那边OK吗?
[m]:能够啊
[w]:你那边信号好吗?听我说话听的清楚吗?
[m]:听得清楚呀,你那边听得清楚我说的吗?
[w]:嗯,我这边听得清楚
[w]:行,那咱们就开始;
[w]:我先问一下,你如今人在哪一个城市啊?
[m]:在苏州呀
[w]:苏州,就是中科大苏州这边软院是吧;
[m]:对
[w]:嗯好的,你平时开发的主语言是Java吗?
[m]:对啊,是Java;
[w]:好的,那我主要是问一下Java相关的一些基础知识
[m]:哦,行
[w]:Java有个最基本的类Object,这个类默认包含哪几个方法?
[m]:wait,notify,notifyAll,finalize,toString,hashCode,equals;
[w]:还能想到其余的吗?
[m]:没有了啊,想不到了;
记:还有:clone、getClass;
[w]:好,那我再换一个东西问,
Java里面,你平常写代码中遇到过哪些Exception,能举一些例子出来吗?
[m]:空指针、角标越界,Emmm...能想到的是这两个
[w]:还能想到其余的吗?
[m]:其余的,在写测试的时候会用到那个什么...Interr...就是打断的异常,Intercept异常。(实际上是InterruptedException)
记:面试官主要是想看你遇到哪些异常,而后来推断你的实践范围和能力。
[w]:好,我问一下
Java里面有那个==,它和Java的equals方法有什么区别?
[m]:等号(==)就是看一下那两个对象(引用)是否指向同一个内存空间,就真的是相等;equals的话,那个Object里面equals()默认的话就是用==,因此你能够覆写的话,就能够本身去定义一下是否相等;
[w]:能说一下
有没有什么很经典的场景,或者很经典的类是覆写了这个方法吗?
[m]:String类;
这块答得还阔以;
[w]:好,问一下
Java建立线程有哪几种方法?
[m]:能够写一个类去继承Thread那个类,而后....(我还没说完)
[w]:嗯,还有其余的吗?
[m]:还有直接写个Runnable类(子类),传到Thread的构造函数里面;
[w]:还有其余的吗?
[m]:还有一个是Callable,就是实现这个接口,用Callable....(仍是没说完)
[w]:
那个Callable和Runnable有什么区别?
[m]:Callable它有个返回值,返回一个Future,而后...(再次没说完)
[w]:问一下,
若是咱们建立了这个线程,我想执行这个线程中的具体逻辑,我能够调用这个线程的start()方法去执行它,也能够调用这个线程的.run()方法去执行它,这两种执行方式有什么区别吗?
[m]:.run()的话就是不开启线程,就是直接调用个方法,.start()方法就是开启个线程吧;
[w]:好,问一下
Java线程中的sleep方法和wait方法有什么区别?
[m]:sleep的话就是睡了,它不会释放锁,wait的话就是先要得到那个锁,才能释放;
[w]:
处于wait状态的线程要用什么命令去唤醒它?
[m]:用notify,notifyAll;
[w]:
notify和notifyAll有什么区别?
[m]:notify就是唤醒其中一个吧,notifyAll的话就是唤醒等待这个锁的全部线程;
[w]:若是如今有不少个线程在等待中,
你不调用notifyAll(),而是调用notify(),会唤醒哪个?
[m]:是唤醒随机一个吧(其实我也不太肯定);
这块答得马马虎虎,有一些问题不太肯定;
[w]:我再问一下,Java里面的多态相关的概念,
多态里面有两个经典概念,一个叫重载,一个叫重写,能说一下这两个有什么区别吗?
[m]:重载的话,你能够不用涉及到什么父类之类的,定义一个方法的惟一标识就是方法名称、参数类型、参数个数,方法名称相同,参数类型,参数个数,这两个不一样的话,那就是重载;
[w]:嗯,重写呢?
[m]:重写的话,就是要和父类相关,方法名称要相同,参数类型、参数个数要相同,能够把父类的方法覆写,实现本身的方法;
[w]:我问一个场景:
你在子类中写了一个方法,它和父类的那个方法,方法名字是如出一辙的,参数的类型和参数的个数列表也都如出一辙,惟独返回类型不一样,这样你调用这个子类方法,会返回哪个?
[m]:返回类型不一样的是吧,就调用子类的呀;哦,不对,这个它也实现了嘛,重写,由于标识就是方法名称、参数个数、参数类型都相同的话,调的应该就是子类的;(其实我感受这里是有问题的,可是不太肯定)
[w]:我问一下,
若是是在同一个类里,你写了两个方法,方法名如出一辙,参数列表如出一辙,惟独返回类型不一样,调用的时候会执行哪个?
[m]:这能够吗?
[w]:这个不能够在哪里?
[m]:这个东西就是....它,若是你定义返回类型,哦...返回类型....(有点不自信)很差意思,刚才忽然打断了,就是两个方法同名是吗...(面试官get到个人疑惑了)
[w]:对,就是在同一个类里,你写了两个方法,方法名如出一辙,参数列表如出一辙,惟独返回类型不一样;
[m]:返回类型不一样,而后咧?而后调用哪一个???而后就没有了吗?但我以为这个就,我没见过这样写的,并且感受定义会有问题啊,返回类型不一样定义会有错误,编译会有问题;
[w]:若是这种编译会错误,那么前面那种编译为何不会错误?
[m]:对喔,前面那个也会有问题哦...
[w]:行,这块你回去再理解一下,或者你再查查资料,可是还能够;
这块答得不行,就是对知识点理解的不充分,因此才不自信;
[w]:我接着问一下
Java 的垃圾回收你有多少了解?
[m]:GC是吧,就是....额....也不是很深,但稍微了解过,看过那本《深刻理解JVM虚拟机》
[w]:我这么问吧,
Java若是咱们想要了解它虚拟机的话,经常会在JVM虚拟机中设置一些参数,好比说:Xmx,Xms,这些参数有见过吗?了解它什么含义吗?
[m]:就是指定那个堆空间大小吧,-Xms、-Xmx,就是指定堆空间的大小,会有限制,最大或最小;
记:
- 其实GC这部分我仍是了解过一些的,好比GC分代、回收算法、标记算法,可是我确实不敢说我了解的有多深;
- 对于Xms和Xmx的回答,我可能答错了,因此面试官直接跳到下一个模块来问;
[w]:嗯,行,我问一下那个Linux你了解吗,我看到你简历有写:你有Linux基本的使用技能;我问一些Linux的基础命令;
[m]:呵....你问吧
[w]:
在Linux命令中,重命名一个文件用什么命令?
[m]:move,mv
[w]:
若是在Linux里面,想要找到这台机器上的全部tomcat进程,要用什么命令?
[m]:tomcat进程是吧,ps -aux | grep tomcat
这块还能够吧;
[w]:嗯,好,问一下一些基础的....大家有没有学数据结构和算法相关的东西?
[m]:学了一些;
[w]:嗯,
那个排序算法里面有一个比较经典的概念,就是叫作“稳定性”吧,咱们常常说有些排序算法是稳定的,有些是非稳定的,这个稳定指的是什么意思,知道吗?
[m]:知道呀,好比说有原始数据,1,1,就是两个1嘛,一个是在角标1,一个是在角标2,排序过程当中,若是是稳定性算法的话,这两个数字的相对位置是不会发现变化的,不稳定的话....(还没说完)
[w]:这样,我接着这个问,
哪些是稳定的排序算法?
[m]:稳定的算法,冒泡吧,插入排序,Emmm....想想,如今想到的是这两个;
[w]:嗯,行,就这个里面我再抽一个追问一下,
刚刚你提到了冒泡排序,你如今能回忆一下冒泡排序的过程,我问这么一个问题,若是须要咱们把冒泡排序改形成非稳定的,要怎么改?
[m]:改形成非稳定的,就是它会跟前面一个元素比较嘛,若是相等的话就把那个位置给换一下;
这块还阔以吧;
[w]:嗯,好的,OK,大家这边的状况我基本了解,我再问一下其余的一些状况,就是你期末考试是到何时啊?若是你可以过来实习的话,你是何时才能开始实习?
[m]:7月10多号结束吧,咱们这边校历上是这样写的;
[w]:7月多少号?
[m]:这个我具体时间我记不清楚了,应该就是7月10几号,我如今就能够看一下;
[w]:7月10几号....
[m]:对,实习的话就是我结束以后,考完试后我就能够去;
[w]:嗯,大概能够实习多久呢?
[m]:大概的话,就是....(还没说完)
[w]:能够实习到明年这个时候吗?
[m]:能够呀,可是我想先问一下,就是那边实习的话,工做内容是否能够写论文,就是咱们这边实习须要写论文;
[w]:额,放心,这边都是这个样子的,我把我这边的状况先给你介绍一下好吧;
[w]:咱们这边其实大量是大家中科大的学长在这边实习,通常就是在本身的工做岗位上,用开发的内容就顺便把论文一块儿写了,一代一代都是这样子(说到这里,我噗笑了一下)。就是苏州中科大软院咱们这边很是熟,大家的每一代学长都在咱们这边有大量的同窗,因此你看到的贴子应该是由内网,或者由内部院里发出来的对吧;
[m]:我看到的贴子是我同窗在群里转发的;
[w]:哦(面试官笑了下),好吧,反正就是说是一代代学长们....大家的学长们都是在这边写毕业论文的,毕设的这个问题不是问题。全部同窗到来年3月份,你开题的时候,咱们都会给你题目,基本上就是跟你工做相关的内容,而后就是能够....比较放心吧。毕设的这个事情不用太担忧。
[m]:嗯;
[w]:嗯,行,我以为基本上,电话这轮应该是过了。以后的话,HR还会和你约一个面试,我想一下,你在苏州,实际上是这样子,仍是有一轮代码的面试,代码面试就比电话里复杂一点,会出一两个代码题让你写。尽量是...由于,其实从你从苏州中科大来公司其实也很近,OK的话就约一个现场面试吧,到时候我通知HR。我具体说一下,其实你从苏州学校到爱奇艺这边来大概两个小时左右,由于那苏州高铁站不是坐20块钱的动车坐到上海虹桥火车站,爱奇艺就在上海虹桥火车站旁边,那这样的话你以为OK的话,我就找HR约一下现场的面试,看你哪天有空你就来一下咱们这边。
[m]:也行;
[w]:嗯,能够吧,那就,那就,具体时间,到时候可能在51以后的那一周吧,看你哪一天有空都行,随便抽一个下午过来,到了这边现场的话应该须要2~3个小时,就是方便的话,最好在下午的2点钟,或3点钟来,你晚上还能作个高铁回去。这样OK吗?
[m]:噢...噢...能够能够
[w]:行,好的,那我就跟你约一个下周的现场面试,到时候你能够作点准备。可是其实就和网上差很少,无非就是纸上写代码,这样子的,看一下你实际的代码本领;好的,OK,那这样,电话面试就到这边了。嗯,额....你对咱们这边有什么问题想问的吗?
[m]:我想问...(话还没说完)
[w]:或者你能够到现场来,咱们在现场聊也同样的(面试官也笑了),到这边,到爱奇艺公司来看一看,而后上海爱奇艺里大家很近。大家往年有不少学长都在咱们这边。好的,那就这样,那今天电话就到这边;
[m]:嗯,好好...谢谢
[w]:嗯,好,OK,拜拜
[m]:拜拜
二轮 代码笔试
2019.05.07 14:00
写代码这一轮,是我到上海爱奇艺创新大厦现场进行的。面试官拿几张白纸过来,而后现场给你想个题目,在纸上画一画,把题目给你说明白,下面就是你本身开始手写代码了。时间应该是1h,若是你在1h内解题数<=1,可能就不及格了。若是你能力很强,那固然是作出的题越多越好,面试官也是按难度:低->高的模式给你出题的。
解答我就不贴出来了,网上一查挺多的。(
解题不是只写个思路就OK,通常是要写个函数,或者难一点的话要写个类,要求你的代码是可执行的,导包那些可能不用写)
题目一 String转double
给你一个String,内容相似:“3.14159”、“-1294.28842”,不用进行特殊的判断,好比:小数点存不存在,整数部分存不存在等,让你把这个String转换为double类型。
我当时写的解题思路是:整数部分乘10累加,小数部分除以10累加;
题目二 二叉树蛇形打印
输出:a b c g f e d 1 2 3 4 5 6 7 8程序员
我当时写的解题思路是:一层队列一层栈;github
作完题目一、2,应该还剩20分钟左右,面试官有点犹豫,一开始说:那咱们继续作个题吧,后面又说:那咱们仍是看一下简历吧。而后花了几分钟问了我些简历上的基本状况,后面可能他本身想“这部份内容也不是我负责的啊”,而后就给我出了第三个题目。面试
题目三 动态规划算法
数字1对应字母a,2对应字母b....26对应z,咱们给你一个字母组成的字符串“abc”,你能够转为“123”。如今是要给你一个数字组成的字符串“123”,让你求出有多少种可转成的字符串。好比:数据库
- 123:1-a、2-b、3-c,最后可转为:abc
- 123:12-l(小写字母L)、3-c,最后可转为:lc
- 123:1-a、23-w,最后可转为:aw
- 因此总共有3种可转换成的字符串;
这个题我没写出来,一开始想分治,后来以为不对,应该用动态规划。后来时间到了,他说没事,你回去看一下《算法导论》的动态规划。bootstrap
回到目录
三轮 技术面试
2019.05.07 15:00
这轮面试我感受本身彻底被吊打,前面打小怪感受良好,后面被Boss反杀。因为是现场面试,就没录音,只是根据印象记了些内容,如今整理出来。依旧是[w]:面试官,[m]:我。
[w]:刚才作了什么题目呢?
[m]:一个字符串转double的,还有一个二叉树蛇形打印的,还有个动态规划的,动态规划那个题没作出来。
[w]:嗯,你日常用的是Java是吧?
[m]:对
[w]:(面试官递给我简历)来,
挑一个你熟悉的讲一下吧
[m]:(我挑了研一上学期的J2EE课设做业:SimpleController)
[w]:
你这个项目是作什么的?
[m]:(我吧啦吧啦半天好像也没讲明白,一方面表达能力不行,另外一方面我不清楚要基于什么样的粒度去讲解)
[w]:
你从这个项目中学到了什么?
[m]:反射机制...(我原本想说反射和动态代理的,但我刚说完反射机制就被[w]打断了,后来想一想,我以为仍是应该把话说完的)
[w]:
那你怎么理解反射机制的呢?
[m]:通常调用对象方法都是用个对象,打点,而后调用的嘛,而反射机制缺能够经过类名、方法名等拿到一个方法调用的句柄,而后经过这个句柄来间接调用方法。(其实我这里写的仍是我整理过的话语,现场我说的可能比这个乱一些)
[m]:(而后我很做死的补充道)有时候使用反射机制去调用对象的私有方法,可能会存在安全性问题。
[w]:
你说反射调用一个对象的私有方法,会有安全性问题对吧,那你怎么解决这个问题呢?
[m]:(我一脸懵逼,后悔不应乱BB的,而后我开始基于事实的乱编),能够经过在对象中设置校验位来避免。
[w]:校验位???(面试官脑壳3个问号)
[m]:一个对象的状态是由它的属性来表示的嘛,若是经过反射机制来调用对象私有方法,可能会让对象转为不肯定的状态(即:按理不该该出现的状态),那这时候在对象中设置一个校验位,在方法调用前都会检测这个校验位,若是校验失败则方法调用失败。也就是直接调用私有方法会让校验位变成“没法经过校验的值”。能够类比List集合迭代器的过程,若是在遍历的过程当中删除元素,就会报错,这里面就是经过一个modCount校验位来实现的。(我当时的回答没这么清晰,大概思路就这样)
[w]:哦(我也不知道他听懂没,而后直接跳到下一个话题了)
[w]:
经常使用的设计模式熟悉吗?
[m]:我知道一些,好比:单例、工厂...(我话还没说完)
[w]:
单例,你怎么理解单例的?
[m]:有时候一个类并不须要建立多个对象,其建立一个对象就能够向外提供服务,若是建立多个对象,就会形成内存空间的浪费,因此使用了单例模式来控制对象的建立,保证一个类只有一个实例对象。
[w]:
你能写出单例模式吗?
[m]:能够。(而后我写了第一个版本的:使用静态内部类来实现)
[w]:你这个编译有问题啊。(后来我看了下,确实有问题,但当时有点慌,就没注意到)
[w]:
你为何使用静态内部类来实现呢?
[m]:能够延迟加载
[w]:
何时会被加载呢?
[m]:当调用那个静态方法的时候,会加载那个静态内部类,而后开始加载。
[w]:
静态内部类你不会写,那你能写出其余实现方法吗?
[m]:能够。(而后我写了第二个版本:volatile+双重检测)
[w]:
你能给我讲一下为何要用双重检测吗?
[m]:(我讲了开头,而后中途不知道脑子怎么想的,忽然以为我写的是否是哪里有问题。其实我写的是对的,并且我也确实知道为何那样写。只是当时要给面试官讲的时候,逻辑是: 若是这样子写,那就会有问题,可是我拿的是正确的代码来说的,讲到途中忽然发现没有出现预想的那个问题,因此忽然脑子中断了一下,就一直没回过来。后来想一想,本身好搞笑。)
[w]:代码写的出来,殊不知道为何?(他内心确定在想,这小伙子确定是为了应付面试,去背了代码。orz...我没有)
[m]:呵呵...
[w]:
你以为你的优点是什么?
[m]:我以为我学习能力仍是比较强的。
[w]:
你能举个例子说明一下吗?
[m]:(这个问题我以前从没准备过,也是现场就编,但也是事实),咱们上学期课程高级数据库有个大做业,要作一个完整的Web项目,旅游预订系统。我以前没怎么写过前端,而后各类查资料看前端内容,包括:bootstrap、Vue等,而后开始写代码,最后花了5天时间把这个大做业完成了。虽然这个网站作的不是那么完美,但我这5天看官方文档、菜鸟教程,基本都是full time写项目,算是挑战了自我吧,在这以前我没想过本身能够完成。
[w]:
5天完成是吗?只作了前端吗?
[m]:不是,是所有,包括后端、数据库这些。
[w]:
那你以为你的缺点是什么?
[m]:我可能英语要差一些,相对于其余同窗。而后表达可能会弱一些,就是脑子里面想得表达出来时不清晰。还有有点偏内向,不太善于社交。
(中间好像还问了什么,没印象了)
[w]:
好吧,如今来看这么一个题:4x4的方格里,最左下角有一个点A,最右上角有一个点B,规定只有两种操做:往上移1步,或往右移1步,(注:不会往回走),问:从点A到点B有多少种走法?
(我想了想)
[w]:有思路吗?
[m]:将右移定位1,上移定为0,那就是取4个1和4个0的排列组合...(我话还没说完)
[w]:答案是多少?有多少种?
[m]:(我呵呵...)暂时没想出来。(后来吃饭时候和同窗讨论,他说是

,不过我当时想的是

,因此须要去重,而怎么去重我一时间没想到,因此只能老老实实说没想出来)
[w]:
若是让你用算法实现,你怎么作呢?
[m]:(我想都没想)作一个深度优先遍历吧。
[w]:
你能用动态规划的方法来作吗?
[m]:(又是动态规划,以前没怎么刷过这方面的题,扑街)Emmmm,就是定义一个3维数组,g[u][v][?],而后起点(0,0)到其中一个点(0,k),而后再从k开始到终点,计算出这两个子部分的值,而后把它们相乘。
[w]:什么?3维数组?为何是3维吗?我有点没清楚,你说的(u,v)是啥意思?
(而后我又讲了下,也没讲清楚)
[w]:你如今是有个比较清晰的解题思路呢,仍是只是有个模糊的解答过程?
[m]:比较模糊吧,我是想定义(u,v),表示节点u到节点v的路径总数,可是这个节点又是个2维的。
[w]:那你要定义个4维的吗?(面试官好像笑了下)
[m]:Emmmm,应该不会那么麻烦的,应该有更简单的解题思路。
[w]:你动态规划方面的题是否是作的很少,我看你简历上有些刷题的,有leetcode啊。
[m]:对,我动态规划这部分练的比较少。
[w]:
好吧,那咱们再来看下一个场景:N维向量,稀疏矩阵,这个稀疏矩阵中绝大多数是0值,只有不多一部分是非0值。假设有1亿维,如何设计一个类去表示这个稀疏矩阵,而且要提供其与另一个稀疏矩阵相加的操做。
[m]:(这就是涉及大数据的知识了,个人盲区,我想了想,而后说)要压缩数据,创建一个小一点的数组,去记录稀疏矩阵中一个非0数后面有多少个0...
[w]:你写一写吧,能够写在白板上。
(我随便写了下内部的数据结构,而后他就过来看了。我大概跟他讲了一下思路,其实我挺迷的。一开始想到的是在源串上直接压缩数据,就是1个非0数字后面跟上一个0,0后面有个count值,表示这个非0数字后面0出现的次数,若是非0数字后面直接就是非0值,表示其后面没有0。这种压缩方法虽然能够解压缩,可是一时间没想到怎么提供加法操做,因此就用了额外的数组来保存count,而后还对原串进行分片....)
[w]:好吧,我大概懂你的思路。(我本身也没懂,我不知道他怎么懂的😂)
[w]:
你有什么问题想要问我吗?
[m]:若是我能在爱奇艺工做了,我要作什么内容呢?
(而后他给我讲了讲他们作的内容)
[m]:能举个具体点的例子吗?
(他又跟我说了一会,什么客户方写了个spark,打包,交给咱们的基础平台运行。)
[m]:这个架构是什么样子的?能给我讲讲吗?或者画个图?
[w]:画图就先不画了,其实网上不少相似的架构,只是每一个公司的细节可能不太同样。
[m]:嗯嗯,好的。
[w]:好吧,那就先面到这里,等咱们有消息了再通知你。
[m]:好的。
[w]:我送你下去吧。
[m]:嗯,谢谢。
回到目录
总结
参考:科软-实习招聘-笔试面试感悟(2019.03.24~2019.05.12)
附:电话面试问题点解惑
针对电话面试中我不清楚的问题进行回顾。
1 Java有个最基本的类Object,这个类默认包含哪几个方法?
toString()、equals()、hashCode()、clone()、finalize()、wait()(wait方法有3个重载)、notify()、notifyAll()、getClass();
其实 Object 中还有个静态的私有本地方法:registerNatives();定义以下:
1 private static native void registerNatives();
2 static {
3 registerNatives();
4 }
关于 registerNatives() 方法,我查了一些资料,是和 JNI(Java Native Interface)有关,先记录一下查到的资料,后期须要时再深刻理解。
相关资料:
2 不调用notifyAll(),而是调用notify(),会唤醒哪个线程?
notify() API 中有这么一段话:
Wakes up a single thread that is waiting on this object's monitor. If any threads are waiting on this object, one of them is chosen to be awakened. The choice is arbitrary and occurs at the discretion of the implementation. A thread waits on an object's monitor by calling one of the wait methods.
译文:
唤醒正在此对象监视器上等待的单个线程。若是有任何线程正在等待这个对象,则选择其中一个线程被唤醒。选择是任意的,由实现决定。线程经过调用一个等待方法来等待对象的监视器。
3 重载和重写相关问题
3.1 Java 多态里面有两个经典概念,一个叫重载,一个叫重写,能说一下这两个有什么区别吗?
何为参数列表?
- 参数列表就是一个有序序列,序列的项就是参数类型;
- 好比:void foo(String name, int age, float salary) 这个方法,其参数列表就是[String, int, float],共有3个参数;
参考:《Java程序员面试笔试宝典》4.2.7 重载和覆盖有什么区别?
重载,是在一个类中多态性的一种表现,是指在一个类中定义了多个方法,这些方法的方法名都相同,参数列表都不一样;
在使用重载时,须要注意如下几点:
- 1)不能经过方法的访问权限、返回值类型和抛出的异常类型来进行重载;
- 2)对于继承来讲,若是基类方法的访问权限为 private,那么就不能在派生类对其重载;若是派生类也定义了一个同名的函数,这只是一个新的方法,不会达到重载的效果;
- 3)对于静态方法,有重载的概念;
重写,是指子类重写父类函数。在重写时须要注意如下几点:
- 1)子类中的重写方法必需要和基类中被重写方法有相同的函数名称和参数;
- 2)子类中的重写方法的返回值必须和父类中被重写方法的返回值相同;
- 3)子类中的重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常
- 4)父类中被重写的方法不能为 private,不然其子类只是定义了一个方法,并无对其重写;
- 5)对于静态方法,并无重写的概念;
重载和重写的区别主要有如下几个方面:
- 1)重写是子类和父类之间的关系,是垂直关系;重载是同一个类中方法之间的关系,是水平关系;
- 2)重写只能由一个方法或只能由一对方法产生关系;重载是多个方法之间的关系;
- 3)重写要求参数列表相同;重载要求参数列表不一样;
- 4)重写关系中,调用方法是根据对象的类型(对象对应存储空间类型)来决定;而重载关系是根据调用时的实参表与形参表来选择方法体的;(在JVM层面理解,重载是静态分派过程,重写是动态分派过程)

其余参考资料:
3.2 在子类中写了一个方法,它和父类的那个方法,方法名字是如出一辙的,参数的类型和参数的个数列表也都同样,惟独返回类型不一样,这样你调用这个子类方法,会返回哪个?
代码:
1 public class Father {
2 public void foo(String s, int i) {
3 System.out.println("Father: " + s + ", " + i);
4 }
5 }
6
7 public class Son extends Father {
8 public int foo(String s, int i) {
9 System.out.println("Son: " + s + ", " + i);
10 return 0;
11 }
12 }
编译错误:

3.3 若是是在同一个类里,你写了两个方法,方法名如出一辙,参数列表如出一辙,惟独返回类型不一样,调用的时候会执行哪个?
代码:
1 public class Son {
2 public int foo(String name, int age) {
3 System.out.println("Son, name = " + name + ", age = " + age);
4 return 0;
5 }
6
7 public void foo(String name, int age) {
8 System.out.println("Son, name = " + name + ", age = " + age);
9 }
10 }
编译错误:

4 有哪些排序算法是稳定的?

我当时答的是:直接插入排序、冒泡排序;
除此外还有:归并排序、基数排序、计数排序,仍是由于不经常使用的缘由,因此印象不深入;
归并排序:
转载请说明出处!have a good time :-)