1.在支付过程中,出现支付超时解决方案

出现场景:用户停留在支付页面15分钟之后再支付,就会出现用户付款,后台把该订单给取消了(使用rabbitMQ延迟队列,下单时间+15即为超时时间)

解决方案:

支付宝

支付宝支付接口有提供一个绝对超时时间字段,超过这个时间支付宝就会返回支付超时

微信

微信支付接口有提供交易开始时间和交易结束时间,超过这个时间微信就会返回支付超时

2.订单支付成功,没有收到异步通知,超过设置时间,后台把订单取消,之后又收到通知解决方案

方案一:判断订单的状态,只有是未支付的状态才更新为已支付

3.谈一下对webService理解,发布服务怎么实现的

理解:webService是一种跨编程语言和跨操作系统平台的远程调用技术

发布服务实现方式:

  1. 创建一个返回类型的实体类对象
  2. 创建服务对象,并建立获取相关信息的方法(类上使用@WebService)
  3. 运行发布
  4. 使用jdk的bin目录下自带的wsimport.exe将其生成.java文件
  5. 建立调用服务的模拟客户端(新建一个项目)将生成的文件拷入"客户端"
  6. 建立测试类进行访问调用

参考文章:https://blog.csdn.net/sinat_35821285/article/details/79318902

4.mybatis中resultMap和resultType区别

resultMap:适合使用返回值是自定义实体类的情况

resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型

resultMap :

映射实体类的数据类型

resultMap的唯一标识

column: 库表的字段名

property: 实体类里的属性名

  1. 多线程的实现方式,线程池有哪些参数,cashThreadPool队列是有序队列还是无序
  1. 继承Thread类,重写run方法
  2. 实现Runnable接口,重写run方法,
  3. 使用Callable和FutureTask创建多线程

实现步骤:

a:创建Callable接口的实现,并实现call()方法

Callable<Integer> myCallable = new MyCallable();    // 创建MyCallable对象

FutureTask<Integer> ft = new FutureTask<Integer>(myCallable); //使用FutureTask来包装MyCallable对象

Thread thread = new Thread(ft);

thread.start();

  1. 使用线程池方式

ExecutorService executorService = Executors.newFixedThreadPool(5);

for(int i = 0; i<POOL_NUM; i++) {

RunnableThread thread = new RunnableThread();

//Thread.sleep(1000);             executorService.execute(thread);

}

//关闭线程池

executorService.shutdown();

  1. 优化Sql一般是怎么实现的方式

创建索引

Mysql查看sql语句执行效率,在sql语句前加上explain

对应字段名称:

Id:查询序列号

Select_type:查询的类型

为simple:简单查询(不使用union或子查询等)

Primary:最外面的查询

UNION:UNION中的第二个或后面的SELECT语句

DEPENDENT UNION:UNION中的第二个或后面的SELECT语句,取决于外面的查询

UNION RESULT:UNION的结果。

SUBQUERY:子查询中的第一个SELECT

DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的查询

DERIVED:导出表的SELECT(FROM子句的子查询)

table:显示这一行的数据是关于哪张表的

type:这列最重要,显示了连接使用了哪种类别,有无使用索引,是使用Explain命令分析性能瓶颈的关键项之一。

结果值从好到坏依次是:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

一般来说,得保证查询至少达到range级别,最好能达到ref,否则就可能会出现性能问题。

possible_keys:列指出MySQL能使用哪个索引在该表中找到行

key:显示MySQL实际决定使用的键(索引)。如果没有选择索引,键是NULL

key_len:显示MySQL决定使用的键长度。如果键是NULL,则长度为NULL。使用的索引的长度。在不损失精确性的情况下,长度越短越好

ref:显示使用哪个列或常数与key一起从表中选择行。

rows:显示MySQL认为它执行查询时必须检查的行数。

Extra:包含MySQL解决查询的详细信息,也是关键参考项之一。

  1. Join on 和join where 区别

Join on是先执行on后面的条件再进行连接查询

Join where 是先连接查询再执行后面的条件

  1. 常用的设计模式有哪些?单例模式有几种,各有什么优点,缺点
  2. ConCurrentHashMap为什么是线程安全
  3. 说一下秒杀活动怎么实现的(并发处理机制,10000个人同时秒杀,库存不够),怎么控制并发,加入库存只有五件怎么控制先后顺序
  1. 将商品id作为key,库存token作为vaule存到redis中
  2. 秒杀的时候,使用leftpop()方法从redis中取出库存token,若为空则说明秒杀完了,若不为空,加入到消息队列中,异步处理更新库存和生成订单
  1. for 和 foreach区别(效率、功能方面)

foreach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高。

foreach不能对数组或集合进行修改(添加删除操作),如果想要修改就要用for循环

  1. StringBuffer和StringBuilder区别,底层数据结构
  1. 线程安全,StringBuffer:线程安全,StringBuilder:线程不安全。因为 StringBuffer 的所有公开方法都是 synchronized 修饰的,而 StringBuilder 并没有 StringBuilder 修饰。
  2. 缓冲区:StringBuffer每次获取toString都会直接使用缓存区的toStringCache值来构造一个字符串,StringBuilder每次需要复制一次字符数组,再构造一个字符串
  3. 性能:因为StringBuffer是线程安全的,访问的时候都加了锁,所以StringBuilder性能大于StringBuffer
  1. RabbitMQ多个消息超时或阻塞没有消费

设置消息超时时间

  1. RabbitMQ重复消息消费问题

Java2021中级面试题相关推荐

  1. 【无标题】2021年中式烹调师(中级)试题及解析及中式烹调师(中级)复审考试

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:中式烹调师(中级)试题及解析是安全生产模拟考试一点通生成的,中式烹调师(中级)证模拟考试题库是根据中式烹调师(中级)最新版教材汇编 ...

  2. 2021年中式烹调师(中级)试题及解析及中式烹调师(中级)模拟试题

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:中式烹调师(中级)试题及解析是安全生产模拟考试一点通生成的,中式烹调师(中级)证模拟考试题库是根据中式烹调师(中级)最新版教材汇编 ...

  3. 2022茶艺师(中级)试题及答案

    题库来源:安全生产模拟考试一点通公众号小程序 2022茶艺师(中级)考试题库为茶艺师(中级)试卷考前押题密卷!2022茶艺师(中级)试题及答案依据茶艺师(中级)考试大纲.茶艺师(中级)考试模拟题通过安 ...

  4. 高职计算机辅助设计CAD期中考试题,计算机辅助设计CAD绘图员(中级)技能鉴定试题(新)(机械类)模拟题...

    <计算机辅助设计CAD绘图员(中级)技能鉴定试题(新)(机械类)模拟题>由会员分享,可在线阅读,更多相关<计算机辅助设计CAD绘图员(中级)技能鉴定试题(新)(机械类)模拟题(4页珍 ...

  5. 2021年电工(中级)最新解析及电工(中级)试题及解析

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:电工(中级)最新解析参考答案及电工(中级)考试试题解析是安全生产模拟考试一点通题库老师及电工(中级)操作证已考过的学员汇总,相对有 ...

  6. 中级java笔试题_Java中级面试题合集

    Java中级面试题合集:1.弹出式选择菜单(Choice)和列表(List)有什么区别 Choice是以一种紧凑的形式展示的,需要下拉才能看到所有的选项.Choice中一次只能选中一个选项.List同 ...

  7. 2021年电工(中级)试题及解析及电工(中级)模拟试题

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:电工(中级)试题及解析考前必练!安全生产模拟考试一点通每个月更新电工(中级)模拟试题题目及答案!多做几遍,其实通过电工(中级)作业 ...

  8. 2021年西式面点师(中级)试题及答案及西式面点师(中级)考试试题

    题库来源:安全生产模拟考试一点通公众号小程序 2021年西式面点师(中级)试题及答案及西式面点师(中级)考试试题,包含西式面点师(中级)试题及答案答案和解析及西式面点师(中级)考试试题练习.由安全生产 ...

  9. 2021年西式面点师(中级)试题及解析及西式面点师(中级)模拟考试题库

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:西式面点师(中级)试题及解析是安全生产模拟考试一点通生成的,西式面点师(中级)证模拟考试题库是根据西式面点师(中级)最新版教材汇编 ...

最新文章

  1. 【leetcode】30. Substring with Concatenation of All Words
  2. SAP UI5和CRM WebUI的View和Controller是如何绑定的
  3. dorado-SplitSpanel控件
  4. Highcharts+Spring饼图使用实例
  5. span的取值与赋值(原生js与jquery) - 对比篇
  6. finereport报表设计中模板数据集的sql语句中if的用法_报表工具中动态参数的灵活运用...
  7. Java中complex怎么被调用_java中存在三种调用机制
  8. wi ndows防火墙,网吧的防火墙怎么关?四种方法关闭WINDOWS防火墙
  9. 本来共享的计算机突然无法访问,WIN7局域网无法启用共享访问解决办法
  10. 华硕笔记本(GTX 1060显卡)安装Ubuntu16.04+Nvidia显卡驱动+Cuda8.0+cudnn6.0+ROS+Opencv3.2+Caffe+Tensorflow
  11. 2010~2011手机CPU对比
  12. 你可能不知道,Diffusion现在有多火
  13. 程序人生:我,颓废3年,怒加薪26K:成年人最顶级的自律,是逆着人性做事
  14. python3 安卓_Android QPython3 调用 其他 Android App
  15. 中国运动型多功能车和皮卡视频行业市场供需与战略研究报告
  16. Android中拍照完就给图片加水印,Android调用相机拍照并添加水印
  17. 转型经验分享|年过30的传统汽车人,如何转型做自动驾驶
  18. 顺丰快递电话查询比网上查询更提前更详细
  19. php新浪微博 登录接口文档,qq登录,新浪微博登录接口申请过程中遇到的问题
  20. 无胁科技-TVD每日漏洞情报-2022-10-24

热门文章

  1. 路印协议受邀参加澳洲新南威尔士政府孵化器Haymarket HQ分享论坛
  2. 打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!
  3. 命令行接口(CLI)将被取而代之,它不再是网络运维的主要工具
  4. 怎样用VB编写.DLL动态链接库文件
  5. 数据库插入时,标识列插入显式值
  6. hdu-1166敌兵布阵
  7. 面试题6:用两个栈实现队列
  8. 开源许可证 如何工作_开源许可证的工作方式以及如何将其添加到您的项目中...
  9. 限制HTTP数据包发送Referer
  10. win8计算机管理没有用户组,Win8右键计算机管理提示“该文件没有与之关联的程序”怎么办?...