1. (口述题)请简述迅雷、BT 等 p2p 下载软件的实现原理。如何资源分布。解释:A 想来 B 家做客,但是遭到了 B 的管家 NAT B 的拒绝,理由是:我历来没有听我家 B 提过你的名 字,这时 A 找到了 A,B 都结识的朋友 server,规定 server 给B 报一个信,让 B 去跟管家说 A 是我的朋友,于是,B 跟管家 NAT B 说,A 是我结识 的朋友,这样 A 的访问请求就不会再被管家 NAT B 所拒绝了.简而言之,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.实现一个冒泡排序解释:ArrayList list=new ArrayList(); list.add(76); list.add(4); list.add(786); list.add(43); list.add(21); list.add(432); list.add(10); for(int i=0;i0) { //比较两个整数的大小 a=list.get(j-1); list.set((j-1),list.get(j)); list.set(j,a); } } } for(Integer s:list) { System.out.println(s.intValue()); }8. 查出总成绩大于 100 分的学生信息1ZhangSql602liC#503wangJava704zhangJava555liSql606liJava65解释:select * from table where id in (select name,sum(gade) as total from...