当前位置: 首页 > news >正文

20240611 讯飞JAVA工程师(研发经理岗)面试

1.线程安全的集合类
在Java中,一些线程安全的集合类有Stack、Vector、Properties、Hashtable等
2.线程池中execute和submit的区别
1)参数及返回值不同
excute只能提交Runnable,无返回值
submit既可以提交Runnable,返回值为null,也可以提交Callable,返回值Future
2)异常抛出不同
execute执行任务时遇到异常会直接抛出
submit执行任务是遇到异常不会直接抛出,只有在使用Future的get方法获取返回值时才会抛出异常

3.线程池创建的方式

ExecutorService threadPool1 = Executors.newFixedThreadPool(5); //5个窗口

 ExecutorService threadPool2 = Executors.newSingleThreadExecutor(); //一个窗口

 ExecutorService threadPool3 = Executors.newCachedThreadPool();

//表示延迟一秒,后执行3秒
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
      @Override
      public void run() {
          log.info("delay 1 seconds, and excute every 3 seconds");
 
      }
}, 1, 3, TimeUnit.SECONDS);

4.缓存击穿、缓存穿透和缓存雪崩的区别

(1)缓存击穿:热点数据过期,导致大批量查询数据库

解决办法:

1)对热点数据采用永不过期策略,避免缓存击穿。
2)缓存读库加锁

(2)缓存穿透:指当一个查询请求访问一个不存在于缓存中且也不存在于数据库中的数据时,这个请求会无效地继续访问数据库,而不会被缓存。如果黑客故意发送大量非法请求,则缓存层无法起到过滤作用,可能导致数据库负载过大。

解决办法:

1)业务类型校验,屏蔽不合规的KEY
2)布隆过滤器,无法确定是否存在,但可以确定一定不存在

(3)缓存雪崩:指当缓存集中在某个时间点失效或由于某个原因发生故障,导致大量的请求直接打到后端数据库,造成数据库瞬时压力过大,甚至引起数据库崩溃。在缓存雪崩期间,系统性能急剧下降,无法正常提供服务。

解决办法:

1)过期时间打散
2)缓存不过期
5.常用的设计模式
6.架构方面的工作
7.团队管理的经验
8.虚拟机调优的经验
9.大数据调优的方式

http://www.lryc.cn/news/369987.html

相关文章:

  • 【研发日记】Matlab/Simulink软件优化(三)——利用NaNFlag为数据处理算法降阶
  • go语言接口之http.Handler接口
  • R语言 | 使用最简单方法添加显著性ggpubr包
  • 【Linux】shell脚本变量——系统变量、环境变量和用户自定义变量
  • QWidget 属性——windowTitle·windowIcon·qrc
  • 深入理解rtmp(一)之开发环境搭建
  • java常用面试基础题
  • 互联网摸鱼日报(2024-06-11)
  • 中介子方程十二
  • SLT简介【简单介绍SLT】
  • vue实现pdf下载——html2canvas
  • 安装docker+mysql的一些坑
  • React Native采集数据离线存储、网络状态监控、加密上传、鉴权
  • 网络数据库后端相关面试题(其三)
  • Hadoop之HDFS分布式文件系统
  • 插入删除单链表指定结点-偷天换日法
  • MybatisPlus代码生成器使用案例
  • 数学公式编辑器(前端预研)
  • 架构设计-如何安全地传输密码
  • 【库】nprogress 顶部进度条
  • 15、架构-可靠通讯之服务安全
  • web刷题记录(5)
  • Redis高并发高可用
  • 【前端取不到cookie的的原因】http-only
  • 推荐 2 个 火火火火 的开源项目
  • 从0到100:找搭子小程序开发笔记(一)
  • 迷宫最短路径求解--c++
  • SpringFramework总结
  • 品牌与产品:消费者决策的经济逻辑与品牌宣传的战略意义
  • MFC四种方法编写多线程