摘要:
哈喽,我是程序员大鹏。
前面我们介绍了冒泡排序和选择排序,今天我们来看一下简单排序中的插入排序。
打过扑克的都知道,在抓牌的时候,我们不会等抓完所有的牌再用冒泡或者选择排序再理牌。一般是拿到一张牌就放到手里,抓到第二张牌的时候,再跟手里面已经有的牌进行比较,插到合适的位置,然后抓第三张牌,再与手里面的两张牌进... 阅读原文
2020-08-21 06:00:14 阅读(2358) 评论(0)
摘要:
1. synchronized的实现原理以及锁优化?
synchronized的实现原理
synchronized作用于「方法」或者「代码块」,保证被修饰的代码在同一时间只能被一个线程访问。
synchronized修饰代码块时,JVM采用「monitorenter、monitorexit」两个指令来实现同... 阅读原文
2020-08-21 00:02:04 阅读(2539) 评论(0)
摘要:
SpringBoot搭建API文档插件Swagger并美化
博客说明
文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!
地址
swagger-bootstrap-ui官网
导入依赖
<!-- swagger用于定义API文档 -->... 阅读原文
2020-08-20 23:43:03 阅读(2427) 评论(0)
摘要:
本文是多线程系列之一,主要介绍多线程中比较基本的synchronized和volatile。
起因
很简单,别逼无奈,天知道这群大佬怎么想的,用什么思考的面试题,你面试阿里这一类编程航母也就罢了,问题是一些中型企业,在面试的时候也问的相当底层,刚开始我没在意,后来面试了几家公司这一块回答的模模糊糊,然后面完了... 阅读原文
2020-08-20 22:07:04 阅读(2650) 评论(0)
摘要:
本文主要分两部分。首先我们先聊一下Redis6.0之前为什么采用单线程模型。然后再详细解释Redis6.0的多线程。
Redis6.0之前为什么采用单线程模型
严格地说,从Redis 4.0之后并不是单线程。除了主线程外,还有一些后台线程处理一些较为缓慢的操作,例如无用连接的释放、大 key 的删除等等。
单... 阅读原文
2020-08-20 21:31:23 阅读(2317) 评论(0)
摘要:
如何快速过滤出一次请求的所有日志?
之前在.net项目和java项目里有过不同的最佳实践。见下面链接。
▄︻┻┳═一巧用CurrentThread.Name来唯一标记一次请求的所有日志
▄︻┻┳═一巧用CurrentThread.Name来唯一标记一次请求的所有日志(续)
▄︻┻┳═一巧用CurrentT... 阅读原文
2020-08-20 19:51:02 阅读(2388) 评论(0)
摘要:
Swing如何使用工具栏JToolBar
工具栏用于存放常用的按钮
步骤 1 : 工具栏
package gui;
import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
impo... 阅读原文
2020-08-20 17:53:03 阅读(2374) 评论(0)
摘要:
本文源码:GitHub·点这里 || GitEE·点这里
一、服务网关简介
1、外观模式
客户端与各个业务子系统的通信必须通过一个统一的外观对象进行,外观模式提供一个高层次的接口,使得子系统更易于使用:
简单说一下外观模式,网关和这个模式很像,但是比外观模式复杂,模式,结构,原则这些都是通用的,在各种架构... 阅读原文
2020-08-20 17:18:03 阅读(2907) 评论(0)
摘要:
在Java中,用System.currentTimeMillis()来测量时间最方便。
你要做的是在某些操作之前获取到时间,然后在这些操作之后你想要测量时间,算出时间差。下面是一个例子:
long startTime = System.currentTimeMillis();
callOperationToT... 阅读原文
2020-08-20 15:55:05 阅读(2398) 评论(0)
摘要:
马上要七夕了,又到了各种电商平台秒杀的时间了。
那什么是秒杀?
所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟。2011年以来,在淘宝等大... 阅读原文
2020-08-20 14:24:06 阅读(2429) 评论(0)