Java(面试题20220822)
- 今天参加了一场面试,面试官说都是一些简单的题,在这里把我还记得的记录一下。(但回答仅供参考)
1. 说说continue和break的区别?
- continue用来结束当次循环,继续下一次循环。
- break用来结束当前循环,会跳出当前循环体。
2. 如果有两层循环,在内层循环的break起什么作用?
- 内层循环的break会终止内层循环,外层循环继续。
3. 如何跳出两层循环?需要怎么改代码?
- Java:关于跳出两层循环的方法以及Label(标签)(Zachsj)
- break outerLoop:
- 给外循环加上 outerLoop: 的标签,在想要跳出的位置写上break outerLoop;
- return:
- 由于是直接结束了整个方法,自然也就跳出了该方法下所有的循环。
4. 谈谈递归?(顺便提了下迭代)
- 方法调用自身,称为递归。
- 利用变量的原值推出新值,称为迭代。
- 递归:
- 优点:代码精简,可读性好。
- 缺点:浪费空间,容易造成堆栈溢出。
- 迭代:
- 优点:效率好,没有额外的空间开销。
- 缺点:代码不如递归简洁,可读性差。
5. 写一句sql:一张student表,找出姓李的学生,并且生日在2000年1月1日以后的,学号逆序,取前10条。
- 大概是这样,不一定对
select
studentName
from
student
where
studentName like "李%"
and
studentBirth > "2000-01-01"
order by
studentNo desc
limit
0,10;
6. 谈谈工厂模式?
- 简单来说:
- 工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。
- 首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。
7. 谈谈数据库连接池?
- 数据库连接池
- 数据库连接 → 执行完毕 → 释放
- 连接 → 释放,这个过程是十分浪费系统资源的
- 池化技术: 准备一些预先的资源,过来就连接预先准备好的
- 为了避免每次访问数据库的时候都需要重新建立新的连接而影响运行速度,在实际的项目中通常使用数据库连接池来统一调配,从而提高数据库的访问效率。
8. 省份下拉框如何实现?(前端?/后端?)
- 1.网上查模版或者直接调用公司的组件…
- 2.首先需要给在vue中写下拉框的标签 并且进行双向绑定 ,绑定的数据为你要最终新增的数据,然后再option中循环要选择的数据,value值为要循环的数据中的id 新增的数据不要忘记挂载。
- 3.jQuery省份下拉框(彡忧乐)
9. 可能还有,但不记得了…