编程题
- 题目:输入一个英文句子,翻转句子中单词的顺序,但单词字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号始终放在最末尾。例如输入“I am a student.”,则输出“student a am I.” ,少考虑空字符串,面试官还提醒了一下
这道题目分为需要原地实现和不需要原地实现两种,中间空格分为一个或多个空格。
- 给你一堆名字,名字都是由A-Z组成 怎么查最快
字典树或者Hash
基础
- 面试官以为我是c++ 我就说打acm 的时候用的c++ 后来只准备了java 的语言基础,让我说一下c/c++ 的区别,什么是面向对象,什么是面向过程。
这道题目比较基础
- DNS 的解析过程
这道题目问的也比较多
让我们举一个例子来详细说明解析域名的过程.假设我们的客户机如果想要访问站点:www.linejet.com此客户本地的域名服务器是dns.company.com , 一个根域名服务器是NS.INTER.NET , 所要访问的网站的域名服务器是dns.linejet.com,域名解析的过程如下所示.
(1)客户机发出请求解析域名www.linejet.com的报文
(2)本地的域名服务器收到请求后, 查询本地缓存, 假设没有该纪录, 则本地域名服务器dns.company.com则向根域名服务器NS.INTER.NET发出请求解析域名www.linejet.com
(3)根域名服务器NS.INTER.NET收到请求后查询本地记录得到如下结果:linejet.com NS dns.linejet.com (表示linejet.com域中的域名服务器为:dns.linejet.com ), 同时给出dns.linejet.com的地址,并将结果返回给域名服务器dns.company.com
(4)域名服务器dns.company.com 收到回应后,再发出请求解析域名www.linejet.com的报文.
(5)域名服务器 dns.linejet.com收到请求后,开始查询本地的记录,找到如下一条记录:www.linejet.com A 211.120.3.12 (表示linejet.com域中域名服务器dns.linejet.com的IP地址为:211.120.3.12),并将结果返回给客户本地域名服务器dns.company.com
(6)客户本地域名服务器将返回的结果保存到本地缓存,同时将结果返回给客户机.
这样就完成了一次域名解析过程.
- 问了java 之间进程的通信方式,(不会 求解答) 就答的操作系统系之间的,java的多线程和多进程的区别,不会就扯java进程可以拥有多个线程,线程之间可以共享进程的资源,java的锁介绍一下,有啥区别 说了sync 和 lock 一个是jvm 一个是jdk
Java 多线程问题
- 还有一个和操作系统相关的 忘记了,我没答上来直接说的不会 想起来再加上
- 计算机网络,tcp udp 区别 使用场景,tcp 可靠传输,超时重传介绍一下,介绍一下滑动窗口
- 数据库了解吗,说一下数据库语句的执行顺序,说几个操作 我答的 select * from table 添加是什么 insert into table() values () 有几种插入方式,我说单条和多条,有啥区别 我说在后面加逗号
数据库知识
场景题
- 给你一栋楼,楼里面有房间 电梯啥的 怎么弄(具体记不太清楚) 封装成 房间的类,电梯的类,然后每个东西都搞成类,然后又问 每个房间不太一样怎么办,里面的装修风格要也不一样,就说把相同的抽取出来,然后用装饰着模式,
然后又说 一栋楼里面有 各种电梯,人乘的,载货的,等等 我说用适配器模式,然后问我具体怎么实现,我说忘了,就是把对象适配成用户想要的 - 面试时间1h左右,本来面试官想让我写代码的,他发的网址加载很慢,后来就放弃了
后来问他说 最后场景题答得可能不好 问他应该怎么答,他就说答的还可以,就是抽取共同特点的时候还要注意一下
问了一下面试有几轮, 希望能给二面