几道面试题记录20231023

1, JVM优化

-Xms=-Xmx

-Xmn

-Xss

-XX:PermSize

-XX:MaxPermSize

-NewRatio

-SuvriorRatio

收集器配置:

一般:串行收集 Serial

吞吐优先:并行收集Pramllel

响应优先:并发收集Conc

2,支付掉单如何解决?

因为网络等原因,支付网关未收到银行返回的操作结果(银行扣款未成功;银行扣款成功,故客户的虚拟账户及订单收款状态未发生变化,称为掉单。

可以通过后端程序轮询银行前置机的支付接口,查询支付状况,根据情况延迟更新客户的虚拟账户及订单收款状态。

3,行级锁如何解决?

通过存储过程

4,数据库事务的安全性?

创建恢复点

开始事务

结束事务

提交事务或回滚事物

5,假如给tomcat的内存只有40MB,数据库有20000条记录,一次性导出到客户端,内存不够用怎么办?

将20000条记录分批次先后导出(分页查询)到不同文件,再合并到一个文件。

6,长时间的事务如何处理?

收缩日志文件(修改日志文件大小),就是短时提交,这样保持会话的连续性。

7, 大量并发操作hashmap,如remove,put,get等,不能使用synchronized关键字来同步,也不能使用hashtable(线程安全耗时),如何解决?

ThreadLocal(线程隔离,独立维护线程局部变量副本 HashMap) 在SSH框架应用较多,特别struts.Hibernate

8,分布式以及集群环境下,对大量小文件均衡同步分发,是什么原理,采用什么算法?

经过HashTree(多次hash)来同步,hash算法,如TFS,GFS,HDFS.

9,MQ应用中,消息的消费处理低于消息生产,消息队列发生阻塞,如何处理?

1,消息生产对消息分组打包发送,消息消费拆包消费,从而降低消息队列中的消息数量。

2,设置相应的q值,timeout值,xmitq值要设置大些。

10,有一张很大的银行卡表,因账务操作,使用频繁,并发量大,导数数据库压力增大,如何处理?

使用缓存(应用缓存,数据库缓存),或表拆分

11,Oracle表分区的好处?

通过对表进行分区,可以获得以下的好处:

  1. 增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;

  2. 维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;

  3. 均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;

  4. 改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度

12,数据库表拆分(一主多从到多主多从)

两个维度:

垂直拆分:是指按功能模块拆分,比如可以将群组相关表和照片相关表存放在不同的数据库中,这种方式多个数据库之间的表结构不同。

水平拆分:而水平拆分是将同一个表的数据进行分块保存到不同的数据库中,这些数据库中的表结构完全相同。

13,线程间通信(数据传递或共享)?

  1. 注入回调接口;静态回调...
  2. 全局变量
  3. 系统环境变量,
  4. 虚拟机环境变量
  5. 文件形式
  6. 表状态
  7. JMS,MQ
  8. 管道流
相关推荐
悟空非空也1 个月前
挑战Java面试题复习第1天,坚持就是胜利
java·java面试题
王中阳Go13 个月前
好多kafka难题啊,看看其中的化解之道
面试·kafka·面经·求职面试
前端玖耀里4 个月前
01. 课程简介
java·后端·后端面试·java面试题
zouhuu5 个月前
面试题006-Java-JVM(下)
java·jvm·java面试题·java虚拟机面试题
zouhuu5 个月前
面试题001-Java-Java基础
java·java面试·java面试题·java基础题
江-小北6 个月前
10W QPS高并发,如何防止重复下单?
java面试题·redis面试题
青云交6 个月前
Java面试题--JVM大厂篇(1-10)
jvm·java面试题·类加载器·java jvm·栈内存溢出·java内存模型(jmm)·minorgc与fullgc
猫鱼吐泡泡6 个月前
Java面试题:SpringBoot异常捕获,让程序“免疫”一切错误!
java·spring boot·面试题·java面试题·java基础面试题·spring面试·面试题java·史上最全java面试题·java开发面试题·多线程面试·springboot面试题
猫鱼吐泡泡6 个月前
Java面试题:Spring中的循环依赖,给程序员带来的心理阴影
java·面试题·java面试题·hashmap面试·java基础面试题·spring面试·面试题java·史上最全java面试题·2024年java面试·java开发面试题·多线程面试·数据库面试
猫鱼吐泡泡6 个月前
Java面试题:让依赖注入变得简单,面对@Autowired和@Resource,该如何选择?
java·面试题·java面试题·java基础面试题·spring面试·面试题java·史上最全java面试题·2024年java面试·java开发面试题·多线程面试