自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

特立独行的猿

公众号:特立独行的猿

  • 博客(312)
  • 资源 (12)
  • 论坛 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java进程被杀死排查过程

相关知识Linux oom-killer 是一种自我保护机制,当系统分配不出内存时(触发条件)会触发这个机制,由操作系统在己有进程中挑选一个占用内存较多,回收内存收益最大的进程kill掉来释放内存。系统为每个进程做评估(/proc//oom_score中数值最大的进程被kill掉。当发生oom的时候,可以记录在/var/log/messages中,如下:排查思路推测原因:进程被kill可能的原因有哪些?被人为的 kill -9 pid了,可能性不大,暂不讨论。操作系统内存不足,触发了oo

2020-11-03 23:31:42 41

原创 减肥坚持不下去?一个立竿见影的方法

减肥坚持不下去?一个立竿见影的方法大家好,我是vac。今年29了,程序员一枚,本不以为自己可以「靠年轻吃饭」,随着新进的同事中几个97年的「后浪」,给了我当头一棒。我开始问自己我还年轻吗?我照了下镜子,打量了一下自己,“稀疏的头发,穿着格子衫,休闲裤,还挺着一个大肚子,双下巴上还长满了胡子。”从我的服装,外形体态和精神状态,我一眼看去像是一个37左右的老大叔。于是,我决心减肥。减肥过程中,遇到了很多的困难,让我坚持不下去,下面介绍我是怎么应对的方法。01 写下坚持不下去的原因举个例子,我当时在

2020-10-30 10:08:02 63 2

原创 Sql查询为什么要小表驱动大表

分析mysql的join实现原理是,以驱动表的数据为基础,“嵌套循环”去被驱动表匹配记录,select * from a join b on a.bid =b.id假设 a表10000数据,b表20数据这里有2个过程,b 表数据最少,查询引擎优化选择b为驱动表,循环b表的20条数据,去a表的10000数据去匹配,这个匹配的过程是B+树的查找过程,比循环取数要快的多。小表驱动的方式for 20条数据 匹配10000数据(根据on a.bid=b.id的连接条件,进行B+树

2020-10-28 11:31:22 72

原创 垃圾收集器入门

垃圾收集器入门1. GC的由来C语言是如何清理内存的?C语言本身是没有提供GC能力的,是程序员通过malloc来获取堆内存,通过free函数来释放内存。那么让我想想,垃圾回收的执行逻辑跟业务操作是没有关系的。让我联想到“让程序员专注于业务开发“这句话,大师们应该会将垃圾回收这块工作给封装起来,下沉到高级语言的功能包中,于是Java,c++,c#…此类高级语言自带gc功能应运而生。2. GC的步骤关于GC,主要有以下步骤第一步:哪些对象需要回收?第二步:如何回收?接下来,我围绕这2个步骤分

2020-10-08 23:59:46 22

原创 habase集群访问慢,hbase shell查询快的原因

问题现象今天早上,我还在上班路上,测试老大在群里面喊,xx应用仿真环境访问不了,并且截图了log日志,我看了一下是dubbo服务访问超时,第一反应是dubbo服务挂了,找运维重启,重启后无果,然后等我去了公司,看了详细日志,是dubbo接口响应时长达到6s,明明是测试通过的接口,接口性能不可能这样慢, 分析了下这个接口功能,是直连hbase查询,还是rowkey的get查询,应该是几十毫秒内响应。遇到此类,本来好好的,现在不行的问题,一般都是一脸问号,没办法,只能撸起袖子找原因了。第一步:hbase数

2020-10-02 21:02:38 65

原创 JAVA锁优化

Synchronizd 锁升级过程最近在整理自己的技术体系,关于并发编程,入门级知识重量级锁Synchronized,接下来试着解释这块知识。为什么说Synchronized是重量级锁jdk1.6之前,还没有引入“偏向锁”和”轻量级锁“,synchronized是依赖monitorenter指令和monitorexit指令实现的,而这个jvm指令集是依赖操作系统内核来完成的,就会涉及到用户态与内核态的数据传递,是比较耗性能的,所以,我们前辈称之为重量级锁。锁存放在哪里对象的内存布局如下[外链图片

2020-09-28 22:43:41 19

原创 Linux磁盘不足排查过程

今天,群里面有人@我服务挂了,群里都是公司那些老资格的大佬,心里一揪,还好是开发环境。我故作镇定的说,我看看,我打开Linux服务器,shell里面敲了服务状态命令,的确是挂了。于是我先重启,报错提示no space left on device。看这意思是没有空间了,不知道是内存没有空间了还是磁盘没有空间了,英语不好,于是只能轮流试一下[root@storm bin] free -m total used free shared buffe

2020-09-25 16:23:37 41

原创 缓存穿透解决方案:布隆过滤器

BitSet基础我们会遇到这样的需求,在海量数据中找出某个数据,我们想要的就是BitSet,BitSet本质是一个bit数组,使用1表示存在,0表示不存在。简单使用示例: BitSet bitSet = new BitSet(10);# 数组大小10 bitSet.set(1); # 索引1,记1 bitSet.set(2); # 索引2,记1 System.out.println(bitSet.get(1212));# 索引1212,没有数据,所以为0

2020-09-22 23:52:44 563

原创 jdk8自带时间操作利器

1、获取当前时间Instant instant = Instant.now(); //获取当前时间戳LocalDate localDate = LocalDate.now(); //获取当前日期LocalTime localTime = LocalTime.now(); //获取当前时刻LocalDateTime localDateTime = LocalDateTime.now(); //获取当前具体时间ZonedDateTime zonedDateTime = ZonedDate

2020-09-17 18:11:09 27

原创 JVM堆内存优化技术:指针压缩

JVM堆内存优化技术:指针压缩想要将知识转化为能力,第一步进行知识拆解,第二步,进行验证应用.前置知识oop是什么oop, 原意object origin pointer, 原始对象指针.对应虚拟机中的kclass地址,可以理解为对象在堆内存中的地址指针.寻址空间32位cpu架构,最大寻址内存为4g(2的32次方),64位cpu架构,寻址内存为TB级别(2的64次方)对象的内存布局对象在堆内存中 = 对象头+实例数据+对齐补充.对象头= markword + kclass地

2020-08-29 21:16:23 105

原创 责任链和命令模式在订单系统的实战记录

责任链和命令模式在订单系统的实战记录写在前面“纸上得来终觉浅,绝知此事要躬行”.读完23种设计模式后,感觉肚子还是空空的,不知道无从下手,今天翻了一下之前的博客,曾经记录过关于Apache Commons Chain的使用,它其实基于责任链,命令模式来写的,它很适合做流程化的逻辑代码,比如订单的下单,支付流程以及退款流程,让代码写的很nice,下面把我应用在订单系统的实战记录下,看下对其他人有没有帮助.概念Command接口: 1. 命令模式,实现它来执行责任链中某个节点的业务.

2020-07-29 16:25:03 120

原创 费曼学习法-聊聊设计模式

什么是设计模式?设计模式就是前人总结的代码设计的模型,就像武侠里面的武功的招式,套路。为什么需要设计模式啊?我平时代码敲的也没有问题啊,功能也完成了,线上跑的很健康1、统一编程风格实现功能,这属于硬编码,没有什么技巧,形成不了模式,只能说是个copyer,复制人。大部分代码都是cv的。不能称得上工程师,你敲的代码不能成为工程级别的项目。可能你写的代码只能你自己看得懂,如果你的命名不规范的化,就会形成自己的一套代码风格。2、易维护,行内统一语言如果你使用设计模式,大家的代码风格统一了,大家都有了共

2020-06-06 22:44:41 104

原创 JAVA工作流的优雅实现方式

今天查找线上问题,看到一个让我脑洞大开的工作流实现方式。以前用过责任链模式,也用过模板模式实现类工作流的方式,但是对比这个工具,逊色不少,不卖关子了,就是Apache Commons Chain,它是Command模式与责任链模式的综合体。1Apache Commons Chain 中的角色有:chain、context、command。2在我们订单系统有这样的业务,就是退票的时候,会根据核损后的...

2018-07-01 17:41:12 25276 6

原创 算法图解:快速排序

快速排序:假设有数组arr=[3,4,8,1,23,4]1 选择一个基准值,通常arr[0],2 选择一个基线条件:有且经仅当一个数组 或者 数组为空。if arr.length<2  return arr;3 将arr分为2组数据,通过基准值比较,将>基准值的放入新的数组greaterArr,其他的放入lessArr;4 分别对greaterArra 重复 2 3 4操作。俗称 分而...

2018-06-30 18:25:36 946

原创 算法图解:选择排序

选择排序,时间复杂度O(n*n),查询效率慢。步骤:假设数组int [] arr = {5,3,6,2,1,0},按照从小到大排序。1:取第一个位置的数为最小值,最小值所在的位置为0,即 min = 5, min_index = 0;2:跟arr第1个位置的值开始 比较,如果找到最小值,即 arr[1]<min,则更换最小值min=3,min_index=1;...................

2018-06-30 15:04:36 209

原创 算法图解:二分法查找

二分法查找:从排序好的数组,找到你需要找到的值(t=1),算法复杂度:O(log n)步骤:首先确认查找的数组索引范围,1:假设数据int[] arr = {0,1,2,3,4,5,6,7,8,9}; 2:则搜索范围为 [0,9];即int start =0;int end = 9;3:取数组索引中间的值跟t比较,int middle  = (start + end)/2=4;4:如果arr[mi...

2018-06-30 12:54:40 7590

原创 图解:垃圾回收的那些算法

标记-清除复制标记-压缩

2018-06-28 22:41:35 198

原创 图解JVM系列总纲

JVM运行期内存分配

2018-06-28 21:52:01 129

原创 图解:JVM虚拟机栈与组成部分

程序计数器虚拟机栈虚拟机栈与线程相关。启动一个线程,程序调用函数,栈帧被压入栈中,函数调用结束,相应的是栈帧的出栈。栈帧由局部变量表,操作数栈,帧数据区组成。局部变量表:存放的是函数的入参,以及局部变量。操作数栈:存放调用过程中的计算结果的临时存放区域。帧数据区:存放的是异常处理表和函数的返回,访问常量池的指针。本地方法栈堆方法区:常量池直接内存...

2018-06-28 21:50:20 1298

原创 「所谓的稳定,不过是在浪费生命」,你怎么看待这句话?

“追求稳定,就是浪费生命”,首先这是个主观命题,而且未免把话说的严重了点。如果咱们把话题换成“追求稳定,或许某些时候,像温室里的花朵,不利于个体的发展”,这样的表达更容易让人接受些。一对于稳定的好坏,这个要看每个人追求的是什么,有些人爱安稳,有些人爱折腾,投其所好就好;另外还跟每个阶段有关,年轻的时候,还是挑战一下自己,等到中年的时候,可以功成身退,求一份安稳的生活。二如果说“追求稳定就是浪费生命...

2018-06-22 22:06:12 355

原创 《围城》里的教会我的人情世故

      《围城》个中的句子,总让你饶有兴味的品尝好久,好的作品总能让人看完后,有所思或有所悟。比如有段关于人如何与人相处才能避免冲突,又能保持团结亲密。       方鸿渐是这样说的:“天生人是教他们孤独的,一个个该各归各,老死不相往来。身体里容不下的东西,或消化,或排泄,是个人的事,为什么心里容不下的情感,要找同伴来分摊?聚在一起,动不动自己冒犯人,或者人开罪自己,好像一只只刺猬,只好保持着...

2018-06-10 12:35:01 798

原创 就国内而言,读大学的意义是什么?

我是工作五年的程序员,以我个人的社会阅历来回答一下上大学的意义。论上大学的意义,撇开社会和家庭的,对我们自己,得从二方面理解。第一、对自身修养、品质大学,本身也是一种社会群体。在里面,你会遇到来自不同地方的人,你就被各种性格的人生活,你会感到不习惯,看不惯,渐渐地你知道你改变不了环境,只能去适应,你学会了包容。在校期间,你也会遇到社会黑暗,你只能学会低头。多少同学为了奖学金绞尽脑汁去凑学分,或者拉...

2018-06-08 22:04:38 3619

原创 一篇文章洞悉java动态代理

    最近在读特立独行的猫的小说(你以为的极限只是别人的起点),如果你对她有所了解,就知道她写的这本也是一本很浓的鸡汤的书籍,虽然我们听过很多道理却依旧过不好这一生,我觉得偶尔读读鸡汤,给自己打点鸡血还是蛮不错的体验。今天读了一篇文章,推荐一下,论写作对技术的重要性mp.weixin.qq.com/s/-bXP2jAcz8M1c9-nElOsJA一、什么是动态代理动态代理分为jdk动态代理与cg...

2018-06-04 13:26:01 174

原创 互联网系统架构的思考

     16年,我成功的进入了一家上市的互联网公司,来了这里半年多了,通过对系统的慢慢了解,想总结一些东西,以供后续改进与提升。     一、系统面临的问题     降级开关与灾备方案做的不足     优质人才缺乏,导致上线问题多    灰度环境无人维护,开发分支,版本控制       没有 统一规范     二、大型系统应该有的功能特点         ( 一)服务治理      大型项目都会...

2018-06-01 10:46:26 625

原创 人人都需要精神食粮

 今天,星期天,小雨。我坐在办公室里,趁着周末,周围安静祥和的环境,记录下我这段时间的沉淀的感悟吧。       二年前,我很幸运,来到了这家公司。至于福利薪水待遇,就不值得提了,幸亏这里还有一些优秀的同事,融洽的工作环境,我跟着他们学习一些我所缺失的某个领域,打破了我之前建立的价值观,对事物的看法。也不是说我之前的想法就是错的,就是有点局面了,和他们交流能使我的思想更饱满。       韩寒说过...

2018-05-31 17:18:48 472

原创 skycloud博客详细设计v1.0

博客详细设计v1.0 一、 功能分析 目的:v1.0:能发布博客,能评论,页面简洁大方 主要功能点: 1、首页 2、文章 3、详情页 参考http://www.bysocket.com/ 简单大方第一天: 项目名称:skycloud Git库:https://git.oschina.net/stefan2014/skycloud.git View效果: 二、页面设计三、前端开

2016-10-23 19:02:09 437

原创 底层解惑-spring的IOC相关接口:BeanFactory与FactoryBean

一、区别 BeanFactory是个 Factory ,也就是 IOC 容器或对象工厂; FactoryBean 是个 Bean,但是不是普通的bean,该bean是通过getobject()返回一个修饰的bean,而不是它本身,它的实现与设计模式中的工厂模式和修饰器模式类似。 二、代码package org.springframework.beans.factory;import o

2016-05-19 15:16:44 702

原创 底层解惑-spring的@service的原理及其一接口多实现的解决方案

spring  @service注解的接口实现类,如果是单一实现类,直接在controller用@Resource注入就可以了如果是多实现类,还这样做的话,就会报错(不止一个实例对象),于是可以如下做法:     1、在需要注入的地方使用如下方式引入:        @Autowired        @Qualifier("timeFilter")        Fi

2016-05-19 11:56:44 4020

原创 底层解惑-jndi与数据库连接池的联系与区别

在Tomcat4.1.27之后,在服务器上就直接增加了数据源的配置选项,直接在服务器上配置好数据源连接池即可。在J2EE服务器上保存着一个数据库的多个连接。每一个连接通过DataSource可以找到。DataSource被绑定在了JNDI树上(为每一个DataSource提供一个名字)客户端通过名称找到在JNDI树上绑定的DataSource,再由DataSource找到一个连接。如上图所示。

2016-05-18 11:42:04 2253

原创 多数据源 atomikos 打造Java分布式事务

SSH + atomikos 打造Java分布式事务 web工程

2015-08-27 14:12:57 617

原创 Tomcat的性能与最大并发(1000)

当一个进程有 500 个线程在跑的话,那性能已经是很低很低了。Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。 当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。 具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给 JVM 的内存越多性能也就越高,但也会加重 GC 的负担。 操作系统对于进程中的线程数有一定

2015-07-22 17:21:58 3797

原创 SQL语句的执行原理分析

原理: 第一步:应用程序把查询SQL语句发给服务器端执行。 我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理。 第二步:服务器解析请求的SQL语句。 1:SQL计划缓存,经常用查询分析器的朋友大概都知道这样一个事实,往往一个查询语句在第一次运行的时候需要执行特别长的时间,但是如果你马上或者在一定时间内运行同样的语句,会在很短的时间内返回查询结果。

2015-06-30 12:25:26 947

原创 java代码实现文件上传到linux服务器及问题汇总及解决

近段时间java代码向服务器上传文件的代码。可是屡试不行。很是郁闷。最终还是完成了。自己也总结了许多上传中的错误及解决分析,都是自己自己总结的,若有什么理解错误,欢迎大家留下宝贵意见,还有很多不懂得大家一起深入了解。在此谢过了下面附上代码。jar包我资源里免费的,欢迎大家下载。[html] view plaincopypack

2015-06-14 20:46:55 5862 1

原创 手写Java框架(一)-----理想的开源框架与设计原则

理想的开源框架•她应该是小的、简单的,满足Simple Is Beautiful•她应该是成长性好的,随着不断的扩展,她可以越来越丰满•她应该是有良好工具支持的,为什么要花时间做工具可以完成的事情呢?•她应该是自组装的,也就是尽可能的脱离配置,而是用一种依赖即可用,取消依赖即消失的全自动处理模式•她应该是模块化的,所有的内容都可以被打入jar包而作为一个整体进行发布,并且能支持

2015-06-09 11:26:15 1627

原创 Lucene与DB结合示例

今天发一个简单的和数据库交互的Lucene示例,只是初步的靠Lucene自带的分词实现中文分词,效果肯定没有网上琳琅的分词器相媲美,只为了示例,用了自带的高亮。页面不好看,将就一下哦。    主要是由 Spring + Struts1 + Mysql 5 实现, 只是为了实现功能。请各位大侠拍砖。    好了,不多说了。贴代码:     1. T_ARTICLE 表Ja

2015-05-20 19:56:31 1734

原创 lucene快速入门---一个例子读懂

一、一句话描述                  Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。二、举例应用                  Eclipse:基于Java的开放开发平台,帮助部分的全文索引使用了Lucene三、例子import java.io.Buffere

2015-05-20 19:54:21 2240 1

原创 session机制详解以及session的相关应用

session是web开发里一个重要的概念,在大多数web应用里session都是被当做现成的东西,拿来就直接用,但是一些复杂的web应用里能拿来用的session已经满足不了实际的需求,当碰到这样的情况时候我们需要更加深入的理解session的机制,本文将梳理下session的相关知识,为设计可替代web容器自带的session机制打个基础。 1.1 session的概念

2015-04-28 14:54:50 506

原创 内存分析----------------图解Java继承内存分配

2015-04-22 16:59:46 1152

原创 同一Tomcat下不同Web应用之间共享Session会话

实现同一Tomcat下两个WEB应用之间通过session 共享数据。查看tomcat 关于 HTTP Connector 中有个emptySessionPath 其解释如下:If set to true, all paths for session cookies will be set to /. This can be useful for portlet specifica

2015-04-14 17:04:55 3644

原创 NIO单线程编写高性能、高并发服务器

在传统的java网络编程中,都是在服务端创建一个ServerSocket,然后为每一个客户端单独创建一个线程Thread分别处理各自的请求,由于对于CPU而言,线程的开销是很大的,无限创建线程会让操作系统崩溃,因此,比较好的方法是在系统启动的时候创建一个动态的线程池,例如鼎鼎大名的服务器Tomcat,就是采用这种解决方案,然而,这种解决方案在高并发的情况下,情况就不太乐观了,当线程池大小超过CPU

2015-04-02 09:00:01 2496

springmvc_hibernate+json lib包

springmvc_hibernate+json lib包

2014-04-16

少有的城市四级联动的js弹出选择框

最近做了一项项目,要求用城市用四级联动,于是我们找到了一个插件弹出,里面有省市县三级的,经过努力成功的改造成四级联动具体到区,兼容各种主流浏览器,chrom,ie,firefox

2014-04-15

Android应用开发入门教程

Android应用开发入门教程

2013-01-29

个人理财系统 毕业设计

个人理财系统 毕业设计

2013-01-15

ssh开发实例

ssh开发实例

2013-01-16

poi官方文档 pdf

poi文档 官方文档 pdf 方便查找 目录查询

2013-01-05

我自制的小型图书管理系统

图书管理系统 我自制的小型图书管理系统 有源代码 供初学者学习下载 期末作业

2012-05-16

图书馆管理系统

图书馆管理系统 免费的 下再把 少年 冲把

2012-05-15

java API 中文文档

“学语言看书本 搞技术 看文档” java的开发离不开文档

2012-03-27

j2sdk-1_4_2-windows-i586.exe

j2sdk-1_4_2-windows-i586.exe 欢迎使用 ,学java还是开发装用

2011-11-01

Java入门必备(初学者必下)

初学者,必备的基础知识,和我一起进步吧,需要的下载吧,只为共同学习

2011-08-15

spring多数据源 分布式事务实例

SSH + atomikos 打造Java分布式事务 web工程

2015-08-27

一代天骄的留言板

发表于 2020-01-02 最后回复 2020-01-02

webservice 客户端调用服务出错Caused by: org.apache.cxf.binding.soap.SoapFault: An error w

发表于 2012-10-09 最后回复 2017-10-25

freemaker 修改模板ftl后。启动tomcat后,点击生成网页的时候模板还原了

发表于 2013-03-17 最后回复 2013-03-19

异步刷新UI主线程,动态生成GridView时,显示时候出现错误,上下颠倒

发表于 2013-02-28 最后回复 2013-03-17

为啥的的mvc中得servlet失败,不过编译成功了,再tomcat运行不了

发表于 2011-11-27 最后回复 2011-11-29

怎么jsp插入mysql失败,没有记录

发表于 2011-11-12 最后回复 2011-11-22

怎么jsp插入mysql失败,没有记录

发表于 2011-11-12 最后回复 2011-11-13

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

TA关注的人 TA的粉丝

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