论坛首页 Java企业应用论坛

百度java面试题(8月13日)

浏览 24080 次
精华帖 (4) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-08-16  
newypei 写道
jyq45312 写道
第四个,我觉得是用数据库来控制权限,每个用户要访问一个路径先经过判断用户有没有这个权限访问

应该不是吧,这样静态资源没办法控制啊。应该是用filter和session进行控制


恩 同意  这样子静态资源没有办法访问啊!
0 请登录后投票
   发表时间:2011-08-16  
如果这时百度的题目,这也太简单了!!
木有难度~~~~
0 请登录后投票
   发表时间:2011-08-16  
chrislee1982 写道
如果这时百度的题目,这也太简单了!!
木有难度~~~~


确实是百度的面试题,木有难度就请指教一下
0 请登录后投票
   发表时间:2011-08-16  
boomion 写道

 

2、如何实现缓存中数据的有效时间为30分钟(每条新添数据在30分钟后失效

 

存入的时候添加时间属性,如果命中再对比当前时间,当大于30分钟时表示已过期。

至于过期的缓存数据删除应该由其它当独的任务完成。

0 请登录后投票
   发表时间: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盾;
0 请登录后投票
   发表时间:2011-08-16   最后修改:2011-08-16
2、如何实现缓存中数据的有效时间为30分钟(每条新添数据在30分钟后失效)
首先应该有一个以时间为key的Map,
  Map map = new TreeMap();//key=时间戳 value=缓存对象
 

在加入缓存时候,循环比较数组队尾和队头的差如果大于30(时间戳),就删除该一个或者多个缓存对象
,当有一个不大于30分钟就可以退出循环了,
0 请登录后投票
   发表时间:2011-08-16  
session大概就是一个浏览器对一个session吧;
cookie是服务器写在客户端的,其中如果有用户的密码,当有请求时,就可以自动登录了。其中cookie里有seesionID。
0 请登录后投票
   发表时间: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盾;






 
0 请登录后投票
   发表时间:2011-08-17  
mymailzxj 评价的第2点和第4点很好
0 请登录后投票
   发表时间: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盾;


   学习了。
疑问: 第一点回答的是不是有向图的算法,对于解决这里说的双向图有点复杂了吧……
       对于每一个节点记录下相邻节点(一个链表),然后在这个基本模型上优化算法就可以了吧,求高深算法
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics