自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (11)
  • 收藏
  • 关注

原创 说一下mysql的锁有哪些?

mysql中锁主要分为乐观锁和悲观锁,乐观锁需要自己去实现通常都是加版本号。悲观锁在mysql中是有具体实现的,而且实现的种类比较多。 首先悲观锁可以分为行锁和表锁: 行锁分为共享锁(S)和排它锁(X) 排它锁则分为: 在RR隔离级别下:分为记录锁、间隙锁、临健锁(记录锁+间隙锁) ...

2021-12-28 17:52:59 1133

原创 说一说BIO、NIO(select、poll、epoll)

BIO(blocking)属于同步阻塞IO:监听端口调用accept一直阻塞直到有客户端连接才会继续往下走,随后对该客户端的请求进行R/W操作最终返回,在处理当前客户端请求时其他到来的请求都需要等待当前请求处理完毕才能继续。 缺点:当大量请求到达时等待时间过长会造成请求超时现象。为了解决阻塞导致请求超时现象,出现了非阻塞IO。 NIO(non-blocking)同步非阻塞IO:监听端口调用accept不会一直阻塞着等待客户端连接,而是每次轮询,当返回值为...

2021-12-15 18:31:50 1369

原创 SpringMVC执行流程

SpringMVC是对servlet的一种封装,所以执行流程需要遵守servlet的声明周期,init、serivce、destory 1、当请求到达时首先要进入到FrameworkServlet的service方法中,随后会通过tomcat的源码的解析执行对应的doGet、doPost、doPut等操作。 2、最终都会调用一个processRequest的方法,这个方法中有一些列的设置操作。 3、随后调用doService方法,此方法在...

2021-11-11 11:46:32 304

原创 SpringMVC初始化流程

springmvc其实就是对servlet的一个封装,所以其初始化流程遵循servlet的生命周期。 springmvc是基于spring来进行扩展实现的,所以需要先对spring的容器进行初始化,在进行springmvc容器进行初始化,这就是父子容器。 首先初始化spring容器,扫描web.xml中listen标签,需要配置ContextLoaderListener类或其子类,tomcat启动时会扫描web.xml文件通过这个类的initWebAppl...

2021-11-05 15:30:07 1557 1

原创 说一下JUC和AQS

JUC是java.util.concurrent包的缩写,见名知意concurrent中文译为同步执行的,意思就是并行,所以这个包中主要提供的就是并行处理的一些解决方案,并行处理的解决方案通常都是加锁,所以这个包下的的方法都是采用CAS方式进行加锁的。所谓CAS就是通过java底层的Unsafe类直接对内存进行操作,CAS由三个参数构成:内存值V,旧的预期值A,要更新的值B。当V=A时才会将B修改并且返回true。...

2021-11-04 17:51:37 1055

原创 说一下String、StringBuilder、StringBuffer的区别

String:final修饰类不能被继承,声明变量是不可变的,如果需要改变需要更改引用变量的地址,字符串拼接时需要更改引用地址浪费空间效率低。 StringBuilder:可变字符串,底层采用char[]来存储,数组初始长度count =构造方法参数长度 + 16,append如果长度不够会触发扩容机制:新长度为2 * 当前数组长度 + 2,如果newCapacity 长度小于append参数长度 + 原数组长度则以append参数长度为准进行数组扩容,然后进行数组拷贝...

2021-11-03 17:39:42 67

原创 HashMap原理回答

HashMap是由数组+链表(解决hash冲突的方式)+红黑树(提高效率)构成的。数组初始长度设定为懒加载长度为1 << 4 = 16,最大长度为1 << 30 = Integer.maxValue()。存储时通过对key进行hash算法扰动((h = key.hashCode()) ^ (h >>> 16))获取index,如果index在数组中已经有值则去比较链表中的key值,如果相同则替换,如果不同并且链...

2021-11-03 16:02:43 81

原创 如何排查Redis变慢了的问题

感觉这篇文章写得非常好非常全,记录一下:如何排查Redis变慢了的问题 - 扁豆一号 - 博客园https://www.cnblogs.com/wangyongwen/p/14503236.html

2021-10-20 15:31:02 47

原创 MVCC原理

MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 从一个例子开始,两个客户端(c1,c2同时对一个表进行操作)同时连接数据库,同时关闭自动提交(set autocommit = 0)。例1:同时开启事务(begin)->c1不做操作->c2更新表数据->c2提交(commit)->c1...

2021-10-20 14:25:01 63

原创 redis的缓存击穿、穿透、雪崩及分布式锁

1、击穿 出现原因:一个key过期或未过期但是被淘汰算法(LRU,LFU)清除。正巧这时发生了高并发访问这个key时,会造成击穿redis从而去访问DB,给DB造成非常大的压力。 解决方案:由于redis是单线程,的当大量并发请求到来时在redis中也是需要排队执行,当getkey时此时对于返回null的结果再次请求setnx操作,相当于时加了一把锁,拿到锁的请求去访问DB从而更新key获取,其他返回为null的请求继续获取这把锁,如果获取不到锁就睡眠短...

2021-10-19 22:19:34 140

原创 Mysql为什么要使用B+树作为索引?

如果使用hash作为索引,由于hash是散列无序的,所以如果使用hash若是对范围进行检索的话就需要遍历寻找,这就违背了索引的快速检索的概念。 如果采用二叉树作为索引的话,索引数量足够多,那么二叉树的深度将会足够深,如果要查找的数据在树的最深一层的话那无疑会增加非常大的IO消耗。因此引入了B树的,相对于二叉树的纵向延伸,B树的横向延伸无疑会减少非常多的IO消耗。而B树对于索引存储时需要存储索引的key,指针以及数据,假如以innodb为例,每块大小为16...

2021-10-18 16:31:20 55

原创 垃圾分类查询小程序

给大家分享一个自己做的关于垃圾分类的小程序,界面清爽用法简单,支持关键字查询,语音识别,图像识别三种方式来查询垃圾分类,智能好用,欢迎扫描下方小程序码体验,更多功能陆续更新哦!...

2019-07-15 16:07:08 1230

转载 Spring Cloud 核心组件详解

目录概述一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hystrix六、Spring Cloud核心组件:Zuul七、总结:概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无...

2019-07-04 11:24:08 407

原创 JAVA8 六种线程池介绍

(1) newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。可能导致内存溢出,一般使用newFixedThreadPool代替(2) newFixedThreadPool创建一个定长线程池,可控制线...

2019-07-02 10:50:38 269

原创 Java实现多线程的四种方式

一、继承Thread类创建线程类 Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码。Java使用线程执行体来代表这段程序流。Thread类的声明如下:public class Thread implements Runnable {}可以看到,Thread本...

2019-07-02 10:02:01 111

原创 Java线程基础

一、进程 进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中,几乎所有运行中的任务对应一条进程(Process)。一个程序进入内存运行,即变成一个进程。进程是处于运行过程中的程序,并且具有一定独立功能。描述进程的有一句话非常经典——进程是系统进行资源分配和调度的一个独立单位。  进程是系统中独立存在的实体,拥有自己独立的资源,...

2019-06-19 14:18:19 73

原创 关于gps坐标转百度坐标的 js方法以及java方法

js转换方法/** * 单个坐标转换 * @param point * @returns {BMap.Point} */function GpsToBaiduPoint(point){ var _t = wgs2bd(point.lat,point.lng); var _BPoint = new BMap.Point(_t[1], _t[0]); re

2017-09-28 11:01:30 2944

转载 百度地图 根据标注点坐标范围计算显示缩放级别zoom自适应显示地图

本文记录 如何通过标注点markers的坐标范围来计算百度地图的显示级别zoom。我们要实现的是地图初始化的时候,能够把我们所有的标注点markers显示在地图上,并且让地图有一个合适的显示级别。以提高用户体验。在天地图系列文章里我也介绍了类似的办法来处理天地图的方法,但是也略有不同,天地图的时候我是用的计算经纬度差的方法。 来跟每一个显示级别的差做比较,从

2017-09-25 11:30:48 13651

原创 centos7 mysql数据库安装和配置

一、系统环境yum update升级以后的系统版本为[root@yl-web yl]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) 二、mysql安装一般网上给出的资料都是#yum install mysql#yum install mysql-server#yum in

2017-09-16 13:54:18 139

原创 mysql latin1 乱码变中文

convert(unhex(hex(convert(name using latin1))) using utf8) as name   一段神奇的语句

2017-09-12 13:52:31 5570 3

jsp学生预警管理系统

jsp学生预警管理系统

2021-05-07

java+SqlServer+jsp题库组卷系统

java+SqlServer+jsp题库组卷系统 可作为毕业设计 代码完整 保证可以跑通 如果跑不起来可以私信我

2021-02-25

java面试葵花宝典

一本葵花宝典助你练就java神功,面试所向披靡。

2020-07-08

tomcat6.0.45_x64

tomcat6 64位 欢迎下载使用。

2020-07-08

java学生宿舍设备报修系统 ssh+mysql

java学生宿舍设备报修系统 ssh+mysql 可作为毕业设计 代码完整 保证可以跑通 如果跑步起来可以私信我

2020-07-08

javaweb人事管理系统

java+mysql的人事管理系统,适合作为毕业设计,源码开放,可以跑通,跑不起来可以私信我,帮你跑起来

2020-03-31

java实体转mysql建表语句

好用的java实体转MySQL建表语句,非常实用,不好使你找我!

2019-12-29

你画我猜小程序源码分享

微信你画我猜小程序源码分享,需要的可自行下载导入实用,借鉴等。

2019-11-25

好用idea护眼主题

非常好用的IDEA护眼主题,需要请自行下载

2019-07-02

tomcat7.0.47

tomcat7.0.47。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-09-25

mybatis-generator-core-1.3.2.zip

包含mybatis-generator1.3.2的jar包、mysql数据库连接jar包、mybatis3.2.7.jar以及自动生成代码的配置文件模板。

2017-09-15

空空如也

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

TA关注的人

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