测试面经

测试面试题目

1. Tcpudp区别

2. 进程和线程的区别

3. 输入www.baidu.com到解析完成的过程

4. 创建线程的三种方法

5. 线程的生命周期

6. 线程同步机制

7. Getpost区别

8. http的状态码

9. http连接(分为持久性连接和非持久性连接)

10. http请求报文格式以及代表含义

11. Tcp三次握手,四次挥手

12. 为什么会进行三次握手,不进行两次握手

13. Tcp为什么是可靠的

14. OSI七层模型以及相关作用

15. httphttps的区别

16. Cookiesession的区别

17. DNS是如何工作的

18. 什么是死锁,死锁的四个必要条件,怎么避免死锁

19. 什么是数据库事物

20. 数据库事物的特性以及解释

21. 什么是数据库索引,数据库索引的好处,是不是索引越多越好

22. 数据库的增删改查操作

23. 数据库查询

24. 内连接,外链接

25. 什么是左连接,右连接,外链接

26. 查找某个年级平均分小于60的学生等等这种sql语句

27. Linux简单命令相关

28. 查找文件中出现该字符的那行打印出来等等

29. 查询日志操作,查询动态日志tail -f

30. 测试的基本理论

31. 接口测试过程

32. 软件测试流程

33. 微信聊天测试方法

34. 测试用例的设计,必须包括哪几个条件

链表:

1. 合并两个有序的链表

public class 合并两个有序的链表 {

public static void main(String[] args) {


}


public static ListNode  mergeSort(ListNode list1,ListNodelist2) {

ListNode head=new ListNode(-1);

head.next=null;

ListNode root=head;

while(list1!=null && list2!=null) {

if(list1.data<list2.data) {

head.next=list1;

head=list1;

list1=list1.next;

}else {

head.next=list2;

head=list2;

list2=list2.next;

}

}

if(list1!=null) {

head.next=list1;

}

if(list2!=null) {

head.next=list2;

}

return root.next;

}

2. 环形链表

public class 环形链表 {

public static void main(String[] args) {


}


public static boolean hasCycle(ListNode head) {

if(head==null || head.next==null) {

return false;

}

ListNode fast=head.next.next;

ListNode slow=head;

while(slow!=fast) {

if(fast==null ||fast.next==null) {

return false;

}

fast=fast.next.next;

slow=slow.next;

}

return true;

}

}

3. 链表反转

public static void main(String[] args) {

ListNode list1=new ListNode(1);

ListNode list2=new ListNode(2);

ListNode list3=new ListNode(3);

ListNode list4=new ListNode(4);

ListNode list5=new ListNode(5);

list1.next=list2;

list2.next=list3;

list3.next=list4;

list4.next=list5;

//System.out.println(ReverseList(list1).data);

ReverseList(list1);

}


public static void ReverseList(ListNode head) {

ListNode pre=null;

ListNode tmp=null;

while(head!=null) {

tmp=head.next;

head.next=pre;

pre=head;

head=tmp;

}

while(pre!=null) {

System.out.print(pre.data+">");

pre=pre.next;

}

//return pre.next;

}

4. 删除排序链表中重复元素

public ListNode deleteDuplicates(ListNode head) {

ListNode current=head;

while(current!=null && current.next!=null) {

if(current.data==current.next.data) {

current.next=current.next.next;

}else {

current=current.next;

}

}

return head;

}

5. 冒泡排序(O(N*N)

public static void bubblesort(int []nums) {

int len=nums.length-1;

//执行的次数

for(int i=0;i<nums.length;i++) {

//进行数字交换

for(int j=len;j>i;j--) {

if(nums[j-1]>nums[j]) {

int temp=nums[j-1];

nums[j-1]=nums[j];

nums[j]=temp;

}

}

}


6. 快速排序

public static void quicksort(int []nums,int i,int j) {

int middle=partition(nums,i,j);

quicksort(nums,i,middle-1);

quicksort(nums,middle+1,j);


}

//排序是从小到大进行排序

public static int partition(int[] nums, int i, int j) {

//先定一个基准元素

int temp=nums[i];

while(i<j) {

//从后往前进行查找数据,当后面的数据比前面是数据小的时候,退出循环

while(i<j && nums[j]>=temp) {

j--;

}

//把找到更小的放到右边

nums[i]=nums[j];

//从前往后进行查找数据,当前面的数比后面的数大的时候,退出循环

while(i<j && nums[i]<temp) {

i++;

}

//把找到更大的数放到了右边

nums[j]=nums[i];

}

nums[i]=temp;


return i;

}

7.简单选择排序,将数组分为有序区和无序区,每次从无序区中取出最小的放到有序区中(o(n*n)

public static void selectsort(int []nums) {

int i,j,k;

for(i=0;i<nums.length;i++) {

k=i;

for(j=i+1;j<nums.length;j++) {

if(nums[j-1]>nums[j]) {

k=j;

}

}

if(k!=i) {

int temp=nums[k];

nums[k]=nums[i];

nums[i]=temp;

}

}


}

7. 二叉树最长长度

public static int longestRoad1(TreeNode root) {

if(root==null) {

return 0;

}

int left=longestRoad1(root.left);

int right=longestRoad1(root.right);

return left>right?left+1:right+1;

}



更多内容 面经测试



#测试##面试题目#
全部评论
796156532 可以加群讨论交流下
点赞 回复 分享
发布于 2020-05-30 12:01
请问是什么公司的啊?
点赞 回复 分享
发布于 2020-05-30 11:59
你好,请问测试为什么还要问数据结构的东西呀?感谢解答
点赞 回复 分享
发布于 2020-05-30 11:21

相关推荐

📍面试公司:北大软件(郑州)🕐面试时间:2026.3💻面试岗位:JAVA开发实习❓面试问题:1.自我介绍2.介绍项目的背景,你为什么要做这个项目?3.根据项目内容进行功能具体是如何实现的的追问3.如何进行性能优化的?3.部分模块的实现流程4.为什么选择这些技术栈?在引入新技术时,你的具体学习路径和验证方法是什么?5.如果代码上线后出现接口404错误,但本地和测试环境都是正常的,你会如何快速定位和解决?6.如何排查“文件删除失败”的问题?7.如何排查“接口响应慢”的问题?8.考察SQL复杂查询、高级关键字(如列转行、递归查询)的掌握程度。9.解释DELETE和DROP操作的本质区别。10.你在项目中写过的最复杂的SQL是什么?如何实现自定义查询(如SQL拼接)?11.解释TCP和UDP的核心区别。12.描述HTTPS的握手过程。13.解释常见的HTTP状态码14.常用的Linux命令有哪些?15.对HTML、DOM、JavaScript的掌握程度如何?16.如何处理前后端联调中的参数校验和异常?17.在项目中是如何进行异常处理的?18.如何使用MyBatis的标签(如&lt;where&gt;)来优化动态SQL,避免冗余的AND/OR?19.如何实现权限控制?前后端在权限控制上如何协作?20.你似乎经常使用AI来解答技术问题,你如何看待这一点?如何平衡AI工具的使用和深入理解底层原理?21.在项目中遇到一个具体的技术难题(如爬虫代码过时、被反爬)时,你的解决思路是什么?22.在项目中,你是如何决定一个功能应该放在前端还是后端实现的?考量的因素有哪些?23.请分享一个你通过自学成功掌握并应用一项技术的具体案例。🙌面试感想:这是我的第一个面试,面试时间一个小时左右,问的还可以不偏也不算难,感觉主要在意自学能力以及对于问题的处理思路,“为什么”比“是什么”更重要:不仅问技术点,更追问选型动机、设计考量和问题背后的原因。关注点赞私信给答案
查看25道真题和解析
点赞 评论 收藏
分享
评论
1
30
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务