1.(口述题)请简述迅雷、BT等p2p下载软件的实现原理
如何资源分布
解释:A想来B家做客,但是遭到了B的管家NATB的拒绝,理由是:我从来没有听我家B提过你的名字,这时A找到了A,B都认识的朋友server,要求server给B报一个信,让B去跟管家说A是我的朋友,于是,B跟管家NATB说,A是我认识的朋友,这样A的访问请求就不会再被管家NATB所拒绝了
简而言之,UDP打洞就是一个通过server保存下来的地址使得彼此之间能够直接通信的过程,server只管帮助建立连接,在建立间接之后就不再介入了
2.维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑
为什么解释:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策
3.A=10,b=20在不使用第三变量使两值互换解释:a=10,b=8a=a-bb=b+aa=b-a4
override与重载的区别解释:override是把继承于父类的方法给覆盖掉重载是同一个函数名接受不同类型、个数的参数,完成不同的功能,调用起来方便5.抽象类跟接口的区别解释:抽象类可以有非抽象方法,接口中只能有抽象方法
接口可以实现多继承
6.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后
解释:inally里的代码会执行,在return之前执行7.实现一个冒泡排序解释:ArrayListlist=newArrayList();list
add(76);list
add(4);list
add(786);list
add(43);list
add(21)