8.29 网易面试准备

一、自我介绍

二、java题

1、给一个字符串,根据空格把单词分开,对单词排序,并将每个单词翻转


import
java.util.Arrays; import java.util.Scanner; public class Test2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); String[] arr = str.split(" "); Arrays.sort(arr); for (int i = 0; i < arr.length; i++) { if (i == arr.length - 1) System.out.print(new StringBuilder(arr[i]).reverse().toString()); else System.out.print(new StringBuilder(arr[i]).reverse().toString() + " "); } } }

 

2、链表中节点的插入

 

3、堆和栈的区别

堆和栈的概念:

  • 栈内存:栈内存首先是一片内存区域,存储的都是局部变量,凡是定义在方法中的都是局部变量(方法外的是全局变量),for循环内部定义的也是局部变量,是先加载函数才能进行局部变量的定义,所以方法先进栈,然后再定义变量,变量有自己的作用域,一旦离开作用域,变量就会被释放。栈内存的更新速度很快,因为局部变量的生命周期都很短。       
  • 堆内存:存储的是数组和对象(其实数组就是对象),凡是new建立的都是在堆中,堆中存放的都是实体(对象),实体用于封装数据,而且是封装多个(实体的多个属性),如果一个数据消失,这个实体也没有消失,还可以用,所以堆是不会随时释放的,但是栈不一样,栈里存放的都是单个变量,变量被释放了,那就没有了。堆里的实体虽然不会被释放,但是会被当成垃圾,Java有垃圾回收机制不定时的收取

区别:

  • 栈内存存储的是局部变量而堆内存存储的是实体;
  • 栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;
  • 栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收

4、冒泡排序是否稳定;快排是否稳定,以及快排的思想

 冒泡排序稳定

快排不稳定:https://www.cnblogs.com/yinqanne/p/9519863.html

 

三、计算机网络

1、TCP和UDP的区别?QQ用的是哪一种?

TCP/ IP传输层的两个主要协议都是因特网的重要标准,传输控制协议TCP(Transmission Control Protocol)[RFC 768]、用户数据报协议UDP

  • TCP(Transmission Control Protocol):可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应用:Web浏览器;电子邮件、文件传输程序。
  • UDP(User Datagram Protocol):不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文,尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。
  • TCP协议中,当客户端退出程序或断开连接时,TCP协议的recv函数会立即返回不再阻塞,因为服务端自己知道客户端已经退出或断开连接,证明它是面向连接的;
  • 而在UDP协议中,recvfrom这个接收函数将会始终保持阻塞,因为服务端自己不知道客户端已经退出或断开连接,证明它是面向无连接的)。

 

2、TCP是怎么建立连接的?每次发送的报文是什么?

https://www.cnblogs.com/yinqanne/p/9524643.html

 3、HTTP协议

https://www.cnblogs.com/yinqanne/p/9526179.html

4、如果你的电脑连不上网了,怎么排查原因?

https://www.cnblogs.com/yinqanne/p/9526387.html

5、长连接和短连接

https://www.cnblogs.com/yinqanne/p/9526671.html

6、连接重置

7、内存的方式 内存泄漏

8、网络协议有哪些

https://www.cnblogs.com/yinqanne/p/9526722.html

9、标志位数字

10、vpn 的工作原理

11、常用的端口号,22 21端口号都是什么

 

四、数据库

1、数据库的左连接与右连接的区别?

  • 左连接:左边有的,右边没有的为null
  • 右连接:左边没有的,右边有的为null
  • 内连接:显示左边右边共有的

2、MYSQL与NoSQL开源数据库的特点及优势

3、ES搜索查询的代码

4、数据库的索引

 

四、测试相关

1、为什么报测试开发岗位?对该岗位有什么了解

责任感

成就感

其次,新鲜感。我做功能测试和可访问性测试,新功能的探索和发现,是我个人一直爱接新功能胜过做回归的主要原因。新工具新技术的发现和学习是个有趣的过程。囤新奇工具、学新鲜技术,都是有趣的事情。

  • 思考什么可能导致项目中的新特性无法工作,以及如何让问题可以复现
  • 在执行测试时,制定出最佳的测试执行策略是很有意思的
  • 随着测试用例,去做一些证实你怀疑的尝试,真的很有意思
  • 什么类型的工具在数据驱动测试时能派上用场?基于模块的测试怎么样?在敏捷开发过程中,最佳的自动化测试策略是什么?能够拥有几种不同的测试框架和工具的使用经验。能对新的工具进行快速实验。使用手工测试这个特性会怎样?我们如何表现结果,并和团队成员沟通?这都需要不停的学新。学习去设计好的测试框架,学习新的语言和工具,学习如果表现测试结果,学习如何优化测试时间

测试岗位的了解:

  • 参与软件需求说明书的评审,对软件要实现的功能有一个大致的了解
  • 编写测试计划,规划详细的测试方案,编写测试用例
  • 根据测试计划搭建和维护测试环境
  • 执行测试工作,提交测试报告
  • 对测试中发现的问题进行详细分析和准确定位,与开发人员讨论缺陷饥饿解决方案
  • 提出对产品的进一步改进的建议,并评估改进方案是否合理。对测试结果进行总结和统计分析,对测试进行跟踪,并提出反馈意见

 

2、测试开发是干嘛的?

是软件质量的把关者,主要工作是编写自动测试脚本程序并担任测试编程工作

3、对一个登录界面怎样设计测试用例

 https://www.cnblogs.com/yinqanne/p/9526860.html

4、你用shell如何来执行测试?请举出例子

 

5、一个http请求的网页请求,如何来设计测试工具来验证:格式和数据,怎样设计相应的测试用例?

https://www.cnblogs.com/yinqanne/p/9528071.html

 

6、一个网页如何来设计测试工具来验证它是否符合预定的功能需求?

 

7、Linux中如何通过几个简单的指令得到:第三行的数据,假设你已经得到该页的数据

      sed -n '3p' text.txt

8、提出问题,测试开发工程师的职业生涯规划和技能

9、网易云音乐评论功能的测试 如何写脚本测试 评论显示(按时间)

 

10、产品漏洞 恶意刷单 该如何应对 及时止损

 

 

 

 

 

 

 

 

 

 

posted @ 2018-08-30 09:39  谁叫土豆豆豆  阅读(285)  评论(0编辑  收藏  举报