面试笔试题10

13 有150个数字属于闭区间【1,100】,求去重后的数字个数,最优伪代码及相应的空间复杂度 //读数字//addSet//求长度 一般空间复杂度是o(1) 参考:https://blog.csdn.net/yahohi/article/deta...

13 150个数字属于闭区间【1100】,求去重后的数字个数,最优伪代码及相应的空间复杂度

//读数字//addSet//求长度 一般空间复杂度是o(1)

参考:https://blog.csdn.net/yahohi/article/details/7900955

 

14 目录/path下有若干文件和文件夹找出该目录下以log-*.log命名的日志文件并将这些文件中的内容按照文件顺序依次输出到/logs/logs-YYYY-MMM-DD.LOG文件中,其中YYY-MM-DD的具体取值是程序运行时的时间,写伪代码

DATE=$(date +%Y-%m-%d)

find /path -name  "log-*.log"  -exec cp -p {}  /home/$(DATE) 执行错误

//字符输入流//递归读取匹配的文件//输出到指定文件中

 

15 请描述servletweb服务期,web容器的功能和用途,画图解释三者的关系

attachments-2018-04-lCjnxwDg5ae431edeb431.png

 

Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议,与浏览器配合;可以有apachetomcat

Web容器,它是来管理和部署 Web应用的,

servlet就是web应用程序;但是web容器和服务器也有可能是servlet实现。

 

16 HTTP是一种无状态协议,那么服务器如何区分两次HTTP请求的是否是同一个用户

要判断两次请求是否为同一用户,可以在刚开始就将用户名或id存入cookie或session
然后将两次的请求用户进行比较

 

17 什么是数据库锁》oracle中都有哪些类型的锁

 锁是用来在多个用户同时访问同一个表的时候保护数据的。它是Oracle的一种并发控制技术。锁使数据库最大并发的情况下保证数据的完整性。Oracle会在需要的时候自动的提供锁的功能。

锁的种类有:共享锁:这个锁是数据在被viewed的时候放置的;排他锁:这种锁在Insert,Update,Delete命令执行的时候放置的,每一条记录同一时间只能有一个排他锁。

 

18 一个EXT3的文件分区,当使用touch test.file命令创建一个新文件时报错,提示磁盘已满,但是采用df -h命令查看大小只用了60%,为什么出现这个情况?

两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适合很多小文件跟大文件的一种文件格式,出现很多小文件时,容易导致inode 耗尽了

创建文件时会给文件分配一个inode号,如果inode号用光了,就不能创建文件了

19怎么实现词典(100万条)的动态加载机制(即不停止服务更新词典)

20Mysql命令数据备分和回复怎么操作?

# 如果要将game数据库进行备份:
mysqldump -u root -p game > game_backup.sql

# 如果希望备份所有的数据库:
mysqldump -u root -p --all-databases > all_backup.sql

还原数据库
1、使用mysql命令还原数据库
game_backup.sql 还原至 game 数据库:

复制代码代码如下:

mysql -u root -p game < game_backup.sql  

2、使用source命令还原数据库
如果数据库过大,建议可以使用source命令

复制代码代码如下:

mysql> source game_backup.sql

 

 

 

 

21Oracle中如何查看表空间的名称及大小

查询:dba_free_space,dba_data_files,dba_tablespaces三张表

select b.file_name 物理文件名,b.tablespace_name 表空间,b.bytes / 1024 / 1024 大小M,(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,

substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率   

from dba_free_space a,dba_data_files b   

where a.file_id = b.file_id

group by b.tablespace_name,b.file_name, b.bytes   

order by b.tablespace_name;

 

以下参考-29http://www.51mokao.com/forumpostscont.html?id=156520

22作为一个管理员,你希望每一个新用户下的目录下放一个.bashrc文件,那么你应该在哪个目录下放这个文件,以便于信用出创建主目录时自动拷贝过去。D

A、/etc/skel/

B、/etc/default/

C、/etc/defaults/

D、/etc/profile.d/

23. 有效的shell变量名是

24. 分页查看当前目录下所有文件的目录名,用户组,等详细信息

Ls -al |more

25. 进程调度命令__是不正确的、at--定期执行程序的调度命令

每年1月1日早上6点执行date命令,使用at命令:at 6am Jan 1 date

26. user1,user2同属users组,user有个file1,644权限文件,user2想修改file1应有664权限?

27. 要配置NFS服务器,再服务器端主要配置/etc/exports文件

28. 配置代理服务器的工作缓存为64MB,配置行应为cache_ mem 64MB

32 使用shell

1)过滤haoop fs -ls xxx后的结果集,仅保留所有大小为0的文件(假定第五列为文件大小)

 hadoop fs -ls /testdata | awk '$4>0'

2)字典顺序排序a.Txt文件并删除相同的行

Sort -d -u a.txt

3)删除a.txt空白行

cat a.txt| sed -e '/^$/d' > aa.txt

4)输出文件a.txt中包含字符串“playcrab”的所有行到文件b.txt

@echo off

setlocal enabledelayedexpansion

set /p str=请输入要查找的字符串,回车确认:

findstr /i /c:"%str%" a.txt >b.txt

findstr /v /i /c:"%str%" a.txt >c.txt

pause

 

5)对比两个文件a.txt,b.txt

diff -q a.txt b.txt

 

6)定时任务每日的11-12点之间每5分钟执行一次a.sh脚本

*/5 11-12 * * * a.sh

33 a,b两个文件,每个文件中各存放50亿个URL,每个URL64个字节,最大可使用的内存4G,如何找出a,b两个文件中同时存在的url

方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法

s 遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为)中。这样每个小文件的大约为300M。

s 遍历文件b,采取和a相同的方式将url分别存储到1000各小文件(记为)。这样处理后,所有可能相同的url都在对应的小文件()中,不对应的小文件不可能有相同的url。然后我们只要求出1000对小文件中相同的url即可。

s 求每对小文件中相同的url时,可以把其中一个小文件的url存储到hash_set中。然后遍历另一个小文件的每个url,看其是否在刚才构建的hash_set中,如果是,那么就是共同的url,存到文件里面就可以了。

方案2:如果允许有一定的错误率,可以使用Bloom filter,4G内存大概可以表示340亿bit。将其中一个文件中的url使用Bloom filter映射为这340亿bit,然后挨个读取另外一个文件的url,检查是否与Bloom filter,如果是,那么该url应该是共同的url(注意会有一定的错误率)。

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
小马甲

2 篇文章

作家榜 »

  1. majia 8 文章
  2. 刘娜娜 6 文章
  3. 在下选择隐性埋名 4 文章
  4. 上神白浅 3 文章
  5. 李家兴 2 文章
  6. 小马甲 2 文章
  7. 刘东鑫 1 文章
  8. 崔楷文 1 文章