- 博客(35)
- 问答 (3)
- 收藏
- 关注
原创 一文读懂间隙锁(Gap Locks)
间隙锁是在在索引记录间隙中的一种锁,或者是锁在第一个之前或最后一个之后。例如:SELECT c1 FROM t WHERE c1 BETWEEN 10 and 20 FOR UPDATE;上面语句就会阻止其他事物插入一个c1列的值在10-20之间,无论之前有没有值存在,因为这之间的所有间隙都已经被锁。间隙可能跨越单个索引,多个索引值,也可能是空。间隙锁是在性能与并发上做了一个权衡。在有些事物隔离级别上存在,有的则没有。间隙锁在使用唯一索引查询唯一行记录是不需要的,例如id列有唯一索.
2020-09-04 16:00:32 5746 2
原创 给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列
public boolean checkInclusion(String s1, String s2) { if (s1.length()>s2.length()){ return false; } char[] nums1=new char[26]; char[] nums2=new char[26]; for (int i = 0; i < s1.length(); i++) { nums1[s1.charAt(i)-.
2020-07-27 17:22:42 2883
原创 无重复字符最长子串
public int lengthOfLongestSubstring(String s) { int max=0; int i=0; int temp=0; char[] array =s.toCharArray(); Map<Character,Integer> hashMap = new HashMap<>(); while(i<array.length){ if (!hashMap.containsKey.
2020-07-20 18:08:54 200
原创 日志打印出来的对象内存地址怎么办?
我们在开发的时候,经常要打印日志,有的时候会在一些代码的关键节点处进行日志输出。使用logback/log4j等原生的日志框架,在日志输出的时候可能会遇到一个问题,那就是经常我们要打印对象的时候,如以下代码:log.info(“req = {}”, aRequest);打印结果却是以下形式:com.hollis.java.ways.ApplyRequest@39ddf169其实原因比较简...
2020-04-27 17:49:40 2846
原创 聊聊BlockingQueue(实现篇)
上图是BlockingQueue接口的主要实现我们先看第一个ArrayBlockingQueuepublic void put(E e) throws InterruptedException { checkNotNull(e);//判空 final ReentrantLock lock = this.lock;//创建锁 lock.lockInterr...
2020-02-28 20:17:53 190
原创 聊聊BlockingQueue(基础api篇)
插入数据boolean add(E e);//成功返回true,没有可用空间的化抛出IllegalStateException异常,如果是固定容量的队列,建议使用offer方法boolean offer(E e);成功返回true,失败返回falsevoid put(E e) throws InterruptedException;//一直阻塞等待,直到有空间可用,当等待被中...
2020-02-23 19:34:43 288
原创 springboot中mybatis打印sql
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
2019-09-18 09:40:34 186
原创 记录一次jvm内存回收情况
HeapPSYoungGen total 328192K, used 302348K [0x00000000e0000000, 0x00000000f5500000, 0x0000000100000000) eden space 308224K, 95% used [0x00000000e0000000,0x00000000f1e400e0,0x00000000f2d00000)...
2019-08-12 09:04:07 301
原创 filter中调用dubbo接口方法
private CallPipeLineFacade callPipeLineFacade;@Overridepublic void init(FilterConfig filterConfig) throws ServletException { ApplicationContext context = WebApplicationContextUtils.getWebApplic...
2019-07-19 15:07:55 908
原创 elasticsearch之基本概念
下面几个关于es的核心概念,理解这些概念可以让我们学习更加轻松Near Realtime (NRT) 近实时Elasticsearch 是一个接近实时的搜索平台,也就是稍微会有一些延迟,默认是1s,从你创建一个索引文档开始到这个文档可以被搜索需要耗时1s,但是我们可以设置RefreshPolicy实现实时,但是这样会使服务器频繁刷新索引。Cluster(集群)集群是一个或者多个se...
2019-07-03 17:14:03 269
原创 redis缓存之缓存雪崩,缓存穿透,缓存击穿
个人主页缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。这就是缓存雪崩。大约在...
2019-06-03 18:44:11 271
原创 zookeeper分布式锁之接口优化
最近在项目中加入了分布式锁机制,出现了一些性能问题,于是对接口进行了一系列优化。优化之前优化之后之前没有压测,加入分布式缓存后遇到性能问题1、无超时时间遇到的问题interProcessMutex.acquire()使用默认获取锁的方法,不传入超时时间,会导致一个请求在没有处理完释放锁之前,所有新的请求(新线程)都在等待,线程不断积累,将内存耗尽,应用拒绝服务...
2019-05-17 18:19:28 665
原创 redis踩坑指南
Redis踩坑1:value序列化现象:cannot be cast to java.lang.String一个简单方法,list添加操作,key,value转字节数组下列方法序列化value可以看到serialize方法多个实现方法然后我们在xml中配置的是StringRedisSerializer我们value传入的是一个自定义对象,而...
2019-03-19 14:46:18 731
原创 mysql数据导入elasticseach
logstash配置文件如下:input { jdbc { # mysql相关jdbc配置 jdbc_connection_string => "jdbc:mysql://localhost:3306/automall_data?useUnicode=true&characterEncoding=utf-8&useSSL=false" jdbc...
2018-10-12 16:41:04 268
原创 jsonp跨域请求可能遇到的问题
1、接口只支持GET方式2、关于回调,需要在服务端返回值外用回调方法名包裹,返回前端,看实例代码吧!前端发起请求function checkAjax(){ $.ajax({ type:"post", url:"http://go366.club/jsonpTest", dataType: "jsonp", jsonp:
2017-08-02 11:06:04 1076
原创 centos部署web项目,nginx代理域名解析遇到的问题
1、nginx代理开放80端口2、web项目在tomcat下没有加载:jdk版本不一致,centos自带openJDK,需要卸载重新安装3、nginx代理后,域名后面出现双斜杠,导致重定向302次数过多,需要在你的location下的url末尾添加一个斜杠"/"
2017-07-25 17:51:54 761
原创 RabbitMQ
RabbitMQ是一个消息中间件,在一些需要异步处理、发布/订阅等场景的时候,使用RabbitMQ可以完成我们的需求。 下面是我在学习RabbitMQ的过程中的一些记录,内容主要翻译自RabbitMQ官网的Tutorials, 再加上我的一些个人理解。我将会用三篇文章来从RabbitMQ的Hello World介绍起,到最后的通过RabbitMQ实现RPC调用, 相信看完这三篇文章大家应该会对Ra
2017-05-03 11:21:45 393 1
原创 动态代理
一、概述1. 什么是代理我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的;其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次对客户群体的“过滤”。我们把微商代理和厂家进一步抽象,前者可抽象为代理类,后
2017-03-29 17:51:01 389
原创 session共享
使用redis来共享session修改tomcat的context.xmlhost="localhost"port="6379"database="0"maxInactiveInterval="120"/>lib下添加如下jarcommons-pool-1.6jedis-2.1.0tomcat-redis-session-manager-1.2-
2017-01-10 13:52:41 372
原创 搭建springmvc
本文用到的环境相关版本介绍本文的tomcat会以maven插件的形式集成至mavenmaven3.2.5Intellij IDEA 15jdk1.8*Spring3.2.4tomcat-maven-plugin2.1一、用maven+Intellij IDEA创建web项目1.首先新打开IDEA,新建一个project2.next之后填写一些名称
2016-12-21 19:46:33 470 1
原创 mysql优化基本常识
单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加
2016-12-05 11:39:16 403
原创 让Cas单点登录系统在移动端,PC端,javaweb以及前后端分离等场景下适用
说在前面:本来的cas单点登录系统是专门为javaweb所开发的,所以在支持javaweb,这样说好别扭,还是直接用Jsp代替吧,也就是说,我们在jsp方面是基本不用做太大改动的,需要修改认证方式,以及需要验证票据等为数不多的修改。但是针对于其他方向,我们就该下一些功夫了,尤其是在html做的前后端分离的情况下下面对每个场景做单独阐述一、在jsp下场景的应用,这个时候我们需要修改ha...
2016-11-22 10:14:49 15040 7
原创 js常用技巧
JavaScript是一个绝冠全球的编程语言,可用于Web开发、移动应用开发(PhoneGap、Appcelerator)、服务器端开发(Node.js和Wakanda)等等。JavaScript还是很多新手踏入编程世界的第一个语言。既可以用来显示浏览器中的简单提示框,也可以通过nodebot或nodruino来控制机器人。能够编写结构清晰、性能高效的JavaScript代码的开发人员,现如今已成
2016-11-10 10:26:46 394
原创 2016/11/9
一、css使用小技巧引入img { border-color: green; border-width: 10px; border-style: solid; border-radius: 50%; }二、jquery动画效果//上下颤抖 $("button").addClass("animated bounce"
2016-11-09 19:02:50 322
原创 log4j 使用简介
直接上代码:log4j.rootLogger=info,info,error,debugger #log4j.appender.stdout=org.apache.log4j.ConsoleAppender#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout#log4j.appender.stdout.layout
2016-11-03 14:20:28 392
原创 CAS 单点登录之 单点登出(SLO)
说在前面最近刚刚接过来公司的单点登录,发现网上对单点登录的介绍还是蛮多了,不论是使用webflow的传统方式交互,还是使用流行的restful接口方式认证,但是对登出的介绍却不多,而且内容大多雷同,所有打算将单点登出在这里记录一下,也希望有不当的地方帮指出,共同进步一、概念CAS认证服务器支持了单点登出(Single Logout),单点登出意味着用户不仅从cas服务器退出,也从所
2016-10-28 17:24:19 3909 4
原创 cas单点登录的初步了解
特别声明,楼主学一个技术的时候一般会选择去该技术官网学习,拿到一手资料,毕竟别人翻译过的总会和自己的了解有一些偏差,所以对于这次要和大家分享的这个单点登录cas我大概会根据官网提供的信息加上我自己的一些理解和大家一一道来,如有存在疑问或者不恰当的地方,欢迎大家指正。一、首先看一下结构图从结构图我们可以看出,cas由cas客户端和服务端两部分组成,他们通过不同的协议(cas prot
2016-09-23 10:25:51 917 3
原创 SSO认证服务器实现原理(一)
单Web应用登录,主要涉及到认证、授权、会话建立、取消会话等几个关键环节。在多系统,每个系统也会涉及到认证、授权、会话建立取消等工作。那我们把每个系统的认证工作抽象出来,放到单独的服务应用中取处理,我们把这个负责认证工作的系统叫做认证中心。下面声明两个概念,局部变量和全局会话局部会话:浏览器客户端与应用系统之间保持的会话。全局会话:浏览器客户端与认证中心的会话。实现单点登录sso我
2016-09-18 10:51:25 3640
转载 给自己看
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最近问LZ的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。
2016-08-31 10:08:17 470
转载 借鉴
找出数字数组中最大的元素(使用Math.max函数)var arr = [61, 22, 31, 4, 5];// 方法1var max = 0;arr.forEach(function (value, index) { max = Math.max(value, max);});// 方法2Math.max.apply(null, arr)转化一个数字数组为funct
2016-06-12 09:38:49 357
原创 mybatis常见问题
记住先看看有没有拼写错误Mapped Statements collection does not contain value for 等问题 常见解决思路: 1、mapper.xml中没有加入namespace 2、mapper.xml中的方法和接口mapper的方法不对应 3、mapper.xml没有加入到mybatis-config.xml中(即总的配置文件),例外:配置
2016-05-25 13:55:06 773
原创 oracle转db2出现的问题
本次公司项目采用的springmvc+mybatis,数据库为DB2(因为是银行的项目),所以原来的开发框架理念提供的sql文件有些是不太适用,所以要稍作修改。下面就罗列几点 db2和oracle查询序列 DB2中:nextval for sequencename ,prevval for sequencename select nextval for
2016-05-23 14:36:51 626
原创 jQuery自动完成插件autocompleter 使用注意事项
最近做项目,客户提出要将查询功能做成自动提示的,类似于百度的,后来查了资料,发现不需要自己从头实现,有比较好的方案,就是使用jquery中的autocompleter 插件,下面上代码示例本地JSON来源:var data = [ { "value": "1", "label": "one" }, { "value": "2", "label": "two" },
2015-12-27 20:04:31 4282
空空如也
导出excel遇到问题 javaweb
2016-11-16
hibernate映射oracle视图问题
2016-08-10
weblogic的项目,引用jstl报错,错误如下
2016-07-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人