自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ReetrantLock锁

ReetrantLock锁的初步介绍 public ReentrantLock() { //默认new一个ReentrantLock是创建一个非公平锁 sync = new NonfairSync(); }lock方法public void lock() { sync.lock();//默认是个非公平锁 }sync.lock方法是NonfairSync静态内部类的lock方法static final class NonfairSync exten

2021-03-07 23:28:59 323

原创 HashMap

HashMap底层代码解析,在高并发下,会报ConcurrentModificationException:put方法:public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }hash方法,使用高16位异或低16位主要是从速度,功效和质量来考虑的,减少系统的开销,也不会造成因为高位没有参与下标的计算,从而引起的碰撞:static final int hash(Obj

2021-03-05 11:34:52 250 4

原创 简单了解Springboot以注解的方式注入到Context容器中

注解是注入流程解析注解注入主要使用的Context类是AnnotationConfigApplicationContext@SpringBootApplicationpublic class Application { public static void main(String[] args) { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplication

2021-03-03 13:40:58 504

原创 Netty

简介Netty是一个异步事件驱动的网络应用程序框架,一个基于NIO客户端服务器框架,支持多种协议(自定义的传输协议),可以灵活快速的搭建与开发,支持自定义扩展时间模型和通用的通信API并且Byte Buffer实现了零拷贝;用于快速开发可维护的高性能协议服务器和客户端。学netty之前可以先了解一下NIO模型。特性使用各种传输类型的统一API--阻塞和非阻塞嵌套字。 基于灵活且扩展的事件模型,可将关注点明确分离。 高度可定制的线程模型-单线程,一个或多个线程池。 从3.1版本后真正...

2021-02-27 23:42:03 213

原创 幂等性

场景幂等性的使用的场景是为了避免一个动作重复提交,可能会造成数据不准确。本文使用redis来实现幂等性功能。小场景流程图:maven依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artif.

2021-02-25 22:55:51 108

原创 使用redis实现分布式锁

本文章通过两个方式实现分布式锁第一种方式使用redis中setnx机制来实现,第二种是使用redission组件实现(目前redis官网是推荐使用的)。第一种实现方式:原理:这是设置锁是用到了setnx机制来做。所需要的maven依赖:<!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId&gt

2021-02-25 18:21:27 188

原创 zookeeper做配置中心小案例

a

2021-02-25 13:54:00 230

原创 MYSQL优化问题

1、联表查询时,虽然多表间的查询条件字段都有加索引,但是关联表时,索引不命中,有很大可能是字段的字符集不一致造成的。

2020-01-02 10:13:48 133

原创 缓存击穿、缓存雪崩、缓存穿透

缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有很多种方法可以有效地解决缓存穿透问题,最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个...

2019-07-14 23:28:50 129

原创 Redis基础整理

目录1、redis介绍2、redis性能(官方测试)3、安装与配置Linux 下安装4、redis常用指令1、redis介绍redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些...

2019-07-04 17:21:04 157

原创 kafka 爬坑

最新项目中使用kafka消息中间件遇到的问题,在项目上线的时候跑了一段时间后出现kafka 客户端发送异常。异常信息:41261 mshas passed since last append和30078 ms has passed since batch creation plus linger time;网上查了一大堆的解决方案后未能达到解决效果。后来尝试着调整一下客户端的配置参数。b...

2019-05-23 14:50:43 314

原创 表单便签数据提交相关的问题

表单1:简单的表单数据提交:js代码:document.form1.action=url;  //可以获取form1中的里面的数据提交到后台处理,对的是id+value。document.form1.submit();jquery:post提交multipart/form-data类型的表单:jQuery.ajax({ url:url, type: 'post', ...

2018-06-25 14:26:57 253

原创 从一个浏览器中打开另一个浏览器程序并执行指定的网址

环境:windows系统、ie浏览器、360浏览器。通过js脚本进行打开浏览器。关键js代码: &lt;script type="text/javascript"&gt; function start(strPath){  var objShell = new ActiveXObject("wscript.shell");  var cmd = "cmd /c start C:/Users...

2018-04-02 16:53:02 23226 6

原创 ORACLE 查询速度优化篇

去重函数:ROW_NUMBER() OVER(PARTITION BY 列名,列名 ORDER BY 列名,列名desc) rn,当rn=1的时候,根据指定的列名来去掉重复的数据。非分区表,建索引:建命中索引,根据所需查询的条件来建对应的索引。能加快查询速度。分区表:分区表主要针对数据量大的表进行分区,分区条件可根据按天分区等,具体建的分区要根据实际情况而定,分区表索引,建议建LOCAL索引,而非...

2018-04-02 16:39:10 4408

原创 基于commons-email,web端发送邮件

前几个星期,我发表了有关commons-email的简易发送的案例,之前的案例只是在main方法中成功是实现发送邮件功能。这次,我参考了一下javamail 发送邮件的原理,成功搞定,commons-email在web端邮件发送的成功。之后查找相关资料后发现,commons-email是基于javamail所开发的。下面就是成功过的案例:第一步导入相关jar包,这里我就不多说了,在之前

2016-09-02 11:28:29 898

原创 javamail邮件发送小案例

现在很多网站的注册过程中,大多数都会让用户用邮箱注册,这也方便用户在忘记登陆密码时,在重设密码时,可以发送链接到该注册时填写的邮箱中,让用户可以链接到密码修改页面,这就少了很多程序。    写这个小案例是为了方便一些想做邮件发送功能,而不知道从什么地方下手的程序员更好的接触javamail是怎样实现这一功能的    第一步,先到https://java.net/projects/javam

2016-09-01 22:17:47 1585 2

原创 websocket技术,实现单聊和群聊

基于我上次写的有关tomcat自带的websocket的简单搭建,搭建的链接:http://blog.csdn.net/yayicho/article/details/52080486搭建步骤我就不多说了下面是我写的单聊和群聊的案例前台的代码1、登陆页面,是为了实现多用户在线聊天,说白了就是为了测试这步就省略了在后台登陆后到echo.jsp的传值loginServlet.j

2016-08-26 17:54:21 5708

原创 简易的tomcat的email发送

下面是我参考apache官网中的email组件的案例做的小案例。功能:在自己写的小程序中向指定的邮箱发送邮件,下面是以qq邮箱为例子。第一步:在项目中导入commons-email-1.4.jar 、activation.jar、amil.jar、mailapi.jar、smtp.jar第二步:qq邮箱的设置,开启smtp服务,获取授权并记下来,下面有用到再写测试代

2016-08-14 13:34:45 2808

原创 apache websocket 聊天室的简单案例

第一步:在自己建的web项目中导入tomcat7-websocket.jar、websocket-api.jar,这两个jar包在tomcat的lib中可以找到。第二步:配置WebSocket服务端创建WebSocketConfig类如下:import java.util.Set;import javax.websocket.Endpoint;import java

2016-07-31 20:22:11 3190

空空如也

空空如也

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

TA关注的人

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