自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小小云麓的博客

一只不断挖坑填坑的IT狗

  • 博客(35)
  • 资源 (2)
  • 收藏
  • 关注

转载 MySQL单表数据量过千万,采坑优化记录,完美解决方案

问题概述使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死。严重影响业务。问题前提:老系统,当时设计系统的人大概是大学没毕业,表设计和sql语句写的不仅仅是垃圾,简直无法直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!!...

2018-12-14 09:47:08 57348 17

原创 Springboot2.x+swagger2突然404解决分析

问题背景​ 项目正常更新以后,突然swagger-ui.html界面就404了,很奇怪,报错如下:GET "/swagger-ui.html", parameters={}2020-04-24 09:53:38.324 [http-nio-7799-exec-1] [WARN] - No mapping for GET /swagger-ui.html2020-04-24 09:53:3...

2020-04-24 12:25:17 391

原创 调试钉钉小程序请求的坑-@RequestBody处理form提交数据

问题背景​ 接口项目本身约定数据都是json格式,使用@RequestBody接收@RestController@RequestMapping("/app")@Transactional(rollbackFor=Exception.class)public class AppAction { @PostMapping("/login") public LoginResp l...

2020-04-15 15:32:10 942

原创 mysql本地IP不能访问的问题

​ 作为开发者,业务服务器和数据服务器,一般肯定是部署在不同的主机上,所以mysql 用户授权,远程访问,大家肯定玩的比较多了,网上的博客一大堆​ Mysql 默认是只允许使用 host:localhost,或者 host:127.0.0.1,如果想用使用IP访问,就要重新授权。​ 具体如下:msyql数据库# mysql所在DB服务器 192.168.137.32授...

2019-12-16 11:21:55 409

原创 VMware中安装Centos7设置静态IP记录

前置安装VM​ 虚拟机安装好以后,当前的系统会多出来两个虚拟网卡,一般情况下这两个网卡的命名是# 默认给桥接模式VMware Virtual Ethernet Adapter for VMnet1# 默认给NAT模式VMware Virtual Ethernet Adapter for VMnet8#我们可以把虚拟机中的系统的静态IP绑定到VMnet8上安装Cent...

2019-12-06 13:19:38 76

转载 面试----微服务下单成功----都经历了什么

原文链接:https://juejin.im/post/5cdfe4a16fb9a07ef63facc3题目:用户在电商网站中购买成功了,那么它在微服务中经历了什么?当我傻啊,用户在电商网站购买成功,还在微服务中,那肯定就是有一套微服务架构的电商系统。设计一套电商系统还不简单简单想象一下,既然是一个电商系统,有用户去购买,就肯定得有一个用户模块,购买什么东西总不是西北风吧,购买肯定是商品...

2019-09-17 12:00:12 422 1

原创 浅谈约定优于配置

背景​ 自从接触springboot以来,约定优于配置的概念就一直被不断的提及,如何理解约定优于配置也是面试中被问得比较多的问题之一。之前一直模模糊糊的知道大概意思,但是 就是说不清楚,最近静下心来总结一下自己 对约定优于配置的理解,也算是对自己的知识体系的加深和巩固。为什么靠右走​ 先说个大家都能理解的例子,比如说,刚开始人们在马路上走的时候,都是各走各的,杂乱无章,反正没人管,然后呢...

2019-08-10 09:56:43 1305

原创 ByteBuffer简要分析

ByteBufferallocate(int capacity)public static ByteBuffer allocate(int capacity) { if (capacity < 0) throw new IllegalArgumentException(); return new HeapByteBuffer(capacity, capac...

2019-07-24 14:20:36 47

转载 原码,反码,补码的深入理解与原理

本文从原码讲起。通过简述原码,反码和补码存在的作用,加深对补码的认识。力争让你对补码的概念不再局限于:负数的补码等于反码加一。接触过计算机或电子信息相关课程的同学,应该都或多或少看过补码这哥仨。每次都是在课本的最前几页,来上这么一段:什么反码是原码除符号位,按位取反。补码等于反码加一。然后给整得莫名其妙,稀里糊涂地,接着就是翻页,反正后面的内容也跟三码没多大关系。我原来也是...

2019-07-03 10:37:43 77941 48

原创 幂等的理解和处理

什么是幂等幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中,幂等 的理解就是,在数据不变的情况下,一个操作,无论执行多少次,结果都是一样的常用场景前端数据重复提交订单支付请求无论是网络超时?系统bug?还是其他原因,都只应该扣一次钱Mpush推送消息推送多条同样的消息,用户会疯掉的发短信给用户用户下单...

2019-06-04 14:11:09 5311

转载 Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)

转载原文:https://blog.csdn.net/luanlouis/article/details/24589193class文件简介及加载Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成...

2019-05-06 17:07:47 59

转载 Java的四种引用方式

转载自博客:https://www.cnblogs.com/huajiezh/p/5835618.htmljava内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指向该对象。java对象的引用包括强引用,软引用,弱引用,虚引用Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有...

2019-03-21 14:00:59 73

原创 React 打包部署服务器踩坑记录

公司项目前端开发用的是React,所以自己一直在本地测试开发,最后终于开始打包上线了项目中用axios封装了工具类来请求,自动匹配开发和测试apiif (process.env.NODE_ENV === 'development') { axiosIns.defaults.baseURL = '/dapi';} else if (process.env.NODE_ENV =...

2019-01-31 15:21:49 3011

原创 shiro 整合swagger2的坑

swagger是个好东西,解放了双手,一直在用,最近又整合了基于shiro的权限控制,出问题了,http://ip:port/swagger-ui.html访问不正常,问题肯定是shiro没放行导致的,于是暂时关了shiro,查看swagger2都需要那些请求需要放行。首先 常规的过滤放行如下:filterChainDefinitionMap.put("/swagger-ui.html"...

2019-01-25 11:01:20 5492 1

转载 java8新特性之方法引用和构造器引用

 知识点一:方法引用什么是方法引用? 答:方法引用是对Lambda表达式符合某种情况下的一种缩写,使得我们的Lambda表达式更加的精简, 也可以理解为Lambda表达式的另一种表现形式(缩写)什么时候使用方法引用呢?答:当要传递给Lambda体内的操作,已经有实现的方法了,就可以使用方法引用了方法引用使用的前提条件是什么呢?答:    1.方法引用所引用的方法的参数列表必须要...

2019-01-18 10:44:12 94

原创 经典线程面试题-两个线程交替打印

看到群里发了个面试题,实现两个线程交替打印从1到100,很基础,但是也很考验多线程的基本功,自己开始能想到的是synchronized 和 wait notifyAll 和Lock ,其他的都是参考网上的博客自己调试整理的不多说,直接上代码通用字段,注意volatile的使用,保证可见性public static int i = 1;public volatile stat...

2019-01-17 12:00:10 9764 3

转载 聊聊并发-Java中的Copy-On-Write容器

   Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArra...

2019-01-07 13:24:11 51

转载 Java NIO学习笔记四(零拷贝详解)

什么是零拷贝维基上是这么描述零拷贝的:零拷贝描述的是CPU不执行拷贝数据从一个存储区域到另一个存储区域的任务,这通常用于通过网络传输一个文件时以减少CPU周期和内存带宽。零拷贝给我们带来的好处减少甚至完全避免不必要的CPU拷贝,从而让CPU解脱出来去执行其他的任务减少内存带宽的占用通常零拷贝技术还能够减少用户空间和操作系统内核空间之间的上下文切换零拷贝的实现零拷贝实际的实现并没...

2019-01-03 10:04:42 332

转载 GC详解及Minor GC和Full GC触发条件总结

GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC机制要准确理解Java的垃圾回收机制,就要从:“什么时候”,“对什么东西”,“做了什么”三个方面来具体分析。第一:“什么时候”即就是GC触发的...

2019-01-02 13:39:15 782

原创 jdk8中forEach使用问题

实话说,jdk8出来好久了,公司一直用的还是jdk7,没有升级,最近终于升级到jdk8了,所以来自己改改代码,使用jdk8中的新特性,最简单的forEach先来试试测试代码如下:public static void testJDK8ForEach(){ List&lt;String&gt; asList = Arrays.asList("a","b","a","d"); int ...

2018-12-27 10:17:08 3911

原创 mybatis中parameterType 对象传值字段匹配问题

众所周知,parametertype传入参数分为以下两种:(1)java基本数据类型(2)复杂数据类型(java实体类和Map,List) 本文的重点讨论的分页查询中是java实体类的字段匹配问题分页的通用实体类如下:public abstract class BaseQuery { private Integer page=1; // 当前页 ...

2018-12-27 10:03:17 2456

转载 简单的使用protobuf和protostuff

  在我们的开发过程中,序列化是经常需要处理的问题,比如在做分布式访问数据时,或者是在做redis缓存存储数据时,如果我们涉及的知识面不够广的话,可能会简单的使用JDK的序列化,也即在需要序列化的类上implements Serializable接口去实现序列化,我想说的是这种方式在小系统中尚且可以用一用,如果是并发很大的系统会受到严重影响,这是由于JDK自带的序列化效率很低,不论是时间上还是空间...

2018-12-25 11:06:33 317

原创 springboot rabbitMQ 自定义MessageConverter和ClassMapper实现消息序列化

背景:公司项目使用springboot + rabbitMQ 处理订单和推送消息,最开始的时候,producer都是直接convertAndSend的json数据,consumer也是接收json数据,然后在转化为Bean去处理逻辑。当然,这样虽然没啥大问题,但是感觉很麻烦,后来查阅文档,SpringAMQP可以指定MessageConverter 消息转换器,自动封装Mesage发送,这样就...

2018-12-14 15:59:17 4372 4

转载 阿里员工都是这样排查Java问题的,附工具单

平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。Linux命令类tail最常用的tail -ftail -300f shopbase.log #倒数300行并进入实时监听文件写入模式grep...

2018-12-14 09:53:13 165

转载 注解的继承问题测试分析

子类可以继承到父类上的注解吗?-----------------------------------------------------------------我们知道在编写自定义注解时,可以通过指定@Inherited注解,指明自定义注解是否可以被继承。但实现情况又可细分为多种。测试环境如下:--------------------------------------------...

2018-12-11 16:33:08 80

原创 记录一次升级公司框架导致的service注入失败的问题

背景:公司使用的还是jdk7,早就想升级到jdk8,但是很坑爹的是,公司的框架使用的是Netty3.2.7和spring3.x,不能升级,jdk8必须使用spring4.x才可以,当然,spring4.x可以向下兼容jdk7.思考再三,长痛不如短痛,升级Netty3.2.7到Netty4.1.31(Netty最新版本是5.x但是废弃了,不建议使用),spring3.x升级到spring4.3.20...

2018-11-24 21:41:56 797

原创 SQLException捕获不到的问题

问题描述:做统一异常处理封装类处理,结果发现一直处理不了SQLException及其子类异常@ResponseBody@ExceptionHandler(value=SQLException.class)public ResponseModel sqlErrorHandler(SQLException e){ System.out.println("sql error handler"...

2018-10-25 17:06:33 6591

转载 JVM调优总结 -Xms -Xmx -Xmn -Xss

jvm内存参数配置

2018-05-03 13:38:27 202

转载 详解Java的自动装箱与拆箱(Autoboxing and unboxing)

一、什么是自动装箱拆箱 很简单,下面两句代码就可以看到装箱和拆箱过程1 //自动装箱2 Integer total = 99;3 4 //自定拆箱5 int totalprim = total; 简单一点说,装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。下面我们来看看需要装箱拆箱的类型有哪些:这个过程是自动执行的,那么我们需要看看它的执行过程:1 ...

2018-04-16 11:46:07 147

转载 从字节码角度分析 i++ 和 ++i 实现

最近看到个面试题:int j=0;for(int i=0;i&lt;100;i++) j = j++;System.out.println(j);输出结果是0,如果换成j++,那么输出100,这是为什么?对于这种问题,其实有点经验的程序员都知道,前置++和后置++的运算区别:1、前置++是将自身加1的值赋值给新变量,同时自身也加12、后置++是将自身的值赋给新变量,然后才自身加1话虽...

2018-04-12 09:11:13 798

原创 java中interface是不是继承Object

疑问描述:在如下代码的时候,不是很理解,为什么这么判断?     很明显,是要判断是传进来的method的声明类是接口还是实现类,但是为什么直接用Object来判断呢?好像一直也没有去思考过这个问题,好尴尬,于是查阅资料,看看interface是不是继承Object.    Sun的官方文档TJLS(The Java Language Specification)第9章9.2节关于接口描述如下: ...

2018-04-09 09:46:45 903 1

原创 mybatis封装多个参数的方法总结

mybatis多个参数封装总结

2018-01-04 12:43:04 989

原创 redis 存对象的方法对比

问题背景:原来项目里面全部是直接redis存储对象的json数据,需要频繁的序列化和反序列化,后来考虑更换项目中的redis存储对象为hash对象存储的,但是获取后不能方便的set get操作,很是蛋疼,怎么才能解决这个问题呢?1.1 直接存储对象的json存放redis的时候,直接先用fastJson 或者 jackJson或者Gson把对象序列化为json数据,然后用直接存放,

2018-01-04 12:10:22 10640 3

转载 java String的创建方式以及&quot;==&quot;和equal的理解

看了一篇博客,突然感觉自己对"=="和equal的理解,有些模糊了,因此重新充充电,加深理解

2017-12-27 11:22:29 163

原创 spring mapper注入到service失败的解决方法

spring mapper注入到service失败的解决方法

2017-12-11 13:48:47 27251 3

java高级面试资料整理

整理了自己准备的java高级面试资料,以及面试的经历和问题

2018-12-21

springboot + rabbit + hikari

基于springBoot2.0,整合rabbit 和 hikari的示例代码

2018-12-21

空空如也

空空如也

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

TA关注的人 TA的粉丝

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