1 / 12
文档名称:

java工程师大型企业常见面试题总结.docx

格式:docx   大小:266KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java工程师大型企业常见面试题总结.docx

上传人:xiarencrh 2020/12/15 文件大小:266 KB

下载得到文件列表

java工程师大型企业常见面试题总结.docx

相关文档

文档介绍

文档介绍:企业面试总结
经过一星期的紧张面试,获得了许多的面试经验,总结了面试中遇到的问题,现对一些主要问题进行总结,希望能给大家以帮助。
非项目方面
redis内存溢出及宕机状态的处理
redis存在于内存中,内存大小有限,也会存在宕机或重启导致内存数据清空的情况,此时我们可通过对redis中的数据设置生存周期及对数据进行持久化操作来尽量避免这些情况带来的危害.
设置生命周期:到期后数据销毁
EXPIRE key seconds 设置生存时间
PERSIST key ﻩﻩ 清除生命时间(重新设值也会清除生命周期)
TTL key 查看剩余生存时间
TTL返回值:
大于0的数字:剩余生存时间,单位为秒i
-1 : 没有生存时间,永久存储
-2 : 数据已经被删除
持久化:是把数据从内存以某种形式持久化到磁盘上。
持久化方式:RDB(relational database)和 AOF(append only mode)
RDB:
通过快照方式实现,当符合条件时就对内存数据进行快照并存储到硬盘上。,时间和改动的键的个数。
快照过程:
使用fork函数复制一份当前进程(父进程)的副本(子进程),然后父进程继续处理任务,子进程则执行写入磁盘操作。写入完成后再用临时文件替旧的RDB文件.
AOF:
是将redis的每一条命令进行记录,并保存到磁盘的AOF文件中,重启后会执行该文件进行数据恢复,需要手动开启。
优化:aof会记录每一条命令,包括一条数据的多次操作,这样造成了冗余。可使用BGREWRITEAOF技术来进行重写,去除数据的中间执行过程,保留最终数据命令即可。重写的策略是当aof文件的大小超过上一次大小的某个比例时就会进行重写。
问题:文件是先写入缓存的,而缓存读取到硬盘需要时间,假设在这个时间数据丢失那也会导致数据的丢失。所以即使每秒做文件同步也可能导致数据丢失。
Spring注解开发的配置
此处会让你说出几个常用注解,说几个就行。有时还会问你注解底层怎么实现就说不太了解.
在xml配置文件中开启注解功能
〈!-— base-package:注解写在哪个包 -->
<context:component-scan base—package="。bean”/> 
注解:
@Component(value=”名称”) ﻩ 利用构造方法创建对象
@Scope(value=”singleton/prototype") 单例和多例
@Lazy(value=true/false)ﻩﻩ 延迟创建问题
***@PostConstruct ﻩﻩ 指定方法为初始化方法
***@PreDestory ﻩ ﻩ 指定方法为销毁方法
@Autowired   ﻩ注入引用类型,只能按照类型进行匹配
@Resource 注入引用类型,如果有name属性值,则按照bean的名称进行匹配;如果没有name属性值,则按照类型进行类型匹配
数据库优化
此处重点是数据库的索引问题,索引可大大提高查询效率,但是大数据量时也会影响效率.
此时他还会问你当数据量很大时索引不行了该怎么处理,就回答读写分离,分库分表。提前对这两块做下了解,看看京东淘宝的处理方式。
索引存储的值按索引列中的顺序排列。可以利用B-Tree索引进行全关键字、关键字范围和关键字前缀查询.
数据库优化
sql级别的优化
sql语句的书写方式对效率也是有一定影响的。
使用>= 替代>
 select * from emp where deptno>=10(效率高,因为depto直接定位到10,效率高)
 select * from emp where deptno>9(先定位到9 ,然后还要排除9 ,效率低)
如果使用union或者union all了,此时如果不需要考虑去掉重复的数据,尽量不要使用union ,因为union默认是去重复的,去重复过程,也会影响效率.
对group by子句的优化上面:尽量在group by前面将数据过滤掉。
select job,avg(sal) from emp where job='CLERK' group by job (效率高)
  select job,avg(sal) from emp group by job having job='CLERK' (效率低)
使用视图: (数据量非常大的情况下)
经常被查询的列数据,并且这些数据不被经常的修改,删除。
数据表建立索引
索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的

最近更新