5 javaEE小菜鸟

尚未进行身份认证

代码洁癖患者

等级
TA的排名 8w+

记一次内存泄漏误诊

问题场景:压测时产生大量日志文件,导致free -m命令中的free参数指标飙升。只有删除该日志文件,free参数恢复正常。项目中使用logback作为日志框架,操作系统是SUSE SP12版本,最开始误以为是logback日志在该系统下存在内存泄漏,观察堆栈信息,都没有发现任何异常,发现free所占内存并非java应用所持有。所以从linux内核找原因,深入了解了一下fr...

2019-09-02 14:43:21

一次jvm调优经历-idea启动优化

受《深入理解JVM》这本书的启发,准备针对idea进行一次优化。首先放一下效果图优化前: 系统启动并且运行了几个小时后的idea,多次启动后取的平均时间23秒,优化后:时长19秒左右。提升了四分之一的启动时间,并且在后续loadingClass的时间也明显提升。1 准备工作 1 为了记录idea启动时间,需要安装一个idea的插件,这里我去idea的插件官网...

2019-06-20 18:03:34

线上故障排查-mysql

报表系统运行sql,执行出错。问题描述: 别的sql报表都没问题,只有一个报表sql有问题,一执行,mysql立马宕机,sql大概有300行左右。首先监控系统状态,执行sql后发现cpu总利用率位置在50左右,内存利用率在70左右,并没有达到极限。其次怀疑max_connections和buffer_size设置小了,调大重启后无果。打开错误日志,看到如下报错信息。发现应该inno...

2019-06-18 15:56:33

惊心动魄的一天--mysql

今天的任务应该是把开发库的数据同步到测试库上,弄了一天,一直报错。question 1: 同步数据失败数据量也不是很大,加一起就几个g的sql文件。报错Table ‘xxx’ is full,原本以为是数据库虚拟内存不够,去my.cnf里面修改配置文件 。先运行的这两条命令试了试set global max_allowed_packet = 2000 * 1024 * 1024;发...

2019-01-17 17:53:01

2018年总结

回顾2018年,从bd到社会,感悟还是很多的。技术方面,2018年的成长远远超过我的预期。这要感谢一年来努力的自己。1 在6月份的时候,凭着自己对框架的理解,手写了一套SSM框架,发布在java知音公众号上和自己的博客上,获得了很多技术朋友的认可,我将项目发布到github上,最多的时候有30多颗小星星。但是目前就剩22颗了,可能好久没有更新的缘故吧。地址是这个,有兴趣的朋友可以去瞧一瞧。...

2019-01-13 11:39:42

记录一次ssm转springboot项目过程

其实这个项目是springboot的项目,但是不知道为什么,里面的配置几乎都是xml的形式配置的,包括spring-web的配置。不过,既然咱接手了这怎么能受得了。于是将所有的标签转成springboot的。百度上对这方面几乎没有资料。也是,springboot的架子里面用springmvc配置这种事,还是少见的....1 xml的bean标签,对应springboot的@Bean2 xm...

2018-12-18 11:45:08

由浅入深--探究Tomcat9.0之--入门篇3

再次强调一下,Tomcat系列全部文章基于9.0.12版本。                           入门篇3 Tomcat的启动(一)二:start()方法    在BootStrap类中的核心代码是这几行。String command = "start";else if (command.equals("start")) { d...

2018-10-29 00:41:07

由浅入深--探究Tomcat9.0之--入门篇2

再次强调一下,Tomcat系列全部文章基于9.0.12版本。                           入门篇2 Tomcat的启动(一)    所有的java项目,程序启动入口其实都是main方法,tomcat也不例外,Tomcat的启动入口在Bootstrap.java中的main方法中。那么,我们的启动流程就由此开始啦。debug模式,走起~  其实启动过程大体...

2018-10-27 23:20:39

由浅入深--探究Tomcat9.0---入门篇1

好几个月没写博客了,一是在筹备转型事宜,二是一直在研究tomcat,现在总算有一些眉目了。现在将自己这几个月的研究成果给各位看官奉上,希望大家喜欢。本次源码分析预计分为五大专题第一部分是Tomcat入门篇(组件介绍,启动流程分析)第二部分是手写tomcat实现。第三部分是Tomcat的设计模式总结第四部分是源码深入探究,第五部分是Tomcat的优化专题。  很多人说看不...

2018-10-26 17:23:25

记录一次类似于内存泄漏,定位问题的经历

1  问题原因是一个接口返回数据大约有240w,查询时间有30s,导致cpu利用率达到了百分之百。2  解决方案有几种,在windows7环境下面,第一种是先打开jconsole,在jdk的bin目录下,可以看堆栈和线程的信息。   确认是堆栈信息猛涨之后,1 粗略看一下 可以利用 jmap -histo   -pid|more 的命令打开查看当前-histo[:live] 打印每个c...

2018-08-30 20:19:58

手写spring+springmvc+mybatis框架篇——Mybatis

  整合Mybatis是本项目中的一个难点。实现功能:1 动态绑定用户输入参数2 Mybatis的resultType动态绑定返回实体类。3 在spring中的接口注入4 xml版本的mapper注入。 关于Mybatis的优秀文章给大家推荐两个1 手写简化版mybatis               https://my.oschina.net/liughDevelop/blog/1631006...

2018-07-09 22:44:23

手写spring+springmvc+mybatis框架篇——springmvc

先放一张网上的很好的一张原理图图片出自,这篇博客原理也写的很清晰明了。我的实现也是借鉴了这张图https://www.cnblogs.com/xiaoxi/p/6164383.html先说一下我的实现思路:1. 在MyDispatcherServlet中的servlet初始化的时候,绑定标有@MyController注解类下面的@MyRequestMappign的value值和对应的方法。绑定的方...

2018-07-09 21:52:00

手写spring+springmvc+mybatis框架篇——springIOC容器

启动IOC容器为initBean方法。下面贴一下这两个类的关系图 首先是applicationContext其次是InitBean    XmlApplicationContext :为解析xml文件的类,在spring源码中Resouce接口是用来解析多种文件格式的xml文件的接口,可能参数时inputStream,也可能是byteArray等,但是我们这里比较简单,直接用new File()传...

2018-07-09 20:48:20

手写spring+springmvc+mybatis框架篇——开篇

     我们平日开发时所用的SSM框架,可是你真的了解它吗?技术革新,换代应接不暇,只有理解了源码才能保证在技术快速更迭的时代中真正站稳脚跟。本系列文章抽丝剥茧,源码分析百度有很多,在这里只列举几个我收录的优秀的博客推荐给大家,本文不过多的分析源码,更注重将代码理解后的实现。 话不多说,开启正题。(强调一下,本人是小白)    此项目是在手写SSM框架的基础上实现的简单的登录功能。    首先是...

2018-07-09 16:38:53

2018最新常用的正则表达式

都是根据最新情况总结出来的,欢迎收藏var XLphoneReg = /^1(3[0-9]|4[4-9]|5[012356789]|66|7[0-8]|8[0-9]|9[89])[0-9]{8}$/; //手机号正则 var XLqqReg =/^\d{4,10}$/;//QQ号正则,4-6位数字var XLemailReg =/^\w+@\w+\.\w+(\.\w+)*$/ ; //匹配邮箱 格...

2018-06-15 11:19:09

小白模仿bootstrap-table写的分页插件

好久不写前端了,作为一个前端的菜鸟,还是要多加练习才行。这个分页插件用的是jquery,同时借鉴了bootstrap的表格和分页样式。下面先上效果图使用方法也比较简单。首先引入依赖 <link rel="stylesheet" href="/css/XLtable.css"> <script type="text/javascript" src="/js/jquery-3.2....

2018-06-14 20:17:46

springboot的自定义Listener

springboot中启动监听器Listener的两种方式第一种是基于servlet的第二种是基于spring的第一种注意还需要在启动类加上@ServletComponentScan注解,这里用抽象方法主要是考虑到适配器设计模式,用另一个listener继承来实现@WebListener@Slf4jpublic abstract class BaseListener implements Se...

2018-06-12 10:37:31

秒杀系统设计架构与实现

最近做了一个点餐的平台,其中涉及到一个很重要的问题,活动期间的秒杀系统的实现。抢购/秒杀是如今很常见的一个应用场景,是高并发编程的一个挑战,在网上也找了一些资料,大部分都是理论,关于java的实现也是很少,就算有也是很简单的demo,为此,决定将此次实现的秒杀系统整理一番,发布出来。架构思路Question1:由于要承受高并发,mysql在高并发情况下的性能下降尤其严重,下图为Mysql性能瓶颈...

2018-06-11 21:55:28

接口中写成员变量

今天又看到了一种新的写法,在接口中写成员变量相当于在类中用public final static 来定义。interface中默认的成员变量修饰是public final static

2018-06-06 09:15:43

IO-NIO 区别

一、概念     NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。二、NIO和IO的主要区别下表总结了Java IO和NIO之间的主要区别:IONIO面向流面向缓冲阻塞IO非阻塞IO无选择器   ...

2018-05-31 13:07:58

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!