自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

米勺-Michelle

lemon tea

  • 博客(68)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 缓存击穿,缓存失效,热点key

缓存击穿在读多写少的高并发应用场景,通常会通过使用缓存(memcached,redis,tair等)来提升性能,我们大致所做的就是请求来了先查询缓存,缓存没有对应的数据再查询db,之后set到缓存中同时返回给前台,有一种情况,恶意使用不存在的key去查询,这样会导致必然不走缓存,直接将请求打到db,这种带有攻击性的访问需要被拦截过滤掉处理方法1.使用bloomfilter对其进行过滤,原理是将db...

2018-05-15 16:12:04 281

原创 半小时学会正则-半小时没学会的我请你看头号玩家

Demo采用python演示,如果不熟悉语法看看热闹就行,不影响你对正则的理解一.单个字符匹配字符匹配.匹配任意字符(除\n)[...]匹配字符集\s/\S匹配空白/非空白字符\d/\D匹配数字/非数字\w/\W匹配单词字符[a-zA-Z0-9]/非单词字符Demo:采用 . 可以匹配任意字符,a-z,A-Z,0-9分组可以表达一个满足一个组内的内容即可,后面3个同理二.多个字符匹配字符匹配*匹配...

2018-04-09 19:32:19 468

原创 mysql索引优化

数据库优化,分为索引优化,表结构优化,系统配置优化以及硬件优化,其中索引优化成本最低,受益最大创建索引不宜过多,过多的索引不仅降低insert和update的时间,其实也降低查询时间,数据库在进行查询分析时,首先要判断选用哪个索引,所以越多,分析的越慢在工作中,我们发现了慢查询,可以添加相应的索引,那么添加索引会遇到哪些问题1.重复索引:相同的列以相同的顺序,建立同类型的索引2.荣誉索引:多个索引...

2018-03-28 13:34:39 413

原创 多线程核心技术-单例模式

单例模式在设计模式中比较常见,在多线程访问的时候容易出现线程不安全的隐患懒汉式(延迟加载)/饿汉式(立即加载)直接给出双检查锁单例模式public class Singleton { private static Singleton instance; private Singleton (){ } public static Sing...

2018-03-08 13:55:00 178

原创 多线程核心技术-Timer

JDK库中,Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务。Timer类的主要作用就是设置计划任务,但封装任务的是TimerTask类,执行计划任务的代码要放入TimerTask的子类中。1.schedule(TimerTask task,Date timer);MyTaskpublic class MyTask extends TimerTask{ @Ove...

2018-03-08 13:39:47 240

原创 多线程核心技术-Lock

(一)ReentrantLock多线程中可以使用synchronized来进行线程同步互斥,在jdk1.5之后引入了ReentrantLock类,不仅可以实现synchronized的功能,还进行了拓展,下面简单写个DemoMyServicepublic class MyService { private Lock lock = new ReentrantLock(); // ...

2018-03-07 20:00:40 153

原创 多线程核心技术-线程间通信

1.等待&通知(wait&notify)机制:wait()方法可以使调用该方法的线程释放共享资源的锁,然后从运行状态退出,进入等待队列,直到再次被唤醒。notify():方法可以随机唤醒等待队列中等待同一共享资源的一个线程,并使该线程退出等待队列,进入可运行状态,也就是notify()仅通知一个线程(notifyAll()可以通知同一个共享资源的全部线程)ThreadApublic...

2018-03-06 19:21:53 330

原创 多线程核心技术-并发访问对象&变量

变量的线程安全只会发生在实例变量,而方法内部的变量永远线程安全synchronized关键字:可进行方法锁,块锁,它的特性如下1.多个对象多个锁,创建多个对象实例,调用synchronized方法,不同步2.加锁方法和不加锁方法不影响,但所有加锁的方法会同步串行执行:例如方法A加锁,B不加锁,C加锁,线程A访问方法A期间,线程B可以访问方法B,但线程C需要等待线程A执行完方法A才能访问方法C3.锁...

2018-03-06 19:16:51 262

原创 多线程核心技术-多线程技能

1)创建线程的方法:继承Thread,实现Runnable注意:实例变量与线程安全2)具体方法:isAlive:判断线程状态,进入准备生命周期的线程返回truesleep:睡眠,需要跑出interrupt异常以便线程打断抛出interrupt:打断线程,并不是真的打断,只是做标记,可在线程run方法中判断标记决定是否继续执行,可与return配合使用(不建议,如果有其他业务上的return容易混淆...

2018-03-06 19:12:07 180

原创 Springboot(热部署)

一.springloadedpom文件build中添加<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin&lt...

2018-02-27 14:06:37 154

原创 SpringCloud Eureka

什么是SpringCloud,官网解释:Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems.SpringCloud提供工具给开发者,使其可以很快的创建通用式的分布式系统,目前使用比较广的是SpringCloud Eureka(服务...

2018-02-27 10:07:01 191

原创 Springboot(单元测试)

一.Service层测试在方法右键→go to创建好test类,加上注解@RunWith(SpringRunner.class)@SpringBootTest 表示将启动整个springboot工程在测试方法上加@Test代码如下@RunWith(SpringRunner.class)@SpringBootTestpublic class CourseServiceTest {     @Auto...

2018-02-25 21:26:49 330

原创 Springboot(Aop处理请求)

一.引入pom配置<!-- spring boot aop --><dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-aop</artifactId></dependency> 二.

2018-02-25 21:26:21 222

原创 Springboot(统一异常处理)

@ControllerAdvicepublic class ExceptionHandle {     private final static Logger logger = LoggerFactory.getLogger(ExceptionHandle.class);     @ExceptionHandler(value = Exception.class)    @ResponseBody...

2018-02-25 21:25:44 1976

原创 Springboot(操纵数据库)

spring-data-jpa操纵数据库十分简单,下面举个栗子,假设我们有一个课程表 Course,我们需要创建一个/***第一个参数为课程,第二个参数为id的类型*/public interface CourseRepository extends JpaRepository<CoursePO,Integer> {     //通过讲师id来查询    public List<...

2018-02-25 21:25:14 195

原创 Springboot(配置文件)

spring boot 的配置文件在创建项目的时候会自动生成application.properties文件,但是不建议使用这个文件,不直观,可以直接改为.yml文件,如下具体文件内容spring:  profiles:    active: dev  datasource:    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysq...

2018-02-25 21:24:29 1623

原创 Springboot(校验参数)

例如创建课程,且price必须大于0,分三步1.需要在Course对象中的price加注解@Min(value = 0,message = "课程价格不能小于0")private Integer pirce;2.在入参对象加上注解@Validpublic Result<Course> create(@Valid Course course, BindingResult binding...

2018-02-25 21:24:03 2737

原创 Springboot(启动方式)

1.创建好springboot项目,直接在主方法中运行2.通过终端进入到springboot目录,执行mvn spring-boot:run3.编译程序mvn install,进入target文件,找到.jar文件执行java -jar girl-0.0.1-SNAPSHOT.jar带参数启动java -jar girl-0.0.1-SNAPSHOT.jar --spring.profiles.a...

2018-02-25 21:23:15 365

原创 Spring data

一.继承Repository接口Repository是Spring data的核心接口,不提供任何方法,属于标记接口,内容如下public interface Repository<T,ID extends Serializable> {}实例代码:public interface CourseRepository extends Repository<CoursePO,Inte...

2018-02-25 21:22:10 190

原创 docker

一.什么是dockerDocker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。二.docker思想    1.集装箱(程序打包,不容易丢失)    2.标准化:        运输方式,程序运输到超级码头,应用方从超级码头获取代码        存储...

2018-02-13 15:39:26 184

原创 mysql查询时间段内数据

今天select * from 表名 where to_days(时间字段名) = to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1近7天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(

2018-01-17 16:59:14 3882 1

转载 单元测试

单元测试单测定义单元测试(Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作,程序模块在面向对象编程中一般是指方法。单元测试一般由开发人员来编写,用来保证程序及功能的正确性。为什么需要单测编写单元测试代码并不是一件容易的事情,那为什么还需要去话费时间和精力来编写单元测试呢?减少Bug:如今的项目

2017-09-19 23:16:05 567

原创 nginx负载均衡初探

很久没写了,比较忙,最近由于工作需要又拾起了以前的东西,复习了下,简单给大家分享下也当做个笔记以后需要的时候用背景就不说了,负载均衡,为了支持高并发下的访问我这里用的比较原始的tomcat+nginx来演示这个小demo首先下载个tomcat,copy一份,分别命名1和2就这样吧然后下载个nginx,这里给出一个傻瓜安装方式/usr/bin/ruby -e "$(cur

2017-09-04 19:49:11 209

原创 git命令rebase

最近使用git 记录下其中的一些命令rebase过程1、g co develop 切换到本地develop分支2、g pull origin develop 更新最新的远程develop到本地develop3、g co paynotify-0824 切换回自己需要rebase的分支4、g rebase develop  rebase本地develop分支5、g st 查看rebas

2017-08-29 11:31:01 441

原创 mysql常用统计sql记录

—今天select * from 表名 where to_days(时间字段名) = to_days(now());—昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1;—近7天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <=

2017-08-28 16:03:57 438

转载 分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较

分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较 Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 spring框架无缝集成。不过,略有遗憾的是,据说在淘宝内部,dubbo由于跟淘宝另一个类似的框架HSF(非开源)有竞争关系,导致dubbo团队已经解散(参见http:

2017-08-21 14:57:50 849

原创 Spring之ioc

本来和一个同事说每天都分享点东西的,不过最近遇到点问题,相信他也能理解这几天也没什么心思分享什么,随便聊聊spring的ioc吧,控制反转,都不陌生,将对象的创建和依赖关系交给容器管理,具体怎么实现的,没心情说太多废话了直接说说重点吧给出两个类学生类[java] view plain copypublic class 

2017-08-03 19:44:19 288

原创 代理模式之jdk动态代理

之前我们分享了一篇静态代理,今天分享一下我对动态代理的理解=====相关链接====想了解静态代理的同学请点击幽暗城传送门静态代理有两种实现方式,同样动态代理也有两种,分别是通过jdk和cglib来实现,下面我们分别来说下两者的实现方式jdk代理:只能代理实现了接口的类,没有实现接口的类不能实现动态代理,看下面代码行驶时间代理类public class TimeHand

2017-07-29 23:01:58 161

原创 代理模式之静态代理

设计模式这种古老的问题现在好想没什么人问了,今天看曾经写的代码中,有一些关于代理模式的例子,不作为只是扩充,算是笔记吧,由于东西很简单并且只是用于当笔记所以开门见山代理模式分静态代理和动态代理,这篇博客主要说下静态代理。静态代理的实现很简单,可以通过继承或者聚合,接下来分别给出继承和聚合的demo原始接口public interface Moveable { void move

2017-07-29 01:27:36 173

原创 concurrent包之reentrantlock

接触过并发的同学对concurrent包肯定并不陌生,reentrantlock就是java.util.concurrent.locks包下面的东西,这里面还有我们熟悉的其他可提供线程安全的类,如读写锁,以及aqs这个最经典的类,今天我们主要简单分享下reentrantlock,其他的会在之后进行分享首先reentrantlock是什么,毫无疑问是一个锁,那他同我们曾经使用过的synchron

2017-07-29 00:54:15 294

原创 线程安全无处不在

这篇分享作为一个笔记,原因是今天有人问了我这么一个问题public class Test { private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static void main(String[] args) throws Interrup

2017-07-28 01:17:05 210

原创 线程同步之Semaphore

之前和大家分享过CountDownLatch和CyclicBarrier======相关链接=====想了解CountDownLatch的同学请点击埃索达传送门想了解CyclicBarrier的同学请点击铁炉堡传送门下面说个场景,例如我有一个资源,只想让2个线程访问,当一个线程释放了资源,其他线程才可以有机会访问这个资源,这样的场景用之前的线程同步工具好像都不太好使,所以这里给大家

2017-07-27 15:27:15 190

原创 线程同步之CyclicBarrier

我们之前分享了一个同步工具CountDonwLatch,它的作用是当一定线程执行完之后,才执行后面代码======相关链接====对CountDownLatch感兴趣的同学请点击达拉然传送门而CyclicBarrier的功能是当指定的所有线程处于同一个状态时,同时执行后序代码,我们看下面的例子public class CyclicBarrierDemo { public s

2017-07-27 14:54:01 223

原创 线程同步之CountDownLatch

如何保证线程安全我们都知道,像synchronized,lock等,线程同步使用什么方法呢,这里给大家介绍一个工具CountDownLatchCountDownLatch可以理解为一个线程同步门闩,它基于AbstractQueueSynchronizer包实现的,具体实现方式大家可以看下源码,这里只对其功能做一个分享我们看下面一个例子public class CountDownLatc

2017-07-27 14:35:13 266

原创 HashMap,TreeMap以及LinkedHashMap的区别

刚才看帖子发现有个人说了下他的面试,其中有一段是关于HashMap的问:HashMap是有序的么,回答无序,回答有序的同学请点下面=======相关链接======手写hashmap请点击雷霆崖传送门问:那有没有有序的map,回答treemap和linkedhashmap这里引出了这个问题,为什么这两个可以有序,我先给出一段网上随处可见的他们三者的区别1.HashMap里面

2017-07-26 17:57:35 497

原创 深度优先穷竭算法

今天和大家分享一篇深度优先穷竭算法,不废话直接进入正题有这么一个数组1,2,3,4,5,7,8,11,12,15,21,33,问有没有几个数组之和相加等于51的这种问题可以用穷竭算法来解决,大致思路是这样的从第一个数字开始,选择加不加第二个数字,分为加或者不加,然后下一步在加和不加中分别右选择加不加第三个数字,依次类推,这就是一个递归,下面给出一个图方便大家理解没有画完,一

2017-07-26 15:51:38 307

原创 排序算法之堆排序

之前分享过快速排序以及归并排序,现在和大家分享一篇堆排序=======相关链接=====想了解快速排序请点击雷霆崖传送门想了解归并排序请点击铁炉堡传送门堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[

2017-07-25 15:56:01 211

原创 排序算法之归并排序

今天分享的算法是归并排序,排序有很多种算法=====相关链接====有对快速排序感兴趣的同学请点击锦绣谷传送门进入我们今天的正题,首先引入概念归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。看

2017-07-25 10:36:06 235

原创 排序算法之快速排序

快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。可能光看字面有点难理解,下面我们按照他的定义写一个demo,大家就会掌握快排了首先给出一个无序数组int[] array = new int[]{3,2,5,4,3,

2017-07-24 13:37:21 412

原创 多线程(一)

多线程,互联网必备知识,这里分3次分享第一篇介绍多线程,如何实现多线程,以及多线程的几种状态第二篇通过代码实现多线程各种状态第三篇如何实现线程安全进入正题首先,弄清楚什么是线程,什么是进程进程:运行中的程序,系统分配资源的最小单位线程:可独立执行代码的子任务,系统执行代码的最小单位,进程中的代码总是由某个确定的线程执行弄清楚这些了我们来看下如何创建线程,方法有两种

2017-07-21 19:01:59 238

beautifulsoup

pathon爬虫,beautiful,pathon爬虫,beautiful,pathon爬虫,beautiful

2018-08-09

pygame python

python游戏开发工具,需要配合32位python使用,64位的不要下载

2018-04-12

golang安装包

golang安装包

2018-04-12

distribute python

pygame必备包pygame必备包pygame必备包pygame必备包pygame必备包pygame必备包pygame必备包pygame必备包pygame必备包pygame必备包

2018-04-12

php教程(初级)

php初级教程

2014-10-16

ntko4.0.3.2

ntko4.0.3.2含完整程序,非演示版

2014-07-02

resin-3.0.22

resin3.0.22版本,完全好用的版本

2014-07-02

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除