自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (8)
  • 收藏
  • 关注

原创 10分钟理解MVCC并发版本控制原理+实践检验

10分钟理解MVCC并发版本控制原理+实践检验文章目录10分钟理解MVCC并发版本控制原理+实践检验一、准备工作二、问题引入三、深入分析3.1 什么是mvcc3.2 mvcc解决了什么问题数据库并发场景有三种,分别为:3.2 mvcc实现原理隐式字段undo logRead View3.3 完整流程四、总结五、不足待继续深入的地方六、参考资料一、准备工作1.1 先进入某个database(没有则创建),创建2张表,分别插入一条记录CREATE TABLE `user` ( `id` int(11

2021-01-25 12:42:34 495

原创 接口性能优化怎么做?

为什么要做接口性能优化想象一下以下几个场景:我们在获取一个用户详情接口时,刷了无数次,浏览器就在那转圈,硬是刷不出来,打开控制台,显示接口超时假如我们服务A有个批量发营销短信的任务,服务A用批量的userid调服务B的用户服务以获取用户的手机号,从而完成短信发送功能。奈何服务B的通过userid接口获取用户详情的接口平均响应500ms以上,且接口请求量增大时,接口耗时明显上升,最后导致服...

2020-05-03 21:10:00 6068 1

原创 Java极速读取超大文件(附源代码)

Java极速读取超大文件Java读取超大文件的几种方法传统Block IO读入使用NIO零拷贝读实际执行效果使用BufferReader 执行效果使用改造后的NIO零拷贝的效果总结注意事项FAQ最重要的事Java读取超大文件的几种方法在这里必须说明一下,此处所说的超大文件,是指至少2G以上,可能是10G或者更大,文件内容是单行可处理的类型,通常为csv文件。好了,前提已说明,让我们快速进入主题...

2019-07-11 20:00:53 20091 13

原创 多线程高速下载器,文件下载进度实时预览

多线程高速下载器,文件下载进度实时预览前言需要说明的是,对于多线程是否比单线程更能有效提高下载速度,这个是存在争议的,但大体上来看,多线程下载速率不会比单线程下载速率低,不论是从tcp拥塞控制算法,滑动窗口大小,线程抢占带宽,以及服务端限速等哪种角度,均有此结论。对此有兴趣的小伙伴可移步至:为什么多线程能加速多线程分块下载能加快下载速度麽多线程下载一个大文件的速度更快的真正原因是什么?有不同意见或者观点的小伙伴,也欢迎在评论区留下你的脚步。重要的东西要放在前面,需要代码的,请直接clone h

2020-12-17 15:07:06 403

原创 mongodb基本操作

mongodb基本操作客户端命令行操作createdb.createCollection("user")等同于sql中create table user;dropdb.user.drop等同于sql中drop table user;selectdb.getCollection('user').find({username:"Tina",age:34})db.user.find({"age": {$gt:21}, $or: [{"username": "Marry"},{"email"

2020-11-04 09:56:44 503

原创 高效判断是否连续出现逻辑

实现思路/** * 是否连续n天出现,实现逻辑:指定时间段,获取该时间段内检索结果,根据时间段判断是否连续出现 * @param results * [ * { * "record": { * "createTime": "2020-06-17T09:13:00.051Z", * "id": "xxxxxxxxx", * }, *

2020-08-11 18:03:13 472

原创 Arthas集成至Docker

背景Arthas我们都知道是一款深受大家喜爱的功能强大的诊断工具,从GitHub上的star数量就可见一斑,截止我写这篇博客,Arthas在GitHub上的star数量已达19.5k,我的天,真牛批根据Arthas官方文档,我们可以很快上手其提供的特色诊断功能,不得不说,这对于了解Arthas是十分必要的。但是,在云服务广泛应用的今天,单机或者裸机跑Java应用的时代已慢慢远去,随之而来的是大...

2020-02-21 17:31:40 4282 1

原创 Docker jenkins 使用ssh添加server BapPublisherException

问题描述使用docker安装Jenkins,安装成功后,在添加Publish over SSH插件过后,添加server免密登录时,报了这个异常:jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to conne...

2019-09-11 19:40:19 1557

原创 jackson 实现null转0 以及0 转null

最近遇到一个需求,有个数值类型的字段,非必填,默认为空,数据库表针对该字段设计的是一个int类型, 由于dba推荐规范,默认该值是not null。这个时候,问题就来了,数据库默认存的是0,前端展示时,又不能显示这个0(需要的是null),这个时候主要有以下2种解决方案:前端做处理,统一对0和null做处理,0即是null,null即是0后端做处理,针对要处理的字段,在序列化之前或者之后做处...

2018-11-01 15:40:04 5676

原创 谈谈Redis针对键生存时间以及过期的处理

一直以来,我对redis中对键的生存时间以及过期键的处理甚感兴趣,以前从没有去深入了解,在看了黄健宏写的《Redis设计与实现》后,突然醍醐灌顶,恍然大悟,并不得不感叹作者设计的巧妙。仅以此文章,记录一下读后的收获。关于键的生存时间或过期时间设置通过命令EXPIRE或PEXPIRE,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间,那么,redis是如何存储这些“特殊”的键值对呢?又是...

2018-10-28 21:53:43 948

原创 rabbitmq实现延迟消息(附源码)

rabbitmq实现延迟消息的方案1. 使用延时队列 单机不考虑拓展的情况下,可以使用java.util.concurrent包的DelayQueue, 但插入的对象需实现Delayed接口,并实现其getDelay方法。 优点:针对任意消息队列均可使用 缺点:可拓展性差,编码略复杂,可复用性不高2.借助ScheduledExecutorService异步延时提交 废...

2018-08-13 11:28:46 374

原创 elasticsearch 大数据场景下使用scroll实现分页查询

es查询大批量数据的”可能方案”当使用es来请求大批量数据时,通常有三种办法,其一:直接查询获取全量数据;其二:使用setFrom以及setSize解决;其三:使用es自带的scroll分页支持方案评估 对于上述方案的评估,此处建议大家可以先看看这篇文章Elasticsearch 搜索内部执行原理方案选择 经上述评估,显然,最终采取scroll进行分页实现,分页后的数据处理有两种...

2018-05-09 17:51:20 16075 21

原创 一般树的遍历、合并及对比

普通树的遍历、合并及对比普通树的遍历、合并及对比题目描述编程要求解题分析日常开发过程中,我们经常会碰到树这种数据结构,譬如权限树、区域层级树,系统调用链等等,今天想记录一下在某个面试题中碰到的关于树的算法题,通过对该题的解答巩固自身对于数据结构的理解,以及希望给有相同困惑的小伙伴以参考的作用。闲话不多说,我们来看题(如涉及到泄题,还请联系我予以删除)题目描述...

2018-03-19 00:09:42 4925 2

原创 Mybatis generator,Table configuration with catalog null, schema null

于使用mybatis generator自动生成代码报Table configuration with catalog null, schema null异常,经昨日排查,找到了两个原因,希望能给遇到同样困扰的小伙伴一点参考创建表时未创建索引(主键,外键,索引都没有)表名过长,这个确实是我偶然发现的,之前我的表名大概有30个字符的长度,当我把表名缩短后问题就解决了

2017-06-28 13:01:07 2613

原创 Mac 对系统文件的权限设置

使用界面化操作设置系统文件权限简洁步骤如下:快捷键 commond+shift+G,跳出前往文件夹的窗口,如下: 以系统文件夹etc为例,输入/private/etc,点击前往,于是进入下图的界面: 选择其中的某一个文件,点击反键(鼠标右键),选择显示包内容(或显示简介): 选择最下方的共享与权限,点开小三角,然后添加权限即可。 注: 需要先将右下角的锁标志点击打开后方可添加权限 经过以上步骤,

2017-03-06 14:12:10 7590

原创 git 多套公、私钥的配置以及使用

git 多套公、私钥的配置以及使用git 多套公私钥的配置以及使用业务使用场景步骤检查是否已存在相应的ssh key生成新的ssh key并添加至ssh-agent在相应的账号中添加生成的ssh key连接测试非gitHub 的项目如何配置FAQ业务使用场景在个人的实际开发中,我们通常会碰到这样的场景:一个人同时拥有github账号(个人的)和公司的git账号(公司私有仓库),或者某

2017-02-08 16:59:03 4790

转载 SQLyog Error Code: 2006 - MySQL 服务器已离线

今天导入.sql文件时出现了Error Code: 2006 – MySQL server has gone away错误,原来是导入的sql文件大于系统默认的max_allowed_packet的值,查了很多修改配置文件的,但是没有找到my.cfg文件,修改其他文件不管用,所以直接使用sql语句来修改:SET GLOBAL  max_allowed_packet=67108864;然后重新登录

2017-02-03 17:36:14 764

原创 mysql 免安装版配置

mysql 免安装版详细配置从mysql官网粗略看了一下,目前官网上仅提供5.7版32位的msi installer,64位的均为免安装版,需要进行配置。由于之前升级了一次系统,之前的mysql被移出,而开发中又必不可少地用到它,于是重新配置了一下。现记录下详细配置过程,以供有需要的小伙伴参考。接下来以明确的步骤进行展开说明:简要目录mysql 免安装版详细配置简要目录下载免安装版mysql解

2017-02-03 16:23:11 627

原创 java实现excel横排以及竖排数据导出

相信不少同学使用excel导出工具时,都能很方便的导出数据库里的数据,只不过,通常来讲,是如下的excel格式: 但需求总是会变得,等哪天产品跑来跟你说,‘’这横排的看起来 不方便啊,你给我撸出一个竖排的吧,竖排的看起来更审美”。虽然你心中早已一万头草泥马奔腾而过,有无数想砍死产品的冲动,“横着不蛮好麽,该你妹啊,去特么的竖排的balabala”。但想归想,做归做,假如真要实现竖排的导出,那该

2017-01-08 23:25:04 5846 3

原创 springmvc实现jsonp

最近前端有个需要跨域访问的需求,需要后端实现对jsonp的支持。在经过多方的资料查找后,最终实现了对jsonp的支持。现贴出代码,以供后期复习参考后端代码: @RequestMapping(value = "/user") @ResponseBody public JSONPObject showUser(HttpServletRequest request, HttpSe

2016-12-29 00:34:29 1265

原创 nginx做静态代理时css加载不出问题解决

有次项目中用到了前后端分离,nginx做了前端的静态代理。当配置nginx后,访问页面时出现了以下的bugcss文件实际上已经被加载出来了,但是页面却没有显示效果。报错是这样的: Resource interpreted as Stylesheet but transferred with MIME type text/plainnginx的配置如下:events { worker_con

2016-11-26 19:16:25 16247

原创 分布式环境下限流方案的实现

业务背景介绍 对于web应用的限流,光看标题,似乎过于抽象,难以理解,那我们还是以具体的某一个应用场景来引入这个话题吧。 在日常生活中,我们肯定收到过不少不少这样的短信,“双11约吗?,千款….”,“您有幸获得唱读卡,赶快戳链接…”。这种类型的短信是属于推广性质的短信。为什么我要说这个呢?听我慢慢道来。 一般而言,对于推广营销类短信,它们针对某一群体(譬如注册会员)进行定点推送,有时这个群体

2016-11-06 17:13:47 17908 6

原创 spring aop annotation execute order

我们都知道用spring aop注解方式书写切面类时,通常会遇到这几个注解:@Before – 在目标方法执行前被执行 @After – 在目标方法执行后执行,无论是抛出异常还是正常返回 @AfterReturning – 在目标方法正常执行后执行,可拦截其返回结果 @AfterThrowing – 在目标方法抛出异常后执行,可拦截具体抛出的异常,并对其做处理 @Around – 环绕通知,

2016-09-08 21:29:15 1325

原创 spring 常用注解

我们不妨先将spring常用的注解按照功能进行分类1 、将普通类加入容器形成Bean的注解日常开发中主要使用到的定义Bean的注解包括(XML方式配置bean暂不讨论):@Component、@Repository、@Service、@Controller、@Bean其中@Component、@Repository、@Service、@Controller实质上属于同一类注解,用法相同,功能相同,区

2016-09-08 16:26:21 3146

原创 Intellij导入子项目时,maven列表子项目灰色不可用---解决方法

导入子项目的module时,左侧project目录中有一个module图标右下角没有小蓝点,maven管理列表该module为灰色(表明未被管理),尝试几次后终于找到解决方案。贴一张调好过后的图第一步 找到父项目,点击右键,选择Open Module Settings 第二步 打开设置,点击绿色的+ 第三步 点击import module,找到显示为灰色的module模块,并导入,然后nex

2016-09-07 17:00:06 23641 9

原创 spring-AOP1

spring-AOP本文主要参考自以下两篇英文文档: http://http://www.tutorialspoint.com/spring/spring_bean_life_cycle.htm http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html 对于spring框架而言,其中

2016-09-07 11:53:57 465

原创 dataTable的当前页面刷新draw操作

dataTable当前页刷新实现talk is cheap,let’s show the code:var table = $('#example').DataTable();// Sort by column 1 and then re-drawtable.draw( false );很简单,将false参数传入draw方法中即可实现当前页刷新。别问我怎么知道的,这个问题曾经卡了我很长一段时间

2016-09-04 16:47:29 39414 4

原创 http请求过程分析

http请求过程   此处以访问百度首页为例,当我们在浏览器地址栏中输入http://www.baidu.com并回车后,我们马上能看到百度的首页,虽然这个过程很短,但这背后究竟发生了什么呢? 现简要地理一下这背后的执行流程:1.域名解析2.客户端浏览器发送http请求3.服务器响应http请求,并向客户端浏览器返回html代码4.客户端浏览器得到html代码并进行解析,同时请求html

2016-08-29 16:38:30 3080

原创 json转list实现方案

gson中json转list,如何实现json转list,list转json实现方案

2016-08-17 15:30:19 1960

原创 ajax跨域请求数据的解决方案

ajax跨域请求数据常用的两种方式 首先得明白,为什么会存在跨域请求数据的问题。在实际大的项目开发中,数据并不全是来源于本机的服务器,很多时候要进行跨域请求数据。而js的同源策略是不允许跨域请求数据的,这样就造成了一种矛盾。于是乎,聪明的开发人员想出了一种利用js可远程加载其它服务器脚本文件的“漏洞”,创造性地提出了一种非官方的跨域请求协议——jsonp。当然,jsonp只是解决跨域请求中的一种

2016-08-13 17:36:25 3690

原创 如何彻底卸载oracle

此方法经过多次试验,能够彻底卸载oracle,网上看过太多 坑爹的卸载教程,大部分都是抄过去抄过来,完全不负责任嘛,而且非常地不尊重原创,对于那些未经过博主同意随意转载别人原创文章且不进行声明的人,我想说,你们真特么垃圾。好了,废话不多说,现仔细说说该如何彻底卸载需要强调的是:用Oracle自带的卸载程序不能从根本上卸载Oracle1、开始->设置->控制面板->管理工具->服务 停止所有Or

2016-07-09 11:05:39 1190

原创 mybatis学习笔记

mybatis环境的搭建以及实现一对多,多对一关联映射以用户表person和订单表order完成此次搭建 生成数据库的sql语句:CREATE TABLE person( personId VARCHAR2(10) PRIMARY KEY, personName VARCHAR2(20), personAddress VARCHAR2(50), personTel VARCHAR2

2016-04-24 21:50:54 569

原创 JQuery中Ajax实现对Map,List集合数据的接收

jQuery中Ajax接收后台Map、List集合数据过程分析最近学习到jQuery实现异步传输数据部分,虽然跟着视频演练了常规json数据的接收,但个人感觉不太够,现实应用中肯定不只是传输简短以及简单的json数据,于是自己琢磨着尝试从后台接收List、Map数据,在搜索工具的帮助以及自身的理解下,成功完成了接收过程。废话不多说,以代码来展示过程:* 前端jsp登录端代码+js代码//body部

2016-04-22 13:35:39 33935

原创 Tomcat部署常见问题以及处理

Tomcat部署常见问题以及处理1.The requested resource is not available.404类型错误 此类错误在项目部署时最常碰到,出现此类错误的因素也是相当多,任意其中一种都有可能导致产生404页面。现分析出现此类错误的几种可能因素:以解压版的tomcat为例,解压版的tomcat在配置时,需要添加环境变量的在startup.bat和shutdown.bat中方

2016-04-06 17:45:41 4914

原创 Java笔试题

参加过几次校招的笔试,现将记得的常考笔试题发出来供需要学习的小伙伴参考。  一、简答题   1、线程中实现的两种方式    答:一种是继承自Thread,另一种是实现Runnable接口。用具体的程序代码来说明   继承自Thread类  实现Runnable接口 测试程序  测试结果 以上代码说明,两者间的区别在于:

2016-03-24 23:12:14 818

原创 JVM垃圾回收

最近一段时间因一次面试过程中被问及JVM垃圾回收的知识,而自己一无所知,甚觉惭愧,于是痛定思痛,恶补了一些JVM的知识、总算对JVM的垃圾回收有了一些基本的了解。废话不多说,学习笔记附上,以供后期自己复习用。    JVM如何实现GC的呢?首先了解一、堆分区     JVM为了更好地实现GC,将其堆内存空间分为了两个区域,即新生代(Young)、老年代(Old)。新生代又被划分为三个区

2016-03-22 23:11:58 638

原创 创建String的两种方式有什么区别?

在创建String对象时,通常来讲,有两种方式,一是new型:String s = new String("abc");另一种是双引号型:String s = "abc";那么这两种方式有什么区别呢?  答:这两种方法生成的字符串对象,在内存中的存取机制不同。   Java为String类型提供了缓冲池机制,当使用双引号定义对象时,Java环境首先去字符串缓冲池寻找相同内容的字符串,如果存

2016-02-24 15:06:03 3496

原创 eclipse黑色酷炫主题设置2

之前的一篇文章中提到了可以用第三方的主题对eclipse进行设置,现来说明一下如何具体实现      以gitgub上歪果仁做的一个主题为例:      第一步:下载主题包https://github.com/eclipse-color-theme/eclipse-ui-themes   第二步:解压到eclipse安装目录的 plugins文件夹下,以我个人的安装

2016-01-22 21:47:52 1524

原创 如何搭建以及配置Struts2项目

相信不少Java的初学者在刚开始搭建Struts2环境的时候碰到过不少问题,由于本人刚刚搭建该项目不久,且在搭建过程中也遇到过不少问题,所以现将搭建的详细过程写下来,以便后来的Java学习者能少走弯路。     废话不多说,Let's show the code!Struts2项目搭建的关键步骤如下:     1、Struts2.3.4.1的获取      http://s

2016-01-14 22:58:38 706

转载 eclipse中tomcat能正常启动,但是浏览器访问不了tomcat首页 问题解决

本文转自博主CHEN_JP在eclipse中新建tomcat7或者8,完成后tomcat能够正常启动,但是浏览器问题localhost:8080访问不了。解决方法如下:双击eclipse中服务器中的tomcat出现tomcat的配置界面然后Server Locations中选择如图,将Deploy path选择到tomcat目录中的webapps目录,然后保存,重启

2016-01-09 20:05:20 3887

世界人均耕地占比(单位公顷)

农业发展研究相关数据,全球各国人均耕地占比统计数据展示,单位为公顷数,可进行换算至亩。

2023-07-16

kotlin编程实践

kotlin编程实践中文版 免费 高清带目录 kotlin代码规范

2018-05-08

kafka原理解析与实践

kafka原理解析 学习消息中间件的佳作。内容翔实,有丰富的实践代码(Kafka核心原理与实战 【整理人:北京海子】 )

2018-05-08

go web编程 高清

高清版go web编程 内置目录,内容详略得当,并附带有大量练习代码

2018-05-08

go语言编程,高清完整版

go语言编程,高清完整版,基本免费。且带目录。七牛云go社区大佬执笔,内容简洁清晰且有示例代码

2018-05-05

sourceTree mac版

git神器,mac版sourceTree

2017-03-31

phantomjs mac版

最新mac版phantomjs

2017-03-31

vmware虚拟机链接

vmware虚拟机链接,下载后直接解压,点击exe文件安装后,将内附的安装密钥复制粘贴进去即可。操作简便快捷。欢迎下载

2016-07-09

oracle11g监听文件

正确配置安装的oracle11g监听文件。另附上我精心制作的oracle11g安装教程链接 http://blog.csdn.net/justnow_/article/details/49850579

2016-04-23

空空如也

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

TA关注的人

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