Java后端实习面试题

总结一下上周去某公司实习面试问到的题

1.了解设计模式吗?如果了解的话解释一下抽象工厂模式,并谈谈在springboot项目开发中哪里用到了抽象工厂模式

这个我不知道怎么解释,我就说了一些具体的东西
比如在springboot中我需要实现学生奖项添加、老师奖项添加、班级奖项添加功能。我可以先不一个个去实现这三个具体的功能,先写一个奖项接口,写好里面的添加奖项方法但不写具体内容,然后再写对应的实现类。。。
后面就不知道该怎么说了,诶麻了看看网上的对其定义

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类

应用实例:工作了,为了参加一些聚会,肯定有两套或多套衣服吧,比如说有商务装(成套,一系列具体产品)、时尚装(成套,一系列具体产品),甚至对于一个家庭来说,可能有商务女装、商务男装、时尚女装、时尚男装,这些也都是成套的,即一系列具体产品。假设一种情况(现实中是不存在的,要不然,没法进入共产主义了,但有利于说明抽象工厂模式),在您的家中,某一个衣柜(具体工厂)只能存放某一种这样的衣服(成套,一系列具体产品),每次拿这种成套的衣服时也自然要从这个衣柜中取出了。用 OOP 的思想去理解,所有的衣柜(具体工厂)都是衣柜类的(抽象工厂)某一个,而每一件成套的衣服又包括具体的上衣(某一具体产品),裤子(某一具体产品),这些具体的上衣其实也都是上衣(抽象产品),具体的裤子也都是裤子(另一个抽象产品)。

2.如何实现跨域

前端处理方法使用jsonp
后端处理方法,用拦截器在请求头信息里添加允许跨域信息
或者实现springmvc中的webmvcconfigure接口,重写里面的addCrossMapping方法

3.如何实现分页功能

当时被面试官套了一波,
一种可以先在业务层里写一个接口将数据全部查询出来存放在ArrayList里然后定义参数pagesize、currpage,一个是页数一个是一页中多少条数据,然后根据前端的需求在控制层里返回给前端数据。另一种就是可以用sql的limit来实现,在持久层里再添加一个接口,然后在业务层里处理,直接获得需要的数据,最后一种是使用spring-data-jpa来实现分页

然后他就顺着我问下一个问题了。。。。

4.sql在使用limit的时候若查询不到数据时该怎么处理空值

这个,真不知道怎么说,我当时挺懵逼的,不知道是说查到null值了还是说查不到值的意思,没搞明白。回来去网上查了查,呃,大概是这么个意思吧:在要查询到字段加一个is not null估计就可以了吧

5.你的项目中如何防止sql注入的

在前端用正则表达式来实现,在后端用一些工具类对传入的字符串进行过滤
再一个就是mybatis的标签本来就可以实现防止sql注入 #{}也可以在传参中防止sql注入

网上找到的就以这篇文章为主吧

https://www.cnblogs.com/mmzs/p/8398405.html

现在都不问一些javase基础问题一上来就问sql和业务问题,果然是越来越卷了啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值