联易融测开面试准备

文章目录

1.jmeter何postman的优缺点

Postman 更适合接口调试与轻量自动化;

JMeter 更适合高并发性能测试与复杂场景自动化。

2.测试方法有哪些?测试过程中主要用到了哪些测试方法?

黑盒测试白盒测试等等。项目中用到了黑盒测试,重点应用等价类和边界值设计输入测试用例;性能方法,用到了jmeter进行压力测试。单元测试,集成测试和系统测试都会用到

3.常见的黑盒测试和白盒测试方法分别有哪些?

黑盒测试包括等价类,边界值,判定表,因果图,等等,不关心代码的

白盒测试包括语句覆盖,条件覆盖,分支覆盖路径覆盖等等,关注代码的内部逻辑结果

4.说一下java的集合框架?

java的集合框架主要由Collection和Map两大体系组成。Collection体系包括List、Set、Queue等,Map体系主要存放键值对,包括HashMap,LinkedHashMap,TreeMap和支持并发的CocurrentHashMap。

5.HashMap的底层实现?

HashMap底层是通过"数据+链表+红黑树"的结构实现的,put操作通过hash扰动函数计算桶位置,如果冲突就插入链表或红黑树,链表长度大于8并且容量大于64会转为红黑树,提高查询效率。当链表长度大于阈值的话就扩容为原来的两倍。

6.你了解jvm吗?

主要干三件事:类加载,内存回收和垃圾管理。

类加载器主要负责把class文件加载到jvm内存中,遵循双亲委派模型。方法区主要存放类信息,常量池等等。还包括线程私有区域:栈和程序计数器。栈主要存放函数调用栈帧,程序计数器负责记录字节码执行的位置

7.HashMap和HashTable的区别?

HashMap是线程不安全的,性能更高;HashTable线程安全,所有的方法都带了synchronized。

HashMap允许null key和null value,HashTable完全不允许

一般来说要想线程安全,一般用的是ConcurrentHashMap而不是Hashtable

8.如何获取线程安全的map

1.cocurrenthashmp采用cas+synchronized锁实现

2.Collections.synchronzedMap包装hashmap

3.用hashtable

9.synchronized锁和lock锁的区别?

synchronized锁是java的内置锁,由JVM提供,可以修饰方法或者代码块,JVM会进行自动加锁和解锁,使用简单。Lock是java提供的显示锁,需要手动加锁和解锁但是更加灵活,支持中断等待,公平锁和多条件变量等等,适合复杂的多线程业务逻辑场景

10.线程池的参数和工作原理

java线程池是通过ThreadPoolExecutor来实现的,其核心参数包括核心线程数,最大线程数,救急线程生存时间,救急线程生存时间单位,线程工厂和拒绝策略。工作原理是:任务提交交给核心线程,满了给阻塞队列,阻塞队列满,交给救急线程,实在还多就启用拒绝策略

11.B+树的特点

1.所有的关键字都出现在叶子节点,叶子节点形成一个有序链表,便于范围查询和顺序查询。第二,非叶子节点只存储对应的索引信息,不存储实际的数据,第三是树高较低,便于快速查找。

12.mysql查询语句优化思路

第一索引优化,要查询的列尽量走索引。第二避免使用select *,结合explain分析查询计划。然后是表结构的设计要合理,最后是要学会使用缓存加快访问速度

13.notify和notifyAll的区别,获取的锁是什么锁

都是用于唤醒等待在对象监视器上的线程,notify随机唤醒一个等待线程notifyAll唤醒所有等待线程

14.了解哪些可重入锁,以及原理

可重入锁指的是一个线程多次获取同一把锁而不会阻塞,由synchronzied和reentranlock,其中synchronized由jvm提供控制其重入。reentranlock由持有锁的线程记录和计数器实现,重入次数加1计数器加1,计数器为0的时候释放锁。

同理redission实现的分布式锁也是这个实现逻辑

15.springmvc的执行流程如何?

客户端发起请求,前端控制器接收,根据url查找handlermapping对应的controller方法,调用handleradapter执行该方法,最后通过消息转换器转为json返回给客户端

16.MySQL的innodb和myIsam引擎的区别

innodb支持事务,行级锁,外键约束和崩溃回复,适合高并发读写

myisam不支持事务和外键,只支持表级锁,查询快但并发能力弱。

17.单例模式实现方式

饿汉式:类加载就创建实例,线程安全但是可能浪费

懒汉式:延迟实例化,第一次使用创建,加volite和锁保证线程安全。

枚举单例:使用枚举类实现,天然防止反射和序列化破坏单例,安全

18.mysql左连接和右链接的区别

左连接以左表为主,返回左表的所有记录。右连接以右表为主,返回右表的所有记录。

19.为什么选择测试?

实践过程中,对系统的整体质量,稳定性和问题排查更加感兴趣,已有的编程能力能更好的排查问题所在

20.测试用例包括哪些

编号,场景,输入,操作步骤,预期结果,实际结果,是否通过

21.给一支笔如何测试

写字功能是否横穿,笔帽是否正常打开,不同温度湿度是否出墨正常,握持手感,耐摔测试等等

22.linux生效环境变量的命令

linux下可以用export临时设置环境变量,用source让修改后的配置文件立即生效

永久生效需要修改一个配置文件

23. 查看linux日志头部、尾部

head -n 行数 文件名

tail -n 行数 文件名

24.linux查询文件中指定的字符串

grep 字符串 文件名

25.mysql中如何发现慢sql以及优化

可以开启慢查询日志,slow_query_long=ON, 设置超时时间。或者explain分析计划查看SQL执行计划,优化方式的话,尽量让查询的列命中索引

26.用过python的哪些库?

python的requests,pymysql进行数据库连接,numpy.pandas进行数值计算和清晰等等

27.

相关推荐
s***46981 小时前
【SpringBoot篇】详解Bean的管理(获取bean,bean的作用域,第三方bean)
java·spring boot·后端
hanxiaozhang20181 小时前
消息队列面试重点-1
面试·消息队列
动亦定1 小时前
页面导出大量数据导致响应超时解决方案
java·mysql
学历真的很重要2 小时前
LangChain V1.0 Short-term Memory 详细指南
后端·python·语言模型·面试·langchain·agent·ai编程
q***06292 小时前
解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
java·前端·spring
还是鼠鼠2 小时前
Redisson实现的分布式锁能解决主从一致性的问题吗?
java·数据库·redis·分布式·缓存·面试·redisson
d***95622 小时前
windows配置永久路由
java
LitchiCheng3 小时前
Mujoco 基础:获取模型中所有 body 的 name, id 以及位姿
人工智能·python
王桑.3 小时前
IO流高级流--转换流
java