上海万得面试整理

本文最后更新于:2 年前

Pexels 上的 Skylar Kang 拍摄的图片

参加上海万得信息技术股份有限公司的面试整理。

经历

测试题

完成一个程序设计。已上传GitHub:

题目在仓库的readme.md文档

服务端

客户端

面试

连续使用腾讯会议参加了两场技术面试,第一场还是一个学长,表现不错;第二场是一个稍微年长一些的面试官,表现不好,这次比较抓基础,算法和框架原理一类的。

Java集合有哪些

  • Collection 接口和 Map 接口是所有集合框架的父接口
  • Set 不重复元素
  • List 有序可重复集合,索引访问

collection

Map

比较表格

MySQL的调优方案

SQL调优

获取有性能问题的 SQL

  • 通过慢查日志获取存在性能问题的 SQL;

    优势
    • 性能开销比较低,主要关注磁盘空间。主要性能开销在磁盘 IO 和存储日志所需要的磁盘空间。对于磁盘 IO 来说,由于写日志是顺序存储,IO开销基本上忽略不计
    • 日志记录所有符合条件的 SQL。包括查询语句、数据修改语句、已经回滚的 SQL。
  • 实时获取存在性能问题的 SQL

    通过information_schema库中的processlist表进行查看

数据库引擎调优

选择引擎
InnoDB(行锁):

行锁:仅支持一个事务操作数据库表的某一行数据,当一个事务拿到行锁,另一事物无法操作此行数据包括select

优点:粒度小、支持CRUD事务

缺点:获取锁和释放锁需要花费资源、容易发生死锁

共享锁(读):

允许多个事务共用一行数据,在修改表数据时不能使用此情况

排他锁(写,默认):

一个事务拿到行锁后,另一事务无法操作查询此行数据,直到提交或回滚释放锁。容易发生死锁

优化:

1.控制事务的大小不宜过大,否则会占用行锁时间过长,影响其他事务的效率

2.尽可能使用索引作为过滤条件,提升sql操作的效率,减少事务花费的时间

3.合理设计索引

4.业务允许的话,可以适当降低隔离级别

JVM的了解

线程和进程

数据库的索引

Nginx

Linux的使用经验

总结

项目没有问

参考

Java常见集合有哪些?


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!