自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 林晓斌mysql45讲总结笔记

一.一条sql是如何运行得mysql结构:主要由server层和引擎两个部分组成,server层由连接器,查询缓存,分析器,优化器执行器组成,引擎有innoDb,memory,myISAM等引擎连接器主要与客户端建立连接,获取权限,使用show processlist显示当前有多少个连接。command这一列表示连接状态。如果客户端连接一直没有使用,一段时间后将会被干掉,由wait_timeout指定,默认8小时。mysql拿到查询请求后,会先请求查询缓存,查询缓存以key-value形式(k

2021-03-07 16:16:25 1845

原创 招行笔试算法题

/** * 招行笔试算法题:从a数组头或尾取出一个数 * 第i次取的值为ax,那么第i次的价值为b[i - 1]*ax, * 价值总和为前i-1次价值之和加上第i次的价值 * 知识点:双指针加动态规划 * @param nums int整型一维数组 * @param values int整型一维数组 * @return int整型 */ public int getMaxValue (int[] nums, int[

2021-03-07 16:07:33 2159 12

原创 快手算法面试题:求从两个有序数组选出两个数,能得出的最小差值,取绝对值

/** * 快手算法面试题: * 求从两个有序选出两个数,能得出的最小差值,取绝对值 * 知识点:变种二分法,寻找边界 */public class Main { public static void main(String[] args) { int[] arr1 = {1,2,676}; int[] arr2 = {3,5,7}; System.out.println(new Main().fun(arr1, arr2)); }

2021-03-02 23:57:03 590

原创 并发编程的艺术读书笔记(一)

并发编程的艺术读书笔记1.synchrouniszed底层实现?首先synchrouniszed的锁是存在对象头中的markword,基于monitorenter和monitorexit指令实现,monitorenter指令在编译后插入到字节码开始位置,monitorexit插入到结束的位置,jvm保证这两个指令是一一对应的,执行到monitorenter指令后尝试获取monitor,获取成功则获得锁,此时其他线程也来获取monitoer就会进入到同步队列,线程阻塞直到持有monitor的线程释放

2021-02-07 00:06:10 83

转载 【无标题】

Redis分布式锁的正确实现方式前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。不会发生死

2022-05-10 18:37:52 93

原创 快速排序算法及详细理解

/**算法理解:1 i向右扫描比base = sortSTr[left]还小的数,直到遇到比base大的数停下来2 j向左扫描比base大的数,直到遇到比base小的数停下来3 可见i扫描过得的数一定比base小,j扫描过得数一定比base大4 1,2都成立时交换i,j位置,是为了保证3的成立5 当i,j相等时,将sortSTr[i]和base交换,使得base与sortSTr[i]交换后,base左边的数一定都比base小,base右边的数一定比base大,此时完成了快排的第一轮6 第二

2021-03-07 23:26:19 195

原创 vue组件之vuex

vuex使用:state中定义数据:const state = {number : 1}getter中写获取值的方法const getter = {getFunction(state){return state.number = ??}}页面中取值:$store.getters.getFuntionactions类比view层,用于对state中的数据进行操作,actions中...

2019-10-21 11:35:34 107

原创 js有趣的解构表达式和展开运算符

1、…展开运算符用于:(1)将一个数组展开,比如fx(x,y,z)arr = [1,2,3]可以直接这样调用fx(…arr),直接使用解构表达式展开来传递参数很方便(2)数组合并如:arr = [1,2,3]arr2 = [1,2,3,…arr] // arr2 = [1,2,3,1,2,3]2、解构表达式可以方便对数组或者复杂对象里的元素进行操作let o = {name:“n...

2019-09-26 20:57:58 520

原创 vue项目中使用mock

1、src下新建mock文件夹,mock文件夹下新建response目录 ,造后台接口数据,输出getUserInfoimport Mock from ‘mockjs’const Random = Mock.Randomexport const getUserInfo = (options) => {const userInfo = []for (let i = 0; i <...

2019-09-23 16:16:31 369

原创 zookeeper学习(3)--实现分布式锁

1、实现原理zookeeper实现分布式锁的原理为:(1)每个客户端在/node节点下创建临时的有序节点(临时节点一旦断开连接即会被删除,而有序节点,则序号靠前的节点先获得锁)。(2)每个客户端都会去判断自己是不是排序最前的那个锁节点,如果是第一个,则获得锁,如果不是,则监控前一个节点的变化,若前一个节点对应的客户端执行完毕或节点因连接中断等被删除,释放锁后,即此客户端再次监听自己是否是排序...

2019-09-05 14:41:53 85

原创 zookeeper学习(2)--zookeeper原理介绍

1、zookeeper实现分布式协同的原理zookeeper采用共享存储的方式,当主节点对某个从节点的任务分配信息作出改变时,从节点会得到zookeeper的通知,取得自己最新的任务分配,完成任务后将任务完成情况汇报给zookeeper,主节点订阅了该任务的完成情况,将得到关于该任务完成的通知。2、znodezookeeper将任务分配,完成情况保存在每一个znode上,采用了类似文件系统的...

2019-09-04 17:26:46 103

原创 zookeeper学习(1)--zookeeper的安装和使用

1、下载zookeeper,执行:wget:http://apache.fayea.com/zookeeper/stable/2、解压 tar zxvf apache-zookeeper-3.5.5.tar.gz3、进入conf目录: cd ./apache-zookeeper-3.5.5/conf,修改配置文件mv ./zoo_sample.cfg ./zoo.cfg4、修改zoo.cfg...

2019-09-04 16:25:12 109

原创 linux下es安装及配置步骤

linux下es安装及配置步骤:(1)es是基于java开发,所以需要先安装jdk,(2)解压后修改config下的elasticsearch.yml,network.host: 172.xx.xx.xx #监听的ip地址,设置地址为本机地址,如果是0.0.0.0,则表示监听全部ip#配置 elasticsearch 允许跨域访问http.cors.enabled: truehtt...

2019-06-30 19:32:38 5547

转载 redis面试总结

redis面试总结http://blog.csdn.net/guchuanyun111/article/category/6335900(1)什么是redis?Redis 是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正)(2)Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存...

2019-04-17 23:45:40 81

原创 同步异步单线程多线程总结

同步就是必须按部就班,一步一步的执行,上一步还没执行完就不能执行下一步。异步就是可以不用等待任何返回结果,可以继续执行下一步。多线程是异步的一种实现方式。js是单线程的,按道理无法实现异步,但是浏览器可以帮助js实现异步。...

2019-04-17 23:34:15 470

转载 spring各个包详解

转载网址:http://www.cnblogs.com/leehongee/archive/2012/10/01/2709541.htmlspring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar。spring-src.zip就是所有的源代码压缩包...

2019-02-15 09:57:09 1347

原创 final关键字用法总结

final关键字意为不可改变的。1、用在引用型成员变量上,表示该类的引用地址不可改变,但是其对象里的值是可以改变的。2、用在基本类型的成员变量,则表示其值不能改变。ps:上述两种用法中,修饰的变量必须在声明时初始化,或在构造方法中初始化。3、修饰方法参数或局部变量上,则表示在整个方法中,我们不会(实际上是不能)改变参数的值。4、修饰类,则该类不可被继承...

2019-02-13 11:25:04 109

转载 Java内部类详解

Java内部类详解说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲:一.内部类基础二.深入理解内部类三.内部类的使用场景和好处四.常见的与内部类相关的笔试面试题一.内部类基础在Java中,可以将一个类定义在另一个类里面或者...

2019-01-30 14:20:30 88

转载 如何自定义注解类

注解@Retention的作用 @Target({ElementType.TYPE}) 注解注解@Retention可以用来修饰注解,是注解的注解,称为元注解。Retention注解有一个属性value,是RetentionPolicy类型的,Enum RetentionPolicy是一个枚举类型,这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 Re...

2019-01-29 15:12:23 1128

转载 SpringMvc通过自定义注解在方法的参数中注入数据

SpringMvc通过自定义注解在方法的参数中注入数据说一个场景,有时候我们做后台业务的时候,经常需要取session中存储的用户信息,所以免不了一直需要写下面这一段又长又无聊的代码:MemberCommand memberCommand = (MemberCommand) request.getSession().getAttribute(SessionAttr.MEMBER_DETAIL)...

2019-01-26 18:47:30 1316

原创 理解父类指向子类

例子:public class Super { protected int a = 1; void say(){ System.out.println(&amp;quot;superSAy&amp;quot;); }}public class Sub extends Super{ public int a = 2; void say(){ Syste...

2019-01-19 01:20:15 155

原创 设计模式之观察者模式

观察者模式例子:1、一个被观察者接口Observed,有添加add、删除del、通知notify观察者的方法2、一个具体被观察的类ObservedImpl,实现1中的被观察者接口Observed,,有一个属性pro,这个属性发生改变时调用通知观察者的方法notify3、观察者接口Observer,有一个更新信息的方法updateInfo,需要传入被观察类ObservedConcrete的属性...

2019-01-19 00:58:14 66

原创 设计模式之适配器模式

适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。适配器模式有两种:类适配器、对象适配器、接口适配器前二者在实现上有些许区别,作用一样,第三个接口适配器差别较大。直接上代码:父接口SuperA和SuperB:package com.my.proxyDemo;public interface Super...

2019-01-17 22:06:11 67

原创 mysql存储过程(二)

1、条件语句例子DELIMITER //CREATE PROCEDURE demo4(IN roleid INT,IN i INT)BEGINIF i &gt; 1000 THENINSERT into t_role VALUES(roleid,‘22222’);ELSEIF i &gt; 2000 THEN --注意elseif语句后面要加then,endif后面有分号SELECT...

2019-01-16 22:33:13 107

原创 mysql存储过程(1)

1、in参数的理解DELIMITER CREATEPROCEDUREselectUser1(INuseridINT)BEGINSELECT∗fromtuserWHEREid&amp;amp;gt;userid;ENDCREATE PROCEDURE selectUser1(IN userid INT) BEGINSELECT * from t_user WHERE id &amp;amp;gt; user...

2019-01-16 00:49:48 96

原创 mysql索引详解

索引可以提高查询效率,将随机I/O变为顺序I/O,mysql的索引采用的是B+Tree索引数据结构,那么该如何创建索引?一、创建索引语句ALTER TABLE table_name ADD INDEX index_name (column_list)ALTER TABLE table_name ADD UNIQUE (column_list)ALTER TABLE table_name A...

2019-01-13 23:30:06 277

原创 Nodejs学习笔记(二)--流的操作

1、读取流var readStream = fs.createReadStream(“57b51ea9Nb862ca5e.png”);readStream.on(“data”,function(chunk){console.log(chunk);});readStream.on(“end”,function(){console.log(“end”);});readStream.on...

2018-12-20 21:29:05 341

原创 Nodejs学习记录(一)

一、 安装NodeJs在Windows上安装时务必选择全部组件,包括勾选Add to Path,安装完成后,在Windows环境下,请打开命令提示符,然后输入node -v,如果安装正常,可以看到版本号。安装完成后,在控制台输入node可进入node交互界面,在这里你可以写任何js代码,例如:console.log(“nodejs”);连续按2次crtl+c可以退出交互模式。二、 安装n...

2018-12-20 01:00:01 135

原创 Mysql隔离级别详解

事务的四个特性:1、原子性:每一个事务是一个最小整体,要么执行成功,要么执行失败,不可能出现执行一半的情况。2、一致性:数据的完整约束保持一致状态,比如a和b一共有20元,无论a与b之间如何转账,都不可能改变这个总和。3、隔离性:一个事务在操作同一个数据,只有操作完成了其他事务才能操作这个数据。4、持久性:一个事务成功执行后将被保存到数据库,啊不能再回滚。四种隔离级别:1、read u...

2018-12-17 21:51:33 152

原创 js、javascript、jquery(1)

1、js中定义变量如果不加var则为全局变量(不管定义在哪)2、json={“a”:“a”} ;json.queryStr = queryStr;这样可以直接为json新定义一个变量并赋值3、jqueryVolide的ajax加前端校验,*采用button的提交方式,不需要$(&quot;&quot;).click(function(){}),但是button的type属性需为submit4、on可绑定未来元素...

2018-12-07 16:09:04 153

原创 application.yaml中配置没有生效问题解决

如果配置文件确认没有错误但是没有生效首先是要到编译目录去查看是否被编译过去了,如果没有,请先将项目clean在重启tomcat,切记另外,yaml文件中的那些坑:(1)冒号:后面必须有空格,下级属性缩进一格(只支持空格不支持制表符tab)(2)保证不能有重复的一级节点。(3)如果参数是以空格开始或结束的字符串,应使用单引号把他包进来。如果一个字符串参数包含特殊字符,也要用单引号包起来。如...

2018-11-08 20:41:07 12341

原创 idea右端maven结构工具中项目或jar包的红色波浪线错误解决

idea右端的红色波浪线错误解决:和eclipse中解决思路一致,要么是jar包没下载下来或是jar包冲突(1)搞清楚项目依赖关系,找出是哪些jar包出了问题,方案一、在出现波浪线的项目的pom文件中右键reimport,将出问题的依赖配置删掉,在粘贴上去,重新引进方案二、在你的maven的repository中将lastUpload后缀的全部删掉,将显示波浪线的jar包的文件夹删掉(有时候...

2018-11-01 22:42:32 2810

原创 Springboot学习笔记

Springboot学习笔记一、springboot入门1、 建立空的工程,引入pom依赖&amp;lt;!—指定父工程 --&amp;gt;org.springframework.bootspring-boot-starter-parent2.0.4.RELEASE org.springframework.boot spring-boot-start...

2018-10-30 22:26:46 111

原创 错误解决:OutputStream has been called

错误解决:OutputStream has been called分析:网上千篇一律都是说在页面上清除out缓存,然并卵,经过分析我自身并没有调用过输出流,报这个错误很不明显,于是跟到springmvc中可以看到错误的根源是json解析错误:可能原因:(1)表内自关联Direct self-reference leading to cycle(2)实体类Integer的成员变量为null时...

2018-10-22 13:00:33 236

转载 解决创建maven项目jdk默认版本不对的问题

修改maven的settings.xml文件。添加以下行,jdk版本改为自己需要的版本:&lt;profile&gt; &lt;id&gt;jdk-1.7&lt;/id&gt; &lt;activation&gt; &lt;activeByDefault&gt;true&lt;/activeByDefault&gt; &lt;...

2018-10-14 12:02:32 1650

空空如也

空空如也

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

TA关注的人

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