阿里巴巴java面试题

初入职场 2023-11-09 13:04:56   点击量 : 2912  

作者 : 职场指南人

阿里巴巴java面试题

阿里巴巴java人员面试的时候一般会遇到哪些问题呢?来看看他们的亲身经历吧!阿里巴巴java面试题一1.如何理解自动化测试,用测试工具进行测试等于自动化测试这句话对不对?

关注点:测试工具的使用是自动化测试的一部分工作,但“用测试工具进行测试”不等于“自动化测试”。自动化测试,模拟手工测试步骤,通过执行程序语言编制的 测试脚本自动地测试软件。 自动化测试,强调借助工具(不仅仅是工具,有时包括策略和工件)来完成测试的执行,也就是用工具来帮助或辅助测试。但是用测试工具进行测试有可能是自动化,半自动化,或者手工测试。

2. 介绍下比较了解的自动化框架,watir,selenium,QTP…..任选一个说说,这个框架的工作原理是什么?

随便选取一个,重要的是原理,而不是使用。大家在用这些框架的时候,一定要关注背后的执行原理.看源码是一个比较简单的途径。

3. 介绍下SoapUI,如果你用着的话。这个框架需要注意什么?

soapUI是一款桌面应用程序,能够监测、触发、模仿以及测试(功能和负载)基于SOAP/WSDL和REST/EADL的`HTTP网络服务。

和大多数的工具一样,都是使用HTTPREQUEST对相应的资源进行请求很提取。再得到response之后进行相应的处理,对XML进行XPATH定位。注意的是SOAP方法中包含GET,POST的方法,POST的方法主要使用Application/xml的MIME形式发送相应的POST数据。

4. 对webservice层面的自动化测试,你认为比较重要的是什么?

对webservice的测试主要分为两个阶段,首先是对WEB Ui层面的数据XML Response与webservice的schema进行对比测试,其次是web Ui层面的数据与数据库服务器中相应的数据进行验证。

5. 对持续集成工具有了解过吗?类似于Jenkins(hudsoon)/Bamboo/Teamcity这些持续集成的工具,有了解过这些吗?

目前比较这几个还算比较流行,阿里主要集中在用hudson。Teamcity在以前的公司了解过。

6. 桌面自动化测试和WEB 自动化测试的区别?

驱动方式不同,C/S架构(或者桌面类型)界面自动化测试,采取的方式可以调用操作系统本身的API(windows桌面软件)来构建自动化测试或者可以采用虚拟机内(java swing程序)的事件处理机制来完成了。

WEB 自动化测试 B/S架构,原理就是依靠JS来进行客户端的操作,然后寻找对象是采用了DOM解析技术,将web方面的节点进行解析定位

7. 自动化测试碰到比较难解决的问题是什么?如果出现这些问题给出你的解决方案?

重点引导到测试结果定位准确这个角度上来, 在自动化程度比较高,case很多,就会存在排查失败的case过程。

解决方案; case错误分类,有效的log日志,异常信息的抓取

8. IOS支持UI自动化,主要有2种方式,介绍下这2种方式?

1.苹果官方提供的技术, UI Automation。

2. 就是在应用中注入测试代码。

Instrument uiautomation 是苹果官方提供的iPhone手机应用的自动化测试工具。控件元素的识别准确,属性获取,元素操作的API丰富。可以很方便的录制测试脚本、回放和查看运行结果。

阿里巴巴java面试题二1. 首先让应聘人员做自我介绍;

2. 面试官拿着简历,根据建立中的一个项目,然后让你说出这个技术架构的基本流程;

3. 画出 STRUTS 框架响应 jsp 的流程图;

4. 针对上一个问题,做的都是 web 项目,在框架中,servlet 对应的是哪一个部分;

Servlet对应的是MVC架构中Controller的职能,负责用户请求的控制跳转

5. 由前两个问题牵引出 web.xml 文件配置中都有哪些属性,以及他的作用;

web应用发布描述文件(即web.xml文件)是在Servlet规范中定义的。他是web应用的配置文件。web.xml和tomcat容器完全独立。

为顶层元素,其他所有子元素都必须定义在它的里面,而且要按元素定义的先后顺序不能颠倒。

下面介绍下它的子元素:

1. 该web站点的名称

2. 该web站点的说明

3. 用来设定该web站点的环境参数(context「配置应用上下文参数」),并初始化它

① 参数名称

② 参数值

4. 设定该web站点的过滤器

① 过滤器的名称

② 指定过滤器的实现类,负责具体的过滤事务

5. 设定该web站点的过滤器的映射

① 过滤器的名称

② 指定过滤器负责过滤的URL

6. 设定该web站点的Servlet的名称和映射

① Servlet的名称

② 指定Servlet的实现类

③ 定义servlet的初始化参数(包括参数名和参数值)

(1) 指定参数的参数名

(2) 指定参数的参数值

④ 指定当web应用启动时,装载servlet的次序。当值为0或正数时,servlet容器先加载小的;如果值为负数或者没有设定,那么servlet容器将在web客户首次访问这个servlet时加载它。

{

Config参数:以相对路径的方式指明struts应用程序的配置文件的位置,如果不设置,则默认值为/WEB-INF/struts-config.xml

Debug参数:社会自servlet的debug级别,空值日志记录的详细程度。默认为0,记录相对最少的日志信息。

Detail参数:设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过此设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。

}

7. 设定该web站点的Servlet的映射

① Servlet的'名称

② 指定访问这个Servlet的URL。这里只需给出对于整个web应用的相对URL路径

8. 设定该web站点的httpSession的生命周期(单位:分钟)

① 指定该httpSession得有效时间。

9. 设定该web站点的欢迎文件列表

① 指定欢迎文件名称。

10. 设定该web站点所使用的taglib

① 设定taglib的唯一标识符,在web应用中将根据这一标识符来引用tablib。

② 指定和taglib对应的tld文件的位置。

11. 设定该web站点所应用的资源

① 对所引用资源的说明

② 指定所引用资源的JNDI名字

③ 指定所引用资源的类名字

④ 指定管理所引用资源的Manager,它有两个可选值:Container和Application。Container表示由容器来创建和管理Resource,Application表示由web应用来创建和管理Resource。

12. 设定该web站点对应Tomcat的tomcat-users.xml中设置的角色名

① 对应Tomcat的tomcat-users.xml中设置的角色名

13. 设定该web站点四种认证类型

①BASIC:HTTP规范,Base64

BASIC

②DIGEST:HTTP规范,数据完整性强一些,但不是SSL

DIGEST

③CLIENT-CERT:J2EE规范,数据完整性很强,公共钥匙(PKC)

CLIENT-CERT

④FORM:J2EE规范,数据完整性非常弱,没有加密,允许有定制的登陆界面。

FORM

/login.jsp

/error.jsp

14. 设定该web站点的错误页面

404

NotFoundRuntimeException.html

java.lang.Throwable

InternalServerErrorRuntimeException.html

15.配置监听器:

……..

com.jj.MyServletContextListener

……..

16.EJB相关和MIME映射:

……

ejb/customer

Entity

com.jj.CustomerHome

com.jj.Customer

ejb/LocalCustomer

Entity

com.jj.CustomerHome

com.jj.Customer

rates/discountRate

java.lang.Integer

10

mpg

video/mpeg

……

6. 对 spring 了解吗?

7. spring 的依赖注入方式有哪几种?(注意不是 spring 的注入方式是依赖注入)

Set 注入

构造器注入

静态工厂的方法注入

实例工厂的方法注入

8. 有关事物的问题,做项目中做到哪些与事物有关的,事物是怎么控制的,怎么去写?

通俗的说,事务(Transaction)就是对数据执行的一组操作,这些操作钭数据从一种状态更改为另一种状态,他们必须为一个单元运行。事务最主要的功能就是确保多个连续的操作必须全部执行成功,否则回复到未执行任何数据操作的最初状态。也就是说事务的结果只有两种状况:事务完成(Transactioncommit), 事务失败(Transaction abort)当事务失败或异常中断时,事务就会回滚(Transactonroolback),回复至数据的初始状态。

9. 项目开发中,如果遇到一个问题,你自己也不知道该用什么技术去解决,怎么去解决,该如何去查?

目前IT解决方案都比较成熟了,一般所遇到的问题都应该有相应的解决方案,例如性能、通信、数据处理等,都应该有相应的开源解决方案,可以先到网上查询相关的开源解决方案,借鉴对方的解决思路或者引入对方的工具进行解决。如果是故障类的,可以通过搜索引擎或产品的文档、源码进行解决。

10. 你有三年项目开发经验,觉得自己比别人有优势的地方在哪?

11. 最后会问对他们公司有什么要了解的

SpringBoot整合ORM开发框架MyBatis和JPA

1、在使用Spring整合ORM组件的过程中,为了达到简化的目的,往往会进行大量的配置。利用SpringBoot可以进一步实现配置的简化。SpringBoot整合MyBatis开发框架,MyBatis是一款常用并且配置极为简单的ORM开发框架。其与Spring结合后,可以利用Spring的特征实现DAO接口的自动配置。在SpringBoot中,又对MyBatis框架的整合进行了进一步简化。

修改pom.xml配置文件,在项目中引入mybatis-spring-boot- starter依赖支持库,切记也需要数据库链接池的支持的哦。

数据表结构,如下所示:

注意:如果数据表字段两个英文单词之间是下划线连接的,但是你的实体类是驼峰命名法,此时就需要进行配置,数据库字段是你下划线分隔,但是bean中的字段是驼峰命名的,如user_name和userName,导致无法匹配。如果是通过xml文件来配置的话,只需要开启驼峰命名转换,setting name="mapUnderscoreToCamelCase" value="true"/>,在/src/main/resources/mybatis/mybatis.cfg.xml里面配置即可。

创建一个po实体类,方便数据传输,如下所示:

在src/main/resources目录中创建mybatis/mybatis.cfg.xml配置文件。如果要开启驼峰命名转换,在这里开启即可,如下所示:

如果在application.properties中开启转换的话,使用mybatis.configuration.map-underscore-to-camel-case=true配置即可。

或者搞个配置类,如果数据库表字段Column无法自动映射到相对应的实体类属性上,我们可以在config包下新建一个自动配置类MybatisConfig,开始驼峰命名规则。

MyBatis配置文件开启驼峰命名映射

修改application.yml配置文件,追加MyBatis配置,如下所示:

搞几个Dao层、Service层、Controller层的接口或者类,如下所示:

注意:如果不想每次都在mapper接口上添加@Mapper注解,可以在主启动类上通过添加@MapperScan注解来批量扫描指定包下的所有mapper接口。

Service层的接口和实现类代码,如下所示:

控制层的代码,如下所示:

项目启动类,如下所示:

通过Postman测试一下,自己写的接口,看看好使不,如下所示:

项目结构,如下所示:

2、JPA是官方推出的Java持久层操作标准(现主要使用Hibernate实现),使用SpringData技术和JpaRepository接口技术,也可以达到简化数据层的目的。要在SpringBoot中使用SpringDataJPA,需要spring-boot-starter-data-jpa依赖库的支持。

修改pom.xml配置文件,引入相关依赖包,如下所示:

创建UserInfo实体类,如下所示:

创建UserDao,然后继承JpaRepository ,此时就可以使用写好的方法了,不用自己再额外写接口和实现,如下所示:

然后定义Service接口和Service接口实现,如下所示:

然后搞一个Controller,作为接口访问的入口,如下所示:

修改程序启动主类,追加Repository扫描配置。如果使用JpaRepository实现了DAO接口的自动实现。需要注意的是,如果想启用Repository配置,则需要在程序启动主类时使用@EnableJpaRepositories注解配置扫描包,而后才可以正常使用。

修改application.properties,使用Druid作为数据源连接池,如下所示:

使用postman进行接口调用,如下所示:

最主要的是给自己增加知识的储备,有备无患。最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主(666)领取,祝大家更上一层楼!!!

本文来自网络,不代表生活常识网立场,转载请注明出处:http://sdsy56.com/churuzhichang/52569.html

上一篇:

下一篇:

声明: 我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本站部分文字与图片资源来自于网络,转载是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:15053971836@139.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

Copyright © 2022-2024 生活常识网 版权所有
生活常识网所有文章及资料均为作者提供或网友推荐收集整理而来,仅供爱好者学习和研究使用,版权归原作者所有。
如本站内容有侵犯您的合法权益,请和我们取得联系,我们将立即改正或删除。客服邮箱:15053971836@139.com

备案号:鲁ICP备2022001955号-6 联系方式:15053971836@139.com

网站地图