大概问了项目
1.要求测试牛客在线面试的右边视频框
2.对问题三每个功能点做自动化测试
3.项目怎么测试?
4.主要使用黑盒测试和白盒测试进行测试:
白盒测试部分:主要对代码进行单元测试和集成测试,测试每个功能模块的编写是否正确
黑盒测试部分:一些功能测试,如表单的测试,根据需求,对表单输入不同的值,测试预期结果;链接的测试;
非功能性测试:使用不同版本的浏览器打开当前管理系统均可进行登录,终端只可在安卓设备,如平板,手机上进行测试
5.web测试和app测试的例子
6.手写快排、多线程
7.软件测试的方法(黑盒测试方法:等价类,边界值,错误推断,决策表,穷举)
举例阐述软件测试方法的使用(给定输入框,限定输入字符串和数字不限制长度,设计测试用例,使用等价类方法)
抽象类和接口的区别
8.正交试验法,使用场景是什么
实际的项目中,输入条件的因素很多,而且每个因素不能用“是”或“否”来回答,每个因素可能又有多个选项,这样测试组合会变得很多,而导致了极大的工作量,这时可以使用正交法。
9.简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程
知道有bugzilla,bugfree等
http://www.docin.com/p-693585620.html
wiki做测试用例的管理
10.列举出你熟悉的自动化工具,并说明其实现原理
soapui的介绍:http://p.primeton.com/articles/53c641c5e138232cbd000011
11.自动化测试的使用场景
项目开发周期较长、测试较为频繁、手工测试无法胜任、人力财力资源充足
12.公有继承、保护集成、私有继承然后分析下区别
13.索引的分类和原理这些。
索引分为聚簇索引和非聚簇索引,InnoDB使用B+树实现聚簇索引,MyIsam使用非聚簇索引。
B+树所有的信息都存在叶子节点中,B-树所有信息存在每个节点中,可能在非叶子节点就返回一个结果。
http://www.imooc.com/article/17292
在10w个数据中找到最大的10%的数、
二叉树上两个点的最近公共父节点的求法,然后还给了一张纸让直接写一下二分法进行排序的代码。
1.链表的定义
2.怎么实现链表翻转
3.怎么判断链表是否有环
4.二叉平衡树,怎么用一维数组存储
5.讲讲jvm分区
6.讲讲jvm gc
7.怎么求数组的最大子序列和
8.final关键字4种用法
用来修饰数据,包括成员变量和局部变量,该变量只能被赋值一次且它的值无法被改变。对于成员变量来讲,我们必须在声明时或者构造方法中对它赋值;
用来修饰方法参数,表示在变量的生存期中它的值不能被改变;
修饰方法,表示该方法无法被重写;
修饰类,表示该类无法被继承。
9.sleep用法
10.await关键字
11.线程池
12.spring ioc,aop以及其优点
13.栈和堆的定义
链表,判断是否有环,反转、链表去重,合并链表,树,二叉树,平衡树,遍历、堆和栈
排序,冒泡,归并,稳定性
final的四种情景
jvm
gc的Gengerational collector
Thread Pool
Spring
Servlet
1、简历上的项目是怎么来的?是兴趣还是接的?
2、项目里面用到了那些框架与技术,简述一下。都是自己做的么?
3、你常用的数据结构有哪些?
HaspMap\ArrayList
4、HashMap是如何实现的? 使用除留余数法和链地址法实现
5、进程和线程的区别?
进程是资源分配和调度的基本单位,一个进程可以包含多个线程,每个进程有其私有的内存和资源
线程是处理机调度的基本单位,可共享进程的全部资源
6、如何实现线程同步?
1、介绍一下你认为最突出的项目。
2、项目里用到的技术,为什么用这个技术。
3、讲述一下HTTP的原理
计算机通过网络进行通信的规则
4、HashMap是怎么实现的?
5、设置负载因子的目的是什么?
6、如何实现线程同步?
7、HashMap如何实现线程安全?
8、如何让HashMap保证在多线程写数据的同时,仍然可以被其他线程读数据?怎么做?
9、最后一个代码题:实现链表反转。
3.数据库的索引分为哪几种,特点是什么。
4.算法:数组中找出最大的n个元素,怎么做?
堆排序,小根堆
5.二叉树:二叉树镜像反转。
- List、HashTable、Dictionary用过吗?
7.GC,解释原理。
• 介绍ConcurrentHashMap实现原理 安全高效的Map
• ConcurrentHashMap和LinkedHashMap差异和适用情形
LinkedHashMap 会将put进去的key value 按照次序进行遍历。
• 如果让你自己实现一个orm框架会如何实现
• 说一说了解的锁(主要介绍可重入锁
ReentrantLock)
• mysql数据库索引及底层实现(B+树)及使用索引的优缺点
• 说一说对jvm内存模型的了解(扯了一点GC)
• equals和hashcode的区别
• 说一说快速排序
• 各种排序算法的时间复杂度和空间复杂度
• 算法讲思路:两个有序数组合并并且找出第k小的数字
• 算法讲思路:二叉树的层序遍历(借助辅助队列完成,牛客网原题)
• 算法讲思路:Dijkstra(求最短路径)
• 介绍常用的GC策略以及年轻代中为什么要分Eden、Survivor区、年轻代为什么要使用复制-清除算法(因为大部分对象都是朝生夕死的)
• equals和hashcode的区别、hashcode的作用(二面真的是又问了一遍)
• 数据库索引,MyISAM、InnoDB的区别(一个B+树叶子节点存的地址,一个是直接存的数据)
• 进程与线程的区别,多线程有可能会造成的问题(占用内存,资源竞争产生死锁啊之类的)
• java基本类型与引用类型的区别
• 类中定义static和非static,有什么区别,static要注意什么
• 新生代、老年代是怎么定义和分配的
• 堆排序的过程
• 100GB的数据在4GB内存中排序 使用外排序,归并排序