测试开发基础

这篇博客涵盖了测试开发的基础知识,包括JAVA中的集合类型特性、ArrayList与LinkedList的区别、Hashtable与HashMap的异同、线程安全问题;Python的八大基本数据类型、可变与不可变数据类型、字典与JSON的转化、静态方法与类方法;数据库的去重查询、链接类型以及索引使用场景;HTTP协议的安全性问题、cookie与session的区别;Git的git pull与git fetch操作解析;以及接口测试设计、自动化框架搭建思路、测试数据管理和稳定性提升方法等测试开发面试常见问题。
摘要由CSDN通过智能技术生成

(1)JAVA知识
  Q1:List、Set、Map 之间的区别
  List 是一个有序并且允许元素重复的集合,它的底层数据结构是数组,数组的优缺点都很明显,就是查询速度很快,但是要做数据移动,比如增加、删除速度就会很慢。
  Set 是一个无序且不允许元素重复的集合,它的底层数据结构是哈希表,它的优缺点是跟数组完全相反的,既查询速度慢,但是增加、删速度很快。
  Map也是集合的一部分,它最大的特点是key-value形的,并且key不能重复出现,但是value可以重复出现,这对我们某些业务,如用户重复处理能起到重要作用。
  Q2:ArrayList 与 LinkedList 的区别?
  ArrrayList说白了就是个数组,所以自然也是有数据的优缺点的,比如支持随机访问,查询速度快。而LinkedList 的底层数据结构是链表,所以是不支持随机访问的,在代码中用下标访问一个元素时,ArrayList 的time complexity是 O(1),而 LinkedList 是O(n)。
  Q3:Hashtable 与 HashMap 有什么不同之处?
  Hashtable 是过时了的遗留下来的类,后面新增的是HashMap。Hashtable 的方法是同步的,所以时间上比较慢,但HashMap 没有同步策略,虽然时间更快了但是也导致它另外一个问题:HashMap是线程不安全的。因为是异步的,在线程并发时可能会导致数据错乱。
  Q4:Java 中 ++ 操作符是线程安全的吗?
  当然不是线程安全的操作,因为这个过程涉及到多个指令,比如先读取变量值,然后进行增加操作,最后存储回内存,整个过程可能会出现多个线程交差。所以说它不是线程安全的。
  Q5:int 和 Integer 哪个会占用更多的内存?
  由于Integer 是一个对象,不仅需要存储指向对象的指针,还要存储对象值,所以会占用更多的内存。但是 int 是八种数据类型之一,不需要实例化才能使用,所以占用的空间更少一些。
  Q6:Java 中 sleep 方法和 wait 方法的区别?
  这两个方法是继承自不同的类的,所以虽然都可以用来暂停当前运行的线程,但sleep() 只是短暂停顿,并不会释放锁,而 wait() 是条件等待,使用了该方法之后,还要释放锁,不然其他等待的线程就不能在满足条件时获取到该锁。而且sleep必须捕获异常的,但wait不需要捕获异常
  Q7:解释 Java 堆空间及 GC?
  当通过 Java 命令启动 Java 进程的时候,会为它分配内存。内存的一部分用于创建堆空间&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值