健康之路面试
时间:2020年6月2日
面试岗位:Java开发工程师
面试企业:福建健康之路有限公司
个人感受:公司入口在另外一侧,有点难找,环境第一感觉不怎么样,但到开发的地方的时候感觉环境还可以,宽大整洁,而问的问题问了将近40多分钟,大多从你的简历入手,抛开技术层会让你简介一些遇到业务问题是的解决思路。
问的有点多,所以问题可能会乱
1、首先肯定是先自我介绍
2、你们创建表是用什么方式创建的?(该公司称大部分都是以手敲的方式进行,而我回答则是使用powerDesigner工具来实现)
3、数据库你是怎么防止sql注入的?(这里问的是还没使用?的时候,也就是当初以拼接的方式来进行sql注入)
4、AOP你是怎么使用的?AOP上面的@注解是干嘛的?
5、你们SVN是如何使用的?
6、jdk1.8的特性?跟之前的版本的差别在哪?你有使用之前的版本吗?
7、你是如何实现权限这块的?
8、非对称加密你是如何使用的?
9、连接池你是怎么配置的?(这里他当成线程池来问了)
10、讲解一下Nginx的负载均衡
11、讲解HashMap中线程安不安全是怎么体现的?
12、如果HashMap中储存相同的Hash值,并且不能实现覆盖,是如何进行的?(这里涉及到HashMap的底层原理:按他的意思是Key里还有数组来储蓄,要取值的时候找到对应的hash值对应的key来进行值的获取,这里我也并不怎么 理解,最好看一下HashMap的底层原理)
13、讲解一下本地java项目的文件传输是如何进行的?
14、讲解一些Linux指令,java线程的查看指令是什么?
15、剩下的就是你来问问题
这里在附上一些该企业问的其他问题:
面试题
(一)
1、使用spring boot有什么感想
2、既然你是负责项目框架的搭建,mybatis框架你是怎么设置的,怎么使用的?这是你一个人维护的吗?
导包、进行mybatis-config.xml配置:配置数据源dataResource、创建java类中属性的setget方法,mapper包中创建对应的接口和同名的xml文件,配置namespace、表盒对象的关系,和调用的sql语句,在配置文件中将该xml文件配置到mappers映射中
// 1、获取配置文件的流
String resource = “org/cj/resource/mybatis-config.xml”;
InputStream inputStream = Resources.getResourceAsStream(resource);
// 2、获取SqlSession工厂, Session:会话
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 3.获取sql会话
SqlSession session = sqlSessionFactory.openSession();
// 4.获取dao调用方法
CityInfoMapper mapper = session.getMapper(CityInfoMapper.class);
List cis = mapper.selectAll();
3、你们培训应该类似于边学习,边工作的模式,你有没有哪段时间感到压力大?
4、你们使用什么策略进行负载均衡
权重模式
5、还知道哪些均衡策略?
权重模式、轮询模式(RR)(时间顺序)、Hash模式(ip、url)、fair(响应时间)
6、Nginx还有哪些应用?(反向代理、负载均衡、Http服务器(包含静态分离)正向代理)
http://www.doc88.com/p-5307498453394.html
7、(之前有回答gizp压缩)既然你使用了gzip压缩你知道怎么配置吗?
8、你那个压缩比设置多少,你知道代表的意义吗?
9、你有设置压缩图片的清晰度吗?(没有)
10、Redis除了之前提到session共享,在项目中还有哪些应用?
11、你有用到字典表吗?怎么设置的?这样有什么好处?举个例子
12、技术要点里面有提到xss防注入,那项目中是怎么应用的?
13、在项目中权限拦截是怎么样的一个流程(实现)?
14、你有没有在写完一段代码后,后来发现这段代码还可以有更好实现方法,举个例子
双检锁、静态内部类、枚举
15、你之前说到将RSA产生公钥私钥写入属性文件,(IO流)那是什么样的过程?如果该文件已存在你是怎么处理的,直接写入、覆盖(这个没记清具体问什么)?
16、Tomcat除了解压后使用,还有其他什么应用吗,比如页面显示乱码(Tomcat编码相关),怎么解决?
17、Oracle数据库使用的是什么编码?
SIMPLIFIED CHINESE_CHINA.AL32UTF8有没遇到显示乱码的情况?
比如输入表情♥之类的(微信昵称)
(二)
1、自我介绍
2、用的什么数据库,软件叫什么
3、介绍一下你的项目亮点(RSA加密)
4、数据库查询语句,查表的序列的sql语句(select id from table不行,如果主键是字符的话怎么办)
5、两个系统之间怎么获取数据,新系统怎么向旧系统获取数据,旧系统不能停止。通过报文
6、有用过svn吗,介绍一下过程
7、介绍一下登录的过程,从前端到后端
8、Jquery如何发送信息到后台的(要经过拦截器)
9、了解微服务吗
10、介绍一下nginx(三点)
11、有自己私下部署过服务器吗
12、部署jar包到服务器的命令代码是什么
nohup java -jar zabbix-0.0.1-SNAPSHOT.jar
13、如何让登录后的用户,在下次开启网页时可以不用账号密码,直接登录
14、心理咨询平台这个项目有提到排班时间设置是难点,为什么呢
15、单机斗地主这个Swing技术已经很老了,不经常用了
16、你自我介绍有说过直接了解过C语言,那么现在为什么选择JAVA呢
17、去年毕业的话,在你去培训之前你有工作的经验吗
18、你要求的薪资是多少
(三)
2、笔试题解析:
值类型与引用类型/数据结构的链表、二叉树
字节码问题。java是怎么编译代码的
http协议头,协议问题(有无状态的问题),什么是状态
3、使用过什么数据库,企业为什么使用MySql(开源)
4、你还有学习什么非关系型数据库吗?特点?(Redis怎么用以及特点)
5、Cookie和session的区别。哪个是客户端,哪个是服务器?怎么存储?
6、Hbulider X用来做什么的,你为什么使用它?除了做网页还做什么(跨平台,App等)
7、你有使用什么API输出文档吗
8、vue有学习什么吗?
9、加班问题
10、对数据库维护有什么兴趣吗
(1)自我介绍
(2)为什么转行?
(3)自己做的功能-SQL-数据库-微服务-容器;自己做的亮点部分介绍
(4)JSON写法
(5)Spring Boot 优点 如何搭建
(6)AOP IOC
(7)SVN如何解决冲突?有没有用过合并
(8)有没有用过GIT
(9)maven和普通web工程有什么不一样,如何配置?
(10)mybatis原理
(11)你有什么想问的?(公司开发组阵容如何?有没有新人培训快速上手?)
(12)四阶段项目框架是你搭建的吗。功能模块是怎么分工的?
(13)有没有考虑过数据量大的情况如何解决?
(14)之前项目代码量有多大?
(四)
自我介绍
线程有异常怎么处理 。
线程怎么实现的
线程类有没有自己处理异常的方法,怎么处理。
socket 怎么实现的
IO 是什么 流的实现
ajax 你们是用什么
手写一个JSON对象
404 什么问题 500哪里出问题 怎么解决 405 502 403
请求无效 内部服务器错误 资源被禁止 网关错误 禁止访问
平时怎么解决问题的 现在百度了个线程异常解决办法
servlet的实现过程
session与cookie
redis数据库你在项目中除了登入还有做什么。session 共享 还做了什么了?
Nginx 你是采用哪种配置 有什么配置。
XSS注入 你是怎么实现的 假设我在前端输入一个javascring代码 你在后台是怎么处理的实现的过程。
boot框架 与ssm框架的区别 你感觉有什么区别,
SVN冲突怎么处理的 SVN编辑冲突后发现代码消失 怎么处理
你搭建框架的难点是什么。
数据库有设置编码的吗?
int与integer的区别 你参数是用integer还是
测试题:
1、B
2、B
3、A
4、A
5、B
6、C
7、C
8、错
9、对
10、错
11、对
12、A
13、B
14、A
15、AB
标识符命名的规则
1、只能由字母(a-z,A-Z),数字(0-9),下划线(_)和美元符号($)组成
2、不能以数字开头
3、不能与关键字重名
4、严格区分大小写
16、C
17、B
18、C
19、C
20、C
整型:
byte:-2^7 ~ 2^7-1,即-128 ~ 127。1字节。Byte。末尾加B
short:-2^15 ~ 2^15-1,即-32768 ~ 32767。2字节。Short。末尾加S
有符号int:-2^31 ~ 2^31-1,即-2147483648 ~ 2147483647。4字节。Integer。
无符号int:0~2^32-1。
long:-2^63 ~ 2^63-1,即-9223372036854774808 ~ 9223372036854774807。8字节。
浮点型:
float:4字节。Float。末尾加F。(也可以不加F)
double:8字节。Double。
字符型:
char:2字节。Character。
布尔型:
boolean:Boolean。
21、A
22、B
23、B
24、B
25、C
26、C
27、A
28、ABCD
29、C
30、B
31、C
32、D
33、B
34、A
35、A
36、C
37、C
38、B
39、C
40、D