一. 假设有一个池塘,里面有无穷多的水.现有2个空水壶,容积分别为5升和6升.问题是如何只用这2个水壶从池塘里取得3升的水?
6升的叫做A,5升的叫做B
1:装A满,把A倒入B满,A的剩下1升
2:B倒空,把A的1升倒入B,这时候A和B分别为0和1
3:再装A满,倒入B让它满,由于B的可装空间是5-1=4,所以A剩下2
4:同理把B倒空,把A的2转给B
5:重复一次,A装满,倒给B,这时候B的空间只有5-2=3,所以A剩下3升
用A的三升就是准确数字
二.假如你给一个老板写程序,工作7天,每天报酬是一段金条,必须当天结算.但老板只有一根金条,并且这根金条能平均切成七段,老板要求这根金条只能切两次.问:你如何向老板要每天的报酬?
我把金条分成1/7、2/7和4/7三份。这样,第1天我就可以给他1/7;第2天我给他2/7,让他找回我1/7;第3天我就再给他1/7,加上原先的2/7就是3/7;第4天我给他那块4/7,让他找回那两块1/7和2/7的金条;第5天,再给他1/7;第6天和第2天一样;第7天给他找回的那个1/7
三.Servlet生命周期,即阐述Servlet从产生到毁灭的整个过程。
在Servlet产生到消亡的过程中,有三个生命周期函数,初始化方法init(),处理客户请求的方法service(),终止方法destroy()。
四.排序方式
//冒泡排序
for(int x=0; x<arr.length-1; x++) {
for(int y=0; y<arr.length-1-x; y++) {
if(arr[y] > arr[y+1]) {
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
//选择排序
for(int x=0; x<arr.length-1; x++) {
for(int y=x+1; y<arr.length; y++) {
if(arr[y] < arr[x]) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
五.事务的四个属性和隔离级别
原子性:要么全成功,要么全失败
一致性:执行前和执行后的状态保持一致
隔离性:多个并发事务之间相互隔离
持久性:事务一旦提交,对数据库中数据的改变是永久性的
数据库的隔离级别
脏读:在一个事务中读取到另一个事务没有提交的数据
不可重复读:在一个事务中,两次查询的结果不一致(针对的update操作)
虚读(幻读):在一个事务中,两次查询的结果不一致(针对的insert操作)