首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
不见武陵豪杰墓
获赞
262
粉丝
20
关注
3
看过 TA
57
男
苏州大学
2021
银行其它
IP属地:广东
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑不见武陵豪杰墓吗?
发布(111)
评论
刷题
收藏
不见武陵豪杰墓
关注TA,不错过内容更新
关注
2020-08-15 14:44
已编辑
苏州大学 银行其它
RabbitMq消息队列
消息队列优势:异步,削峰,解耦 缺点:增加系统复杂性,系统可用性降低,需要保证Mq的高可用。 工作模式 工作队列模式多个消费者竞争消费同一个消息队列 消息丢失 生产者发向Mq丢失消息。解决方案:确认机制,当Mq成功接收到生产者的消息时,会发送给生产者一个确认消息,异步监听。confirm机制 消息在Mq中丢失。持久化交换机,队列,消息。确保服务器重启时依然能从磁盘恢复对应的交换机,队列和消息 如果消费者成功收到消息,设置自动回复。Mq会删除消息,此时如果消费者端出现错误宕机等,那么无法重新发送消息,导致消息丢失。解决方案:手动回复确认消息,只有当消费者端解决好之后才会发送确认消息。此时...
0
点赞
评论
收藏
分享
2020-07-28 23:27
苏州大学 银行其它
生产者消费者
等待,业务,通知如果是if,会发生虚假唤醒,4个线程来的时候,进入到wait,if只判断一次,直接走掉。而while不会直接走掉,再次判断
0
点赞
评论
收藏
分享
2020-08-04 09:46
已编辑
苏州大学 银行其它
Volatile
volatile是Java虚拟机提供轻量级的同步机制 1保证可见性 2不保证原子性 3禁止指令重排 什么是JMM?Java内存模型,并不存在,约定俗成 一些约定:计算机中有主存,线程把变量读取到自己的工作内存 1、线程解锁前,必须把共享变量刷回主存 2、线程加锁前,必须读取主存中的最新值到工作内存中 3、加锁解锁是同一把锁 问题:当线程B把flag值修改刷回主内存时,线程B的工作内存的变量还是旧的 volatile是Java虚拟机提供轻量级的同步机制 1保证可见性 2不保证原子性 3禁止指令重排 什么是JMM?Java内存模型,并不存在,约定俗成 一些约定:计算机中有主存,线程把变量读...
0
点赞
评论
收藏
分享
2020-07-28 22:02
已编辑
苏州大学 银行其它
Redis主从复制哨兵
用docker启动三个redis容器docker run --name redis-6379 -p 6379:6379 -d redis:3.2 redis-server docker run --name redis-6380 -p 6380:6379 -d redis:3.2 redis-server docker run --name redis-6381 -p 6381:6379 -d redis:3.2 redis-server 配置reids集群docker inspect containerid(容器ID) 2、三个redis的内网ipredis-6379:172.17.0.3...
0
点赞
评论
收藏
分享
2020-07-20 23:40
苏州大学 银行其它
线程池
线程池主要参数 corepoolsize:核心线程池数maxpoolsize:最大线程池数keepAlivetime:LinkedBlockingQueue:阻塞队列,这是无界的,可能会发生内存溢出 4种线程池 singleThreadPool:1,1,0,单线程 newCachedThreadPool:0,Integer.MAX_VALUE,60L非核心在执行task newFixedThreadPool(n):n,n,0 线程池,1、core里面是1到10task,2、队列里面是11-20task,3、非核心里面是21-30task。执行的时候执行顺序1,3,2可以理解为队列里...
0
点赞
评论
收藏
分享
2020-07-20 22:54
苏州大学 银行其它
CAS与ABA问题
过程:读取当前值X=1,进行计算得到结果值V=X++(2),在更新之前比较X与当前的新值X=1?。1如果不相等,自旋 2、如果相等,更新为新值V=2 问题:当前新值X与E相等,但是在这个过程中,这个值X先变成别的值再变成新的值,X先被动过后被改回来了。就是ABA问题。 ABA问题的解决方法:把x加个版本号,不仅比较值,还比较版本号
0
点赞
评论
收藏
分享
2020-07-16 23:23
苏州大学 银行其它
如何解决重复提交的问题(幂等)
关键点:识别哪些提交是同样的提交 解决方法:在页面设置token,利用redis事务的原子性。比如,在trade页面,点击提交订单,会生成一个token嵌入在页面中。点击结算时会验证token,解决重复提交的问题。 代码: controller"trade" @GetMapping("trade") @LoginRequire public String trade(HttpServletRequest request){ String userId =(String)request.getAttribute("userI...
0
点赞
评论
收藏
分享
2020-07-15 23:30
苏州大学 银行其它
SpringBoot整合ActiveMq消息队列
导入依赖包 public class ActiveMQUtil { PooledConnectionFactory pooledConnectionFactory = null; public void init(String brokerUrl){ ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(brokerUrl); pooledConnectionFactory = new PooledConnectionFactory(activ...
0
点赞
评论
收藏
分享
2020-07-15 22:26
苏州大学 银行其它
微信支付在项目中的实现
native支付,生成二维码,用户扫码支付 流程图 具体实现 添加依赖 <dependency> <groupId>com.github.wxpay</groupId> <artifactId>wxpay-sdk</artifactId> <version>0.0.3</version> </dependency> 主要是用到这个jar包里面的获取随机字符串,WXPayUtil.generateSignedXml,WXPayU...
0
点赞
评论
收藏
分享
2020-07-21 21:52
已编辑
苏州大学 银行其它
购物车的实现及细节
添加购物车:先拿到userid(登录则拿登陆了的,未登录检查cookie,cookie没有生成随机数),再把userid,skuid,num作为参数传到cartService.addCart(userId, skuId, num)。从购物车列表里面查数量。1、先去读缓存,如果缓存存在这个cartkey,则将ttl过期时间加10秒,不存在的话就通过userid拿到购物车列表,再用map保存(skuid,cartinfo)。再hmset(cartkey,map)。2、再看数据库,如果cart_info表已经有这个skuid,userid对应的信息,则是更新操作,cartInfoExists.set...
0
点赞
评论
收藏
分享
2020-07-09 23:12
苏州大学 银行其它
拦截器的使用
拦截器的使用 1注册一个拦截器 @Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter { //注册一个拦截器 @Autowired AuthInterceptor authInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(authInterceptor).addPathPatterns("/**&...
0
点赞
评论
收藏
分享
2020-07-09 23:20
已编辑
苏州大学 银行其它
单点登录在项目中的实现
1登录验证,验证成功制作通过JWT制作token,返回token @PostMapping("login") @ResponseBody public String login(UserInfo userInfo, HttpServletRequest request){ UserInfo userInfoExist= userService.login(userInfo); //1 if(userInfoExist!=null){ //制作token Map<...
0
点赞
评论
收藏
分享
2020-07-05 14:06
苏州大学 银行其它
KMP算法解决字符串匹配
实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 输入: haystack = "hello", needle = "ll" 输出: 2 解析:字符串匹配问题 class Solution { public int strStr(String haystack, String needle) { if(haystack.length()==0&&need...
0
点赞
评论
收藏
分享
2020-08-29 15:30
已编辑
苏州大学 银行其它
redis分布式锁的处理
缓存击穿 问题1:当数据没有缓存的时候,正好有很多个请求一起去访问数据。 解决方法1: 利用setnx增加分布式锁 同时只有一个线程能拿到锁,其他线程自旋等待问题2:如果某个线程拿到锁很长时间没处理完,其他线程会一直等待。 问题3:如果设置锁的超时时间,在释放锁del的时候,可能删除的是别人所持到的锁。 解决方法,得到锁的线程只会释放自己的锁 每个线程生成一个一个随机token,释放锁的时候加以验证 缓存穿透 查询一个不存在于缓存和数据库的数据,永远不会加载缓存,会反复查询数据库,增加io压力 @Override public SkuInfo getSkuById(String s...
0
点赞
评论
收藏
分享
2020-06-16 16:59
已编辑
苏州大学 银行其它
春招实习上岸
本来以为实习会有很多很多公司面试,后面发现其实笔试都过不了 感谢好未来,感谢东哥,感谢华为给我发了offer 运气不错 面试过的公司
baiyuNinja:
投递好未来等公司10个岗位 >
0
点赞
评论
收藏
分享
1
2
3
4
5
6
8
关注他的用户也关注了:
牛客网
牛客企业服务