锁定老帖子 主题:百度java面试题(8月13日)
精华帖 (4) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-16
newypei 写道 jyq45312 写道 第四个,我觉得是用数据库来控制权限,每个用户要访问一个路径先经过判断用户有没有这个权限访问
应该不是吧,这样静态资源没办法控制啊。应该是用filter和session进行控制 恩 同意 这样子静态资源没有办法访问啊! |
|
返回顶楼 | |
发表时间:2011-08-16
如果这时百度的题目,这也太简单了!!
木有难度~~~~ |
|
返回顶楼 | |
发表时间:2011-08-16
chrislee1982 写道 如果这时百度的题目,这也太简单了!!
木有难度~~~~ 确实是百度的面试题,木有难度就请指教一下 |
|
返回顶楼 | |
发表时间:2011-08-16
boomion 写道
2、如何实现缓存中数据的有效时间为30分钟(每条新添数据在30分钟后失效)
存入的时候添加时间属性,如果命中再对比当前时间,当大于30分钟时表示已过期。 至于过期的缓存数据删除应该由其它当独的任务完成。 |
|
返回顶楼 | |
发表时间:2011-08-16
1、一个双向图,图中每个节点代表一条数据记录,请设计数据库表结构;设计算法,列出任意两点间的所有路径
数据模型: table NODE { nodeNbr not null varchar(3);//当前节点编号,不能为空 nextNbr varchar(3);//下一个节点编号,可空 } 设计算法: 1.闭环算法: function getRoot(beginNode,endNode) { String[] beginArr = getBeginNodeInfo(beginNode);//存储所有起始节点的信息 StringBuffer rootArr; for(int i=0;i<beginArr.length;i++) { if(beginArr[i].nextNbr == endNode) { rootArr.add(beginArr[i]); continue; } else { getNextNode(beginArr[i].nextNbr, String endNode); } } } public ArrayList getBeginNodeInfo(node); { } public NODE getNextNode(String beginNode, String endNode) { //一个递归算法搞定 } 2.非闭环的算法自己写吧! 2、如何实现缓存中数据的有效时间为30分钟(每条新添数据在30分钟后失效) 服务器端: 方法一:采用线程控制,设定线程的休眠时间为30分钟; 数据库端: 方法一:采用job定时任务; 客户端: 方法一: B/S模式下IE中可以使用setTimeout(“置数据失效”,30*60*1000), C/S模式下可以使用客户端自带的定时任务,如Window下自带的定时任务去处理 3、cookie和session的联系,cookie中存放的具体内容是什么,如何实现用户的自动登录 cookie可以存储客户端的所有信息 包括session信息、客户登录信息等等。 以IE自动登录为例:先从cookie中获取事先存储在其中的用户信息如用户名、密码信息,然后将用户名、密码附加再访问服务器url后面作为参数传入,如果服务器登录成功后自动重定向服务器上,登录成功。 4、权限控制问题:如何限制用户不能访问其权限以外的内容 这个题目有点大,目前权限控制有很多种方式进行控制,以下是我所知道的: 1.数据库端控制:权限存储在数据端,用户可访问权限写在数据库中,需要平凡访问数据; 2.文件控制方式:通过一个文件如xml文件方式控制,xml文件存储在客户端,用户访问时先到文件中查询权限; 3.服务器端:用户权限在服务启动是加载到内存中,访问速度较快,但是权限更新的维护是需要考虑的一个问题; 4.客户端:用户权限与用户登录的方式挂钩,如现在Portal模式(门户模式)有关; 5.第三方存储器:用户权限存储在第三方存储器上,如银行的U盾; |
|
返回顶楼 | |
发表时间:2011-08-16
最后修改:2011-08-16
2、如何实现缓存中数据的有效时间为30分钟(每条新添数据在30分钟后失效)
首先应该有一个以时间为key的Map, Map map = new TreeMap();//key=时间戳 value=缓存对象 在加入缓存时候,循环比较数组队尾和队头的差如果大于30(时间戳),就删除该一个或者多个缓存对象 ,当有一个不大于30分钟就可以退出循环了, |
|
返回顶楼 | |
发表时间:2011-08-16
session大概就是一个浏览器对一个session吧;
cookie是服务器写在客户端的,其中如果有用户的密码,当有请求时,就可以自动登录了。其中cookie里有seesionID。 |
|
返回顶楼 | |
发表时间:2011-08-16
mymailzxj 写道 1、一个双向图,图中每个节点代表一条数据记录,请设计数据库表结构;设计算法,列出任意两点间的所有路径
数据模型: table NODE { nodeNbr not null varchar(3);//当前节点编号,不能为空 nextNbr varchar(3);//下一个节点编号,可空 } 设计算法: 1.闭环算法: function getRoot(beginNode,endNode) { String[] beginArr = getBeginNodeInfo(beginNode);//存储所有起始节点的信息 StringBuffer rootArr; for(int i=0;i<beginArr.length;i++) { if(beginArr[i].nextNbr == endNode) { rootArr.add(beginArr[i]); continue; } else { getNextNode(beginArr[i].nextNbr, String endNode); } } } public ArrayList getBeginNodeInfo(node); { } public NODE getNextNode(String beginNode, String endNode) { //一个递归算法搞定 } 2.非闭环的算法自己写吧! 2、如何实现缓存中数据的有效时间为30分钟(每条新添数据在30分钟后失效) 服务器端: 方法一:采用线程控制,设定线程的休眠时间为30分钟; 数据库端: 方法一:采用job定时任务; 客户端: 方法一: B/S模式下IE中可以使用setTimeout(“置数据失效”,30*60*1000), C/S模式下可以使用客户端自带的定时任务,如Window下自带的定时任务去处理 3、cookie和session的联系,cookie中存放的具体内容是什么,如何实现用户的自动登录 cookie可以存储客户端的所有信息 包括session信息、客户登录信息等等。 以IE自动登录为例:先从cookie中获取事先存储在其中的用户信息如用户名、密码信息,然后将用户名、密码附加再访问服务器url后面作为参数传入,如果服务器登录成功后自动重定向服务器上,登录成功。 4、权限控制问题:如何限制用户不能访问其权限以外的内容 这个题目有点大,目前权限控制有很多种方式进行控制,以下是我所知道的: 1.数据库端控制:权限存储在数据端,用户可访问权限写在数据库中,需要平凡访问数据; 2.文件控制方式:通过一个文件如xml文件方式控制,xml文件存储在客户端,用户访问时先到文件中查询权限; 3.服务器端:用户权限在服务启动是加载到内存中,访问速度较快,但是权限更新的维护是需要考虑的一个问题; 4.客户端:用户权限与用户登录的方式挂钩,如现在Portal模式(门户模式)有关; 5.第三方存储器:用户权限存储在第三方存储器上,如银行的U盾; |
|
返回顶楼 | |
发表时间:2011-08-17
mymailzxj 评价的第2点和第4点很好
|
|
返回顶楼 | |
发表时间:2011-08-17
mymailzxj 写道 1、一个双向图,图中每个节点代表一条数据记录,请设计数据库表结构;设计算法,列出任意两点间的所有路径
数据模型: table NODE { nodeNbr not null varchar(3);//当前节点编号,不能为空 nextNbr varchar(3);//下一个节点编号,可空 } 设计算法: 1.闭环算法: function getRoot(beginNode,endNode) { String[] beginArr = getBeginNodeInfo(beginNode);//存储所有起始节点的信息 StringBuffer rootArr; for(int i=0;i<beginArr.length;i++) { if(beginArr[i].nextNbr == endNode) { rootArr.add(beginArr[i]); continue; } else { getNextNode(beginArr[i].nextNbr, String endNode); } } } public ArrayList getBeginNodeInfo(node); { } public NODE getNextNode(String beginNode, String endNode) { //一个递归算法搞定 } 2.非闭环的算法自己写吧! 2、如何实现缓存中数据的有效时间为30分钟(每条新添数据在30分钟后失效) 服务器端: 方法一:采用线程控制,设定线程的休眠时间为30分钟; 数据库端: 方法一:采用job定时任务; 客户端: 方法一: B/S模式下IE中可以使用setTimeout(“置数据失效”,30*60*1000), C/S模式下可以使用客户端自带的定时任务,如Window下自带的定时任务去处理 3、cookie和session的联系,cookie中存放的具体内容是什么,如何实现用户的自动登录 cookie可以存储客户端的所有信息 包括session信息、客户登录信息等等。 以IE自动登录为例:先从cookie中获取事先存储在其中的用户信息如用户名、密码信息,然后将用户名、密码附加再访问服务器url后面作为参数传入,如果服务器登录成功后自动重定向服务器上,登录成功。 4、权限控制问题:如何限制用户不能访问其权限以外的内容 这个题目有点大,目前权限控制有很多种方式进行控制,以下是我所知道的: 1.数据库端控制:权限存储在数据端,用户可访问权限写在数据库中,需要平凡访问数据; 2.文件控制方式:通过一个文件如xml文件方式控制,xml文件存储在客户端,用户访问时先到文件中查询权限; 3.服务器端:用户权限在服务启动是加载到内存中,访问速度较快,但是权限更新的维护是需要考虑的一个问题; 4.客户端:用户权限与用户登录的方式挂钩,如现在Portal模式(门户模式)有关; 5.第三方存储器:用户权限存储在第三方存储器上,如银行的U盾; 学习了。 疑问: 第一点回答的是不是有向图的算法,对于解决这里说的双向图有点复杂了吧…… 对于每一个节点记录下相邻节点(一个链表),然后在这个基本模型上优化算法就可以了吧,求高深算法 |
|
返回顶楼 | |