【面试】测试/测开(ING)

63. APP端特有的测试

参考:APP专项测试、APP应用测试
crash和anr的区别
1)网络测试
2)中断测试
3)安装、卸载测试
4)兼容测试
5)性能测试(耗电量、流量、内存、服务器端)
6)安全性测试(密码、sql注入、权限)
7)UI测试(横竖屏、手势、键盘等的自适应)
8)升级测试(考虑内存)
9)稳定性测试(使用monkey)
10)接口测试
11)其他测试(如上传文件、图片、视频)

64. 服务异常情况验证

参考:异常测试
浅谈异常测试
服务异常

65. 用什么做性能测试

66. Jmeter如何设计测试场景

67. 压测怎么做

69. UI自动化元素定位方法

参考:UI自动化元素定位
UI元素定位

70. gpu和cpu有什么区别

71. gpu性能受哪些因素的影响

72. 共享内存,线程安全吗?怎么解决?

73. 什么情况下会发生死锁?怎么解决?

74. 进程上下文切换需要做哪些事情?上下文保存在哪里?

75. 单例模式怎么实现的?怎么判断一个实例是不是已经创建了呢?线程安全吗?加锁会有什么问题?怎么优化?

76. 视频静态解码和动态解码?

77. 逆层序遍历

78. 用户上传照片如何测试

79. 线上bug如何解决?完成处理流程?

80. 前端页面无法展示,如何找bug?

81. 服务端接口有问题怎么定位bug

82. 字符串数组最长公共子串

83. 如果UI经常变更,UI自动化怎么解决

参考:UI自动化测试01、UI自动化02

① 对比较稳定的功能和模块设置自动化用例

84. 提一个bug需要写明什么

参考:提BUG的内容

测试环境、测试设备/型号、软件版本、bug错误类型、bug所属模块、重现概率、优先级、严重级别、复现步骤、预期结果、实际结果、日志、bug状态以及标题、bug解决人

85. 怎么保持redis数据的时效性

86. 接口实现与基类继承的差异

87. coding过程中什么才是符合标准的好代码

88. Java基本数据类型有哪些?自动装箱、拆箱?

89. 异常的分类?如何处理异常?

参考:异常的的分类以及处理

异常

90. Mysql的索引如何实现?B+树的结构?是逻辑结构还是线性结构?分别介绍逻辑结构、线性结构的数据结构有哪些?

91. sql:一页数据20条记录,显示第五页的记录?

已知每页显示m条数据,求第n页显示的数据
提示: 关键是求每页的开始行索引

① 查询学生表,获取第n页数据的SQL语句:
select * from students limit (n-1)*m, m

② 一页数据20条记录,显示第五页的记录
select 8 from table limit (5-1)*20, 20;

92. 购物车下单功能需要进行哪些测试

93. 了解哪些排序算法?哪些排序算法效率高一些?时间复杂度如何?

94. 两个无序二叉树合并为有序二叉树

95. 贪心算法和动态规划的区别?

96. 分治思想和动态规划的区别

97. 线程资源以来死锁问题,如何避免?

98. IO多路复用

99. InnoDB的索引类型

100. MySQL的锁机制,悲观锁和乐观锁的区别

参考:MySQL乐观锁和悲观锁、MySQL从乐观到悲观

1)共享锁S和排他锁X
2)乐观锁一般是使用版本号来实现的,一般使用select … for update来实现悲观锁

101. sql:查询第50到100条数据

① 查询前100条数据
select * from A limit 0,100;

② 查询50-100条数据
select * from A limit 49,51;

select * from A limit s, n;
// s 表示起始位置,是不包含状态,也让就是说从s+1开始输出
// n 表示多少条数据

102. 依赖注入的方式

103. IOC和AOP的概念,IOC的实现机制

104. SpringBoot配置文件的加载顺序?yam和properties?

105. 讲一下collection和map

106. List和Set有什么区别?Set里面可以有null值吗?List是不是可以有多个null值

参考 :List和Set的区别、List和Set集合

① 都继承自Collection接口
② null值
③ 重复值
④ 有序性

107. hashMap和hashTable有什么区别?Hash Map的底层原理?如何解决Hash冲突?

参考:HashMap和HashTable的区别
哈希冲突

1)区别:
① 读写的线程安全
② null值的存储:map中key和value均可以是null,但是table中不允许存储null

2)哈希冲突避免:
哈希函数设计、负载因子调节

3)哈希冲突解决:
闭散列(线性探测,保存到下一个位置)、开散列(链表存储)

108. 一张表用a,b,c三个字段作为联合索引,一条sql语句命中了a和b是否会走索引?

参考:组合索引

组合索引 有“最左前缀”原则,遇到范围查询(>、<、between、like)就会停止匹配。

109. 基于TCP的协议

110. TLS握手过程

111. session和cookie

112. 页面置换算法LRU?还有其他的页面置换算法吗?

113. 介绍线程池以及对线程池的认识?

114. 哈希表与红黑树的认识?

115. 抽象类的使用场景

116. MySql的事务

117. 分布式锁

118. StringBuffer、StringBuilder为什么是可变的?

StringBuilder、StringBuffer可变长

1)String:底层是char数组,数组是不可变长的;再者,数组是使用final修饰的,该引用不可以再指向其他对象
2)StringBuffer和StringBuilder:内部实际上是一个char[ ]数组,这个char[ ]数组没有被final修饰,StringBuffer和StringBulider的初始化容量应该为16,当存满之后会进行扩容,底层调用了数组拷贝的方法:System.arraycopy()…扩容的,所以StringBuffer/StringBuilder适用于字符串的频繁拼接操作,并且StringBuffer是线程安全的,StringBuilder是非线程安全的。(扩容机制:原数组大小*2+2)

119. 为什么TCP比UDP长一点?

① TCP 有可变长的「选项」字段,而 UDP 头部长度则是不会变化的。
② TCP是可靠传输的,其有三次握手和四次挥手,所需要使用的序列号以及确认号需要进行存储;另外,还有滑动窗口来进行流量控制等以保证数据的安全性
TCP

③ UDP的头部长度是不会改变的
UDP

120. Java怎么实现单例继承?手写线程安全的单例继承

六种单例模式
高并发下线程安全的单例模式

1)定义:确保一个类只有一个实例,并提供该实例的全局访问点
2)设计要素:一个私有构造函数 (确保只能单例类自己创建实例)、一个私有静态变量 (确保只有一个实例)、一个公有静态函数 (给使用者提供调用方法)
3)类型:
① 懒汉:先不创建实例,当第一次被调用时,再创建实例,所以被称为懒汉式。

// 线程安全的懒汉模式
public class Singleton {
    private static Singleton uniqueInstance;
    
    private static singleton() {
    }
   
    public static synchronized Singleton getUinqueInstance() {
        if (uniqueInstance == null) {
            uniqueInstance = new Singleton();
        }
        return uniqueInstance;
    }
    
}

② 饿汉: 先不管需不需要使用这个实例,直接先实例化好实例 (饿死鬼一样,所以称为饿汉式),然后当需要使用的时候,直接调方法就可以使用了。

public class Singleton {
    
    private static Singleton uniqueInstance = new Singleton();
    
    private Singleton() {
    }
    
    public static Singleton getUniqueInstance() {
        return uniqueInstance;
    }
    
}

③ 静态内部类

public class Singleton {
    
    private Singleton() {
    }
    
    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }
    
    public static Singleton getUniqueInstance() {
        return SingletonHolder.INSTANCE;
    }
     
}

④双检查机制

public class MySingleton {

    //使用volatile关键字保其可见性
    volatile private static MySingleton instance = null;

    private MySingleton(){}

    public static MySingleton getInstance() {
        try {  
            if(instance != null){//懒汉式 

            }else{
                //创建实例之前可能会有一些准备性的耗时工作 
                Thread.sleep(300);
                synchronized (MySingleton.class) {
                    if(instance == null){//二次检查
                        instance = new MySingleton();
                    }
                }
            } 
        } catch (InterruptedException e) { 
            e.printStackTrace();
        }
        return instance;
    }
}

4)使用场景
① 频繁实例化然后又销毁的对象,使用单例模式可以提高性能。
② 经常使用的对象,但实例化时耗费时间或者资源多,如数据库连接池,使用单例模式,可以提高性能,降低资源损坏。
③ 使用线程池之类的控制资源时,使用单例模式,可以方便资源之间的通信。

121. SpringBoot的关键注解? @SpringBootApplication是一个组合注解,是由哪些构成的?

参考:SpringBootAppication注解、SpringBootApplication注解02
SpringBoot注解
1)注解类型:
① 核心注解:@SpringBootApplication:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan
② 常用注解:@Component、@Bean、@Import、@Autowired、@Configuration、@VAlue(注入 application.properties 或 application.yml 配置的属性的值)

2)@SpringBootApplication注解:

/**
 * @SpringBootApplication组合注解包含以下注解:
 * 
 * @Target(ElementType.TYPE) :用于描述注解的使用范围
 * @Retention(RetentionPolicy.RUNTIME) :保留,指定保留时间,三个枚举,分别为source,class,runtime
 * @Documented:可被javadoc等工具记录,注解类型信息会保存到生成的文档中
 * @Inherited:个人认为是一个成员变量,父类被子类覆盖之后无法继承,子类中可以继承父类中未被覆盖的父类注解的值
 * @SpringBootConfiguration:包含@Target(ElementType.TYPE)
 *                                                     @Retention(RetentionPolicy.RUNTIME) :同上述
 *                                                     @Documented:同上述
 *                                                     @Configuration:用于配置,包含以下注解
 *                                                                                     @Target(ElementType.TYPE) :同上述
 *                                                                                     @Retention(RetentionPolicy.RUNTIME) :同上述
 *                                                                                     @Documented :同上述
 *                                                                                     @Component:spring内置组件注解,用途是让spring容器扫描
 * @EnableAutoConfiguration:开启自动配置,包含以下注解
 *                                                     @Target(ElementType.TYPE):同上述
 *                                                     @Retention(RetentionPolicy.RUNTIME):同上述
 *                                                     @Documented:同上述
 *                                                     @Inherited:同上述
 *                                                     @AutoConfigurationPackage:自动配置包含注解的类
 *                                                     @Import(AutoConfigurationImportSelector.class)
 * @ComponentScan:开启包扫描,默认扫描同级及当前包下内容,包含以下注解
 *                                         @Retention(RetentionPolicy.RUNTIME)
 *                                         @Target(ElementType.TYPE):同上述
 *                                         @Documented:同上述
 *                                         @Repeatable(ComponentScans.class):允许在同一申明类型(类,属性,或方法)的多次使用同一个注解
 */
@SpringBootApplication


122. 编程:给你两个线程,交替修改同一个变量10次?

参考:多线程交替打印
思路:其实这类问题本质上都是线程通信问题,思路基本上都是一个线程执行完毕,阻塞该线程,唤醒其他线程,按顺序执行下一个线程。

1)synchronized + wait/notifyAll
2)join()
3)Lock

123. ThreadLocal和synchronized的区别?

124. JVM内存模型?JVM方法区主要存储哪些类型数据?

124. Spring Bean 和new 类的区别

125. 线程池由哪几种类型

126. JVM哪部分会出现OOM问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/229151.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

十、数据读/写流程

1、数据写入流程&#xff1a; &#xff08;1&#xff09;基础流程 ~客户端发送请求 ~NameNode做判断&#xff0c;是否具有权限&#xff0c;空间是否充足 ~返回地址&#xff0c;告诉客户端一个datanode&#xff0c; ~向指定的datanode发送数据包&#xff0c; 副本的复制和备…

Liunx系统使用超详细(五)~命令符号

目录 一、逻辑符号 1.1&& 1.2|| 二、连接符号 2.1| 2.2> 2.3>> 2.4< 三、分隔符号 3.1 &#xff1b; 在Linux中&#xff0c;逻辑符号和连接符号常用于构建命令行中的逻辑操作和管道操作。下面对这两种符号进行总结描述。 一、逻辑符号 1.1&…

管理类联考——数学——真题篇——按题型分类——充分性判断题——秒杀

题型结构 问题求解&#xff1a;通过计算求解&#xff0c;从五个选项中选出一个正确答案。条件充分性判断&#xff1a;问所给的条件&#xff08;1&#xff09;&#xff08;2&#xff09;能否推出题设的结论&#xff0c;共有五个选项&#xff0c;从中选出正确的一个。&#xff0…

Qt练习题

1.使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是否…

ubuntu18.04配置cuda+cudnn+anconda+pytorch-gpu+pycharm

一、显卡驱动安装 执行nvidia-smi查看安装情况 二、cuda安装 cuda官网下载cuda_11.6.2_510.47.03_linux.run&#xff0c;安装执行 sudo sh cuda_11.6.2_510.47.03_linux.run提升安装项&#xff0c;驱动不用安装&#xff0c;即第一项&#xff08;Driver&#xff09;&#xff…

int(1) 和 int(10) 的区别

int(1) 和 int(10) 的区别 最近遇到个问题&#xff0c;有个表的要加个user_id字段&#xff0c;user_id字段可能很大&#xff0c;于是我提mysql工单alter table xxx ADD user_id int(1)。领导看到我的sql工单&#xff0c;于是说&#xff1a;这int(1)怕是不够用吧&#xff0c;接…

springboot智慧导诊系统源码:根据患者症状匹配挂号科室

一、系统概述 医院智慧导诊系统是在医疗中使用的引导患者自助就诊挂号&#xff0c;在就诊的过程中有许多患者不知道需要挂什么号&#xff0c;要看什么病&#xff0c;通过智慧导诊系统&#xff0c;可输入自身疾病的症状表现&#xff0c;或选择身体部位&#xff0c;在经由智慧导诊…

【EtherCAT详解】基于Wireshark的EtherCAT帧结构解析

写在前面 EtherCAT的报文比较繁琐,且一些参考书籍错误较多,且晦涩难懂,对于初学者,很难快速的入门。本文适用于有一定基础的研究者,如对报文有一些研究、对canopen协议有一定了解、并且对TwinCAT有了解的研究者。当然,对于初学者来说,也是很好的引导,少走很多弯路。本…

云上巴蜀丨云轴科技ZStack成功实践精选(川渝)

巴蜀——古政权必争之地 不仅拥有优越的战略位置 而且拥有丰富的自然资源&#xff0c;悠久的历史文化 如今的川渝经济、人口发展迅速 2023年前三季度&#xff0c;四川与重庆GDP增速均超过国家平均线&#xff0c;为6.5%为5.6% 川渝经济发展带动数字化发展浪潮 云轴科技ZSt…

智能外呼是什么意思?智能外呼的工作原理是什么?

智能外呼是什么意思&#xff1f; 智能外呼是指利用人工智能技术实现对电话外呼的优化和自动化&#xff0c;以提高外呼效率和质量。智能外呼可以根据客户的需求和行为进行智能化的拨号、语音识别、语音合成、自动化问答等操作&#xff0c;从而实现更高效、更准确的客户沟通和营…

Linux高级管理-搭建网站服务

在Ihternet 网络环境中&#xff0c;Web 服务无疑是最为流行的应用系统。有了Web站点&#xff0c;企业可以充分 展示自己的产品&#xff0c;宣传企业形象。Web站点还为企业提供了与客户交流、电子商务交易平台等丰富 的网络应用。部署与维护Web 服务是运维工程师必须掌握的一个技…

2.修改列名与列的数据类型

修改字段名与字段数据类型 1.修改字段名 有时&#xff0c;在我们建好一张表后会突然发现&#xff0c;哎呀&#xff01;字段名貌似写错了&#xff01;怎么办&#xff1f;要删了表再重新建一个新表吗&#xff1f;还是要删了这个字段再新建一个新的字段&#xff1f; 都不用&…

【排序算法】希尔排序

一&#xff1a;基本介绍 插入排序介绍 1.1 插入排序存在问题 我们看简单的插入排序可能存在的问题 数组 arr {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是&#xff1a; {2,3,4,5,6,6}{2,3,4,5,5,6}{2,3,4,4,5,6}{2,3,3,4,5,6}{2,2,3,4,5,6}{1,2,3,4,5,6} 结论:…

hive 命令行中使用 replace 和nvl2 函数报错

1.有时候在命令行的情况下使用 replace 函数时会报错 这个时候可以使用 translate 代替 2.有时候使用 nvl2() 函数的时候会报错 这个时候可以用 case when 来代替

AMC8竞赛第一题很简单?来看看历年的真题体会一下(含详细解析)

作为具有全球影响力的&#xff0c;面向中小学生的数学竞赛&#xff0c;AMC8在中国的知名度和参与人数也越来越多。 和国内的各种数学比赛相比&#xff0c;AMC8有一个很有意思的地方&#xff1a;全部是单项选择题&#xff0c;没有其他题型。所以不用担心做不完&#xff0c;毕竟…

【Angular开发】2023年促进您开发的最佳Angular库

如果你是一名开发人员&#xff0c;你可以理解平台的重要性&#xff0c;它可以加快开发过程&#xff0c;显著减少编码时间和工作量。 根据StackOverflow开发者2021年的调查&#xff0c;Angular是其中一个令人惊叹的平台&#xff0c;它一直赢得人们的喜爱&#xff0c;并获得了全…

被动副业机赚钱项目教程,Docker一键安装教程

被动副业机赚钱项目教程&#xff0c;Docker一键安装教程 Docker一键运行 软件下载 视频教程 /opt/wxedge_storage 路径换成你设备里面的路径即可&#xff0c;其余参数不用变&#xff0c; 镜像名为onething1/wxedge 更多安装说明&#xff0c;可参考官方文档&#xff1a;容器魔…

Vue:用IDEA开发Vue,标签语法爆红问题处理

一、场景描述 我在IDEA中&#xff0c;学习Vue课程。 入门学习时&#xff0c;是在html文件中&#xff0c;script引入vue.js文件方式。 此时&#xff0c;在html文件中用v-标签&#xff0c;爆红。 二、解决办法 打开 菜单栏 File - Settings 选择 Editor - Files Type&#xf…

基于Java OpenCV实现图像透视变换,图片自动摆正

如题&#xff0c;效果图如下&#xff1a; 稍后上源码。

Java网络编程——Java语言的反射机制

在Java运行环境中&#xff0c;对于任意一个类&#xff0c;能否知道这个类有哪些属性和方法&#xff1f;对于任意一个对象&#xff0c;能否调用它的任意一个方法&#xff1f;答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自Java语言的反射&#xff08;Refl…
最新文章