测试即(验证产品特性是否符合用户需求、检测系统是否能满足客户需求,是否能正常运行,数据会有没有正确)
测试流程就是:需求评审,编写测试计划,设计测试用例,执行测试用例,bug的提报与验证,测试报告
功能测试:验证软件功能是否需求规格说明
接口测试:验证软件系统之间的接口能否正常使用
性能测试:验证软件在各种工作负载和压力下的性能表现
开发测试冲突:双方对需求理解不一致,可以问产品达成一致,产品是最懂项目需求的人
对项目做过什么测试:功能测试接口测试兼容测试
讲一下面向对象是什么?
网络编程了解吗?讲一下TCP,UDP的特性
讲一下多线程安全问题
讲一下哈希表的实现过程
SpringBoot的启动流程
Spring Boot的启动流程如下:
加载Spring Boot的启动类:Spring Boot应用的入口是一个标注有@SpringBootApplication注解的类。该注解会自动扫描并加载所有标注有@Component、@Controller、@Service、@Repository等注解的类。
创建Spring应用上下文:通过SpringApplication类的静态方法run()创建Spring应用上下文。该方法会根据配置信息加载并初始化所有的Bean,并创建Bean之间的依赖关系。
执行Spring Boot的自动配置:Spring Boot会根据classpath下的配置文件(如application.properties或application.yml)自动配置应用的各个组件。自动配置使用了条件注解(@Conditional)来根据条件选择是否配置某个组件。
启动内嵌的Web服务器:Spring Boot支持内嵌的Web服务器,如Tomcat、Jetty等。根据配置信息,Spring Boot会自动选择并启动相应的Web服务器。
运行应用程序:Spring Boot会扫描并加载所有标注有@Controller、@RestController等注解的类,并根据请求路径和请求方法映射到相应的处理方法。
总结起来,Spring Boot的启动流程包括加载启动类、创建应用上下文、执行自动配置、启动内嵌的Web服务器和运行应用程序。这些步骤使得Spring Boot应用能够快速、简单地启动和运行。
实时操作系统和非实时操作系统的区别
冒烟测试
B站比特大博哥
公司(九毛九餐饮、CVTE视源股份、多益网络、字节、科大讯飞、TPlink、美团、滴滴)
1.在浏览器中输入https://www.wind.com.cn,其中https代表什么
A.地址 B.资源 C.协议 D.主机
http://www.jianshu.com/index.html?name=zhangsan&age=25#dowell
协议 域名 路径 查询参数 锚点 复制代码
2.无符号二进制数1000110转换为十进制数是多少
A.68 B.70 C.72 D.74
3. 下列关于OSI参考模型分层的选项中,分层相邻并且顺序从低到高的有:
A.物理层-数据链路层-网络层 B.数据链路层-网络接口层-网络层
C.传输层-会话层-表示层 D.表示层-会话层-应用层
OSI七层:物理层-数据链路层-网络层-传输层-会话层-表示层-应用层
TCP/IP五层:物理层-数据链路层-网络层-传输层-应用层
4.算法编程题:找最小数
给一个正整数 NUM1
,计算出新正整数 NUM2
。NUM2
为 NUM1
中移除 N
位数字后的结果,需要使得 NUM2
的值最小。
核心思路:要让剩下的数字最小,就要保证靠前的数字尽可能小
拿1432219举例,移除3位,最终结果为1219
public String removeKdigits(String num, int k) {
Stack<Character> stack = new Stack<>();
for (char digit : num.toCharArray()) {
while (k > 0 && !stack.isEmpty() && stack.peek() > digit) {
stack.pop();
k--;
}
stack.push(digit);
}
// 删除k个字符
for (int i = 0; i < k; i++) {
stack.pop();
}
// 组合剩余字符
StringBuilder sb = new StringBuilder();
while (!stack.isEmpty()) {
sb.insert(0, stack.pop());
}
// 移除前导零并返回结果
while (sb.length() > 0 && sb.charAt(0) == '0') {
sb.deleteCharAt(0);
}
return sb.length() == 0 ? "0" : sb.toString();
}
5.算法编程题:数组中的第k个最大元素
给定整数数组 nums
和整数 k
,请返回数组中第 k
个最大的元素
拿[3,5,4,1,2]举例,整数k=2,最终结果为4
public int findKthLargest(int[] nums, int k) {
// 这里,我们创建了一个没有任何参数的优先级队列
// 在这种情况下,优先级队列的头是队列中最小的元素
// 元素将按升序从队列中移除
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
// 遍历数组
for (int i = 0; i < nums.length; i++) {
// 在遍历过程中,对每个访问的元素采取如下的判断
// 优先队列里面的元素个数达到了 k 个
// 并且当前访问的元素小于了优先队列中的最小值,即队头元素
// 说明当前访问的元素没有资格加入到优先队列中
if ( minHeap.size() == k && nums[i] <= minHeap.peek() ) {
// 那么继续访问下一个元素
continue;
}
// 将元素插入队列,在优先队列内部会进行排序操作
// 使得优先级队列的头是队列中最小的元素
minHeap.offer(nums[i]);
// 插入了当前元素之后,如果个数超过了 k
if (minHeap.size() > k) {
// 那么需要把最小的元素移除
minHeap.poll();
}
}
// 遍历结束之后,minHeap 存储了数组的前 k 个最大的元素
// 而第 k 大的元素就是优先队列 minHeap 中的最小值
return minHeap.peek();
}