自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 Spring Boot 项目的 API 接口防刷

首先是写一个注解类 拦截器中实现 注册到springboot中 在Controller中加入注解 首先是写一个注解类: importjava.lang.annotation.Retention; importjava.lang.annotation.Target; importstaticjava.lang.annotation.Ele...

2019-11-05 10:02:17 550

原创 Spring 中策略模式的 2 个经典应用,可以用来怼面试官了

一、背景程序员在项目实战中,策略模式用的非常多。二、学习目标会在Spring项目中运用策略模式三、代码例子废话不多说,Java的软件开发们注意啦,开车啦!下面是一个查询业务使用策略模式的案例查询业务A的具体实现:查询业务B的具体实现:查询业务C的具体实现:四、这是子查询业务的调用类分3部分1.注入list的子查询业务对象 2.入参的设置...

2019-08-25 22:45:50 471

原创 设计模式之策略模式

首先我们需要知道策略模式与状态模式是如此的相似,就犹如一对双胞胎一样。只不过状态模式是通过改变对象内部的状态来帮助对象控制自己的行为,而策略模式则是围绕可以互换的算法来创建成功业务的。两者都可用于解决同一个问题:带有大量的if..else…等条件判断语句来进行选择的(小弟初学,不知这样理解是否有误??有误望指出…)。​ 在我们的生活中我们可以通过很多种不同的方式来完成一件事情,这里的每一种方式...

2019-08-25 22:18:32 158

转载 【调侃】IOC前世今生

【调侃】IOC前世今生 前些天,参与了公司内部小组的一次技术交流,主要是针对《IOC与AOP》,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更直观的来学习与理解IOC!也作抛砖引玉之用。(虽说故事中的需求有点小,但看客可在脑海中尽量把他放大,想象成一个很大的应用系统)一、IOC雏形1、程序V1.0...

2019-08-25 22:09:24 140

原创 虚拟机运行时区域

栈是线程独有的,不需要gc,方法区和元数据空间堆是线程共享的,需要gc.内存溢出实战1.java堆内存溢出:package com.test1;import java.util.ArrayList;import java.util.List;/** * -Xms5M  -Xmx5M -XX:+PrintGCDetails -verbose:gc * @author Administrator * ...

2018-07-07 12:43:31 171

原创 导出一个数据库下所有的表的数据结构,然后生成一个包含多个表sheet的excel文档

查看一个表的数据结构:SELECT    IFNULL(COLUMN_NAME,'') AS columnmName,    IFNULL(COLUMN_TYPE,'') AS columnType,    IFNULL(DATA_TYPE ,'')AS dataType,    IFNULL(CHARACTER_MAXIMUM_LENGTH,'') AS length,    IFNULL(IS...

2018-07-03 17:23:33 1255

原创 乐观锁版本机制+100个并发读取数据修改数据

package com.lock;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.concurrent.CountDown...

2018-06-28 13:05:00 1551

原创 mysql 100个线程并发修改数据库某行记录,加锁不加锁结果分析

最近看到了mysql有行锁和表锁两个概念,越想越疑惑。为什么mysql要提供锁机制,而且这种机制不是一个摆设,还有很多人在用。在现代数据库里几乎有事务机制,acid的机制应该能解决并发调度的问题了,为什么还要主动加锁呢后来看到一篇文章,“防止更新丢失,并不能单靠数据库事务控制器来解决,需要应用程序对要更新的数据加必要的锁来解决”。瞬间,世界观都崩塌了。非常不敢相信,于是自己写了代码检验一下。数据库...

2018-06-28 11:43:05 9047 3

原创 mysql 锁机制

行锁:只锁定表的一行记录,其他线程不能读这行记录已经被锁住。页锁:锁定表的一行或多行记录,其他线程不能读start TRANSACTION;select * from fangwifi_agent where agentPin in ('fwf085d2b0113','fwf6a1790422f' ) for UPDATE;表锁:锁定表的全部记录,其他线程不能读select * from fang...

2018-06-28 10:49:47 163

原创 图解java多线程设计模式学习第九章Future模式

假设我们去蛋糕店买蛋糕。下单后,店员一边递给我们提货单,一边说“请您傍晚再来取蛋糕”。到了傍晚,我们就拿着提货单取蛋糕。这时,店员会先和我们说“您的蛋糕已经做好了”。然后将蛋糕递给了我们。Future的意思是未来,期货。假设有一个方法需要花费很长时间才能获取运行结果,那么,与其一直等待结果,不如先拿一张“提货单”。获取提货单并不耗费时间。这里的“提货单”我们就称为Future角色。获取Future...

2018-06-19 23:17:51 163

原创 图解java多线程设计模式学习第七章Thread-Per-Message模式

上司把文件递给下属:“能帮我传真一下这个文件吗”?妻子告诉丈夫:“”老公,帮忙倒一下垃圾“”。像这样将工作委托给其他人的情况很常见。这个人把工作拜托给别人之后,就可以返回继续做自己的工作。Thread-Per-Message:每个消息一个线程的意思。所谓Per ,就是“每”的意思,Message在这里可以理解为“命令” 或“请求”。为每个命令或请求新分配一个线程,由这个线程来执行处理。在Threa...

2018-06-19 22:35:52 170

原创 图解java多线程设计模式学习第六章Read-Write Lock模式

学生们正在一起看老师在黑板上写的板书。这时,老师想插掉板书,再写新的内容。而学生们说道:“”老师,我们还没看完了,请先不要摖掉“”。于是,老师会等待大家都看完。当线程“”读取“”实例的状态时,实例的状态不会发生变化。实例的状态仅在线程执行“”写入“”操作时才会发生变化。从实例的状态变化这个观点来看,“”读取“”和“”写入“”有着本质的区别。在...

2018-06-18 00:53:45 150

原创 图解java多线程设计模式学习第五章Producer-Consumer模式

生产者消费者模式,生产者安全地将数据交给消费者。虽然仅是这样看似简单的操作,但当生产者和消费者以不同的线程运行时,两者之间的处理速度差异便会引起问题。例如,消费者想要获取数据,可数据还没有生成,或者生产者想要交付数据,而消费者的状态还无法接收数据等。一般来说,在该模式中,生产者和消费者都有多个,当然生产者和消费者有时也会只有一个。有3位糕点师制作蛋糕并将其放到桌子上,然后有三个人来吃这些蛋糕。糕点...

2018-06-17 22:23:25 207

原创 图解java多线程设计模式学习第四章Balking模式

所谓Balking,不适合执行这个操作,或者没必要执行这个操作,就停止处理,直接返回。示例程序:程序将定期将当前数据内容写入到文件中,当数据内容被写入时,会完全覆盖上次写入的内容,只有最新的内容才会被保存。另外,当写入的内容与上次写入的内容完全相同时,再向文件写入就显得多余了,所以就不再执行写入操作。也就是说,该程序以"数据内容存在不同"作为守护条件,如果数据内容相同,则不执行写入操作,直接返回(...

2018-06-17 13:54:11 543

原创 图解java多线程设计模式学习第三章Guarded Suspension

Guarded是被守护的意思,Suspension表示等待。如果执行现在的处理会造成问题,就让执行处理的线程进行等待,这就是Guarded Suspension模式。举一个例子:客户端不断的发送请求,服务端不停地接受请求,并且服务端处理请求的顺序是FIFO,先进来的先处理,没有请求则等待。package GuardeSuspension;public class Request {    priv...

2018-06-17 13:23:25 164

原创 mysql 主从同步搭建

配置master节点中的my.cnfvi /etc/my.cnfserver-id=1log-bin=mysqlbinbinlog-do-db=guoxiaopeng #同步的数据库binlog-ignore-db=mysql   #不同步的数据库binlog-ignore-db=information_schema   #不同步的数据库进入mysql命令控制台,    cd /usr/local...

2018-06-12 13:44:38 120

原创 大话设计模式之策略模式

需求:做一个商场收银软件,营业员根据客户所购买商品的单价和数量,向客户收费。public class Program {    /**     *      * @description : 根据运算规则计算出金额     * @author : guoxiaopeng     * @date : 2018年6月11日 上午11:56:52     * @param type 运算类型,包括打几折...

2018-06-11 13:40:00 119

原创 大话设计模式第一章 简单工厂模式

请用java面向对象语言实现一个计数器控制台程序,要求输入两个数和运算符号,得到结果。public class Program {程序1实现:   public BigDecimal getResult(String tempar,Double d1,Double d2){        BigDecimal number = null;        BigDecimal bdecmalA =...

2018-06-11 11:21:46 182

原创 git初学

git  add [file ]:把一个文件添加到暂存区git commit -m "提交信息描述" [file]   把一个文件提交到本地库git log   提交历史记录git log --onelinegit reflog 带索引的提交日志git reset --hard 索引名称  回复到指定索引的历史版本中git reset --hard^^^    一个^表示  后退一步 git re...

2018-06-08 09:22:38 94

原创 vmare workstation 安装centos7

1  去网上下载一个vmare workstation,在这懒人就不提供地址了。2. 3.4.5.6.7.8.9.10.一路下一步,11.12.之后会出现这个界面12.13.14.15.16.17.设置root账户密码,为了好记默认123456,会提示密码设置太简单,没关系,再点一次完成就OK了18.到此,已经开始安装了,稍等一会,系统自动会重启,输入密码就可以登录了19.20.接着,我们在win...

2018-05-19 21:32:49 106

原创 centos系统设置网络

对于 CentOs 7 ,setup的命令已经过时 ,应该通过 nmtui 命令来设置网络 

2018-05-19 20:48:46 369

翻译 centos安装mysql忘记初始密码

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对 外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全 状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。2.修...

2018-05-19 20:42:28 1430

转载 centos系统安装MySQL5.7.22

官网链接:https://dev.mysql.com/downloads/mysql/5.7.html#downloads或在线下载:wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz2、解压tar zxvf mysql-5.7.22-linux-glibc2.12-x...

2018-05-19 20:31:59 1734

原创 java中的接口和内部类

package com.test5;/** * @描述 :  * @创建者 : guoxiaopeng * @创建时间 : 2017-8-4 上午9:18:31 */public class Cpu implements PCI{    @Override    public void start() {        System.out.printl

2017-08-04 11:47:14 173

递归算法的实现

自己练习写的一个递归,建议初选者看一下。private Long id;//节点ID private String nodeName;//节点名称 private Long parentid;//父节点id public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getNodeName() { return nodeName; }

2015-09-29

页面播放器

封装的一个插件,只要把js应用到项目里就可以用了。

2015-09-29

页面+缓存+线程.zip

页面+缓存+线程,使服务器减少压力,项目中的真实案例。

2015-03-30

省市级联列表

省市级联列表,数据库是SQLserver2008,大家可以参考一下,有什么需要改正的,可以提出来一起改正,大家一起学习。

2015-03-30

WdatePicker.js

Calender Eightysix是一个基于MooTools开发的日期选择控件。整个控件只有9.5kb,支持通过CSS定义外观主题(已默认提供三种主题)。支持设置默认日期,日历最大/最小日期,日期格式,按周和按日显示等。

2015-03-27

多线程参考资料

多线程参考资料

2014-12-10

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

TA关注的人

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