自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 问答 (2)
  • 收藏
  • 关注

原创 JVM与GC

概述GC-垃圾收集类型●nSerial Garbage Collector●nParallelGarbage Collector●nCMS Garbage Collector收集流程GC参数-Xms4096m //初始堆大小-Xmx4096m //最大堆大小-Xmn1536m /

2016-04-13 21:06:57 558

原创 JSON工具类

JSON工具类有许多种,这里列出三个比较流行的json工具类:Jackson,Gson,FastJson.FastJson项目地址:https://github.com/alibaba/fastjsonGson项目地址:https://github.com/google/gsonJackson项目地址:https://github.com/FasterXML/jackson

2016-04-06 13:15:04 427

原创 JAVA 多线程执行

public class ThreadPoolUtils implements InitializingBean { ThreadPoolExecutor executor; int threadSize; int maximumPoolSize; long keepAliveTime; int maxQueueSize; @Override

2016-10-02 11:29:32 290

原创 Go--基础知识学习三

// test002 project main.gopackage mainimport ( "fmt")//一个结构体(`struct`)就是一个字段的集合。(而 type 的含义跟其字面意思相符。)type Vertex struct { X int Y int}/*结构体文法表示通过结构体字段的值作为列表来新分配一个结构体。使用 Name: 语法可以仅列出部分字

2016-05-20 09:10:00 272

原创 Go--基础知识学习二

Go 流程控制语句 for 、if、else、switch、defer// test001 project main.gopackage mainimport ( "fmt" "time")func main() { //Go 只有一种循环结构——`for` 循环。 // for循环()不强制使用,但是{}必须有 sum := 0 //第一种循环形式 for

2016-05-04 15:39:49 300

原创 GO--基础知识学习一

最近准备开始学习Go,记录在这里方便温习1、首先要下载安装部署环境,大家Google,好多大神都有相关的步骤说明,这里不再重复      Go下载地址:https://golang.org/dl/      LZ下载的是Windows 版本,安装即可,无需配置环境变量      开发工具下载地址:http://www.golangtc.com/download/liteid

2016-05-04 14:50:57 437

原创 JAVA实现AES加密

public class AesUtils { private static String KEY = null; protected static Logger log4j = Logger.getLogger("AesUtils"); private final static String encoding = "UTF-8"; /** * AES加密 * * @

2016-04-29 14:14:56 467

转载 Java中由substring方法引发的内存泄漏

在Java中我们无须关心内存的释放,JVM提供了内存管理机制,有垃圾回收器帮助回收不需要的对象。但实际中一些不当的使用仍然会导致一系列的内存问题,常见的就是内存泄漏和内存溢出内存溢出(out of memory ) :通俗的说就是内存不够用了,比如在一个无限循环中不断创建一个大的对象,很快就会引发内存溢出。内存泄漏(leak of memory) :是指为一个对象分配内存之后,在对

2016-04-27 14:45:32 262

原创 接口设计原则

系统越来越多,越来越复杂,项目开发中不可避免的遇到多个系统间调用,例如A调用B、B调用C可能遇到以下问题1、A调用B接口不通、或者B接口响应时间太长、影响体验及吞吐量2、上游系统压垮下月系统3、系统越来越多,线上问题排查变得越来越困难针对以上问题大概总结优化如下1、尽量减少外部接口依赖,例如A 想要获取订单列表 这个时候需要调用B  ,根据实际业务场景可以适

2016-04-20 16:51:32 2719 5

原创 分享查看源码工具

经常需要查看某些第三方的源码,一直在用的一个网站,功能比较简介、好用。 http://grepcode.com/Eclipse 或者 Intellij IDEA可以搜索安装该插件,方便使用Grepcode简介这是一个面向于java开发人员的网站,在这里你可以通过java的projects、classes等各种关键字在线查看它对应的源码,知道对应的projec

2016-04-17 15:47:04 482

转载 Java异常处理和设计

转载地址:http://www.cnblogs.com/dolphin0520/p/3769804.htmlJava异常处理和设计  在程序设计中,进行异常处理是非常关键和重要的一部分。一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度。试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻找出错的根源?但是如果一个项目异常处理设计地过

2016-04-07 09:42:29 242

转载 设计模式:单例模式(Singleton)

文章转载自:http://my.csdn.net/u013256816目录(?)[-]饿汉式懒汉式双检锁占位符式枚举式总结  单例模式在23个设计模式中算得上是最简单的一个了,也行你会有异议,那就换成“最简单之一”,这样就严谨了很多。   单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。   适用性:当类只能有一个实例而且

2016-03-25 17:16:47 238

转载 HTTP状态码整理

这些状态码被分为五大类: 100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。 500-599 用于支持服务器错误。 HttpServletResponse中的常量代表关联不同标准消息的状态码。在servlet程序中

2016-03-20 11:37:01 263

转载 深入剖析Java中的装箱和拆箱

原文出处: 海子自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。以下是本文的目录大纲:一.什么是装箱?什么是拆箱?二.装箱和拆箱是如何实现的三.面试中相关的问题若有不正之处,请谅解和批评指正,不胜感激。一.

2016-03-19 14:39:43 5593 3

原创 Comparable与Comparator浅析

转载自 http://blog.csdn.net/u013256816/article/details/50899416今天博主在翻阅TreeMap的源码,发现其键必须是实现Comparable或者Comparator的接口时产生了一些兴趣,比如在TreeMap中的put方法分别对Comparable和Comparator接口分别进行处理。那么疑问就来了,Com

2016-03-19 14:36:27 218

转载 mysql explain用法和结果的含义(转)

重点是第二种用法,需要深入的了解。先看一个例子:mysql> explain select * from t_order; +----+-------------+---------+------+---------------+------+---------+------+--------+-------+ | id | select_type | table   

2016-03-17 15:40:46 192

原创 代码实现内存溢出

/** 想展现OOM,简单的方法就是不断的申请内存空间,且保证不会执行gc内存回收* 记得配置 -xms20M -xmx20M*/public String toString() {      Listbyte[]> byteList = new ArrayListbyte[]>();      while (true) {          byteList.add(

2016-03-17 15:29:32 416

转载 一致性哈希算法

转载自:http://blog.csdn.net/cywosp/article/details/23397179    一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 

2016-03-17 13:34:20 240

原创 spring mvc请求流程

好多人说到MVC的请求处理流程不知道该如何表达,我教大家一个简单易懂的方法吧~,个人理解,仅供参考哈先举一个现实生活中的例子来讲解一下比如生病了,需要去医院看病,会有如下的几个步骤1、挂号处挂号,护士MM(超漂亮的)会问你挂哪个科室,这个时候你会说,最近嗓子不舒服,发烧了(类似用户发起一个http请求)2、分诊台(前端控制器),护士MM会告诉你交5元挂号费,告诉你去呼吸科就诊3

2016-03-14 17:37:56 295

原创 JVM参数调优

堆内存大小-Xmx3550m:设置JVM最大堆内存 为3550M。 -Xms3550m:设置JVM初始堆内存 为3550M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 常量区-XX:PermSize=256M:设置持久代 初始值为256M。-XX:MaxPermSize=512M:设置持久代最大值为512M。 直接内

2016-03-14 17:31:03 269

原创 线程状态转换图

一. 线程状态类型1. 新建状态(New):新创建了一个线程对象。2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂

2016-03-14 17:03:52 2557

原创 Mybatis读写锁bug

本人项目中所用Mybatis版本为3.0.6线上环境个别情况下部分服务器线程数超过阀值,报警经过jstack发现,大量线程在等待Mybatis锁,具体线程状态大家可以Google,大概了解一下。对比可以发现3.2.6以后的版本去除了锁限制。下面是官方的一个描述https://github.com/mybatis/mybatis-3/issues/159

2016-03-14 16:35:34 1292

原创 MAT分析

MAT全称为Memory Analzyer Tool,即一个Java Heaper分析器,可以用来分析内存泄露和减少内存消耗,它是eclipse的一个插件,可独立运行,具体分析步骤:1.        工具下载,下载地址:https://www.eclipse.org/mat/downloads.php;根据不同的操作系统选择不同的版本下载安装;2.        打印dump日志信息:使

2016-03-14 16:30:20 1073

原创 Java实现几种常见排序方法

public class Sort01 { /** * 冒泡排序算法 * 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 * 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 * 针对所有的元素重复以上的步骤,除了最后一个。 * 持续每次对越来越少的元素重复上面的步骤,直到没有任何一

2016-03-11 16:34:35 253

转载 java NIO原理及通信模型

Java NIO是在jdk1.4开始使用的,它既可以说成“新IO”,也可以说成非阻塞式I/O。下面是java NIO的工作原理:由一个专门的线程来处理所有的IO事件,并负责分发。事件驱动机制:事件到的时候触发,而不是同步的去监视事件。线程通讯:线程之间通过wait,notify等方式通讯。保证每次上下文切换都是有意义的。减少无谓的线程切换。阅读过

2016-03-10 17:52:19 802

转载 java提高篇-----异常(二)

原文地址:http://blog.csdn.net/chenssy/article/details/17651971目录(?)[-]      五自定义异常       六异常链       七异常的使用误区       八trycatchthrowthrows       九总结       承接上篇博文:java提高篇(十六)-----异常(一)

2016-03-04 15:05:53 287

转载 java提高篇-----异常(一)

目录(?)[-]       一为什么要使用异常       二基本定义       三异常体系       四异常使用Java的基本理念是“结构不佳的代码不能运行”!!!!!       大成若缺,其用不弊。       大盈若冲,其用不穷。       在这个世界不可能存在完美的东西,不管完美的思维有多么缜密,细心,我们都不可能考虑所

2016-03-04 15:04:26 290

转载 Java提高篇—–Java集合细节(三):subList的缺陷

原文地址:http://blog.csdn.net/chenssy/article/details/44102915目录(?)[-]一subList返回仅仅只是一个视图二subList生成子列表后不要试图去操作原列表三推荐使用subList处理局部列表         我们经常使用subString方法来对String对象进行分割处理,同时我

2016-03-04 14:44:22 283

转载 Java提高篇-----java集合细节(二):asList的缺陷

原文地址:http://blog.csdn.net/chenssy/article/details/38373877目录(?)[-]一避免使用基本数据类型数组转换为列表二asList产生的列表不可操作        在实际开发过程中我们经常使用asList讲数组转换为List,这个方法使用起来非常方便,但是asList方法存在几个缺陷:一、避免使

2016-03-04 14:43:17 223

转载 Java提高篇-----Java集合细节(一):请为集合指定初始容量

集合是我们在Java编程中使用非常广泛的,它就像大海,海纳百川,像万能容器,盛装万物,而且这个大海,万能容器还可以无限变大(如果条件允许)。当这个海、容器的量变得非常大的时候,它的初始容量就会显得很重要了,因为挖海、扩容是需要消耗大量的人力物力财力的。同样的道理,Collection的初始容量也显得异常重要。所以:对于已知的情景,请为集合指定初始容量。[java] view

2016-03-04 14:39:39 218

转载 JAVA fail-fast机制

在JDK的Collection中我们时常会看到类似于这样的话:例如,ArrayList:注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错误的做法:迭代器的快速失败行为应

2016-03-04 14:34:50 221

转载 java开发规范

部门内部总结的一些经验,仅供参考禁止在大循环中逐条调Service,SQL,Redis关于Service的调用服务本身:提供批量接口;调用方:尽可能的以批量方式调用取代逐条调用,减少系统开销;关于SQL的循环调用主要针对查询,尽可能的将逐条查询转化为一次查询一个批次,减少与数据库交互次数。

2016-02-25 11:01:05 337

转载 JVM类加载机制--双亲委派

预定义类加载器和双亲委派机制JVM预定义的三种类型类加载器:启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 /lib下面的类库加载到内存中(比如rt.jar)。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。标准扩展(Extension)类加载器:是由 Sun 的 ExtClassLoa

2016-02-24 15:00:33 356

转载 java并发编程系列

参考地址: http://www.cnblogs.com/dolphin0520/category/602384.html

2016-02-22 10:20:18 212

转载 工欲善其事必先利其器,提高编程效率

原文地址:http://blog.csdn.net/evankaka/article/details/47356915摘要:在程序开发过程中,一些IDE的配置、常用代类的积累以及常用框架的使用。能帮助我们迅速写好代码,快速定位错误。同时,又有利于我们快速构造和部署,以及进行后续的迭代开发。目录:一、IDE配置篇二、规范工程篇三、常用代码篇四、常用框架

2016-02-19 09:48:36 403

原创 mysql事物隔离级别

1.查看当前会话隔离级别 select @@tx_isolation; 2.查看系统当前隔离级别 select @@global.tx_isolation; 3.设置当前会话隔离级别 set session transaction isolatin level repeatable read; 4.设置系统当前隔离级别 set global

2016-02-19 09:43:39 395

转载 java socket服务器端例子

在网上无意看到一个多线程的Socket服务器端例子,觉得非常不错。特别是其中的线程池的思想,简单而且高效。虽然JDK1.5开始已经自带了线程池包,但该代码不失为学习Socket和多线程的一个好的入门例子。下面的代码是对该例子的简单整理,补充了注释。【代码一】PooledConnectionHandler:后台处理类package server;import java

2016-02-19 09:40:40 331

转载 Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

原文地址:http://www.cnblogs.com/qqzy168/archive/2013/08/03/3219201.htmlJava 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排

2016-02-19 09:36:56 573

原创 Map遍历方法

在不同的遍历写法中,推荐使用如下写法,其效率略高一些:

2016-02-19 09:33:00 222

转载 java多线程学习

目录(?)[-]一扩展javalangThread类二实现javalangRunnable接口三Thread和Runnable的区别四线程状态转换五线程调度六常用函数说明使用方式为什么要用join方法七常见线程名词解释八线程同步九线程数据传递         林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evanka

2016-02-19 09:25:44 238

空空如也

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

TA关注的人

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