自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 hash

在Hashtable类中得到key的hash值后会进行如下运算:hash & 0x7FFFFFFF 原因是得到的hash值可能是个负数,而0x7FFFFFFF表示int类型的最大值,0x7FFFFFFF的二进制表示如下:0111 1111 1111 1111 1111 1111 1111 1111 首位表示符号位,0表示正整数,这样和hash值进行‘与’操作时得到一个正...

2017-10-09 10:11:45 141

原创 系统进程占用CPU过高的处理流程

1、jps -v列出java进程;2、top列出所有进程及占用CPU情况,结合上一步就可以找出占用CPU过高的java进程pid;3、top -H -p pid,查看进程中线程占用CPU的情况;4、printf "%x\n" tid,把线程ID转换为16进制;5、使用jstack -l pid > pid.dump命令dump出进程的堆栈信息到文件;6、在文件中找到线程...

2017-05-11 19:53:38 446

原创 jvm内存结构图

 从图可以看出,jvm内存模型由三部分组成:堆:存放对象实例、数组;方法区:也叫持久代,存放类的信息(类名、方法、字段)、静态变量、编译后的代码;本地方法栈:也叫线程栈,存放引用(指向对象或数组在堆中的位置)、基本类型变量。堆内存划分:新生代,包含了Eden区和Survivor区;老年代。各区存放对象:Eden区:存放新建的或短期的对象;Survi...

2017-04-14 14:12:16 199

原创 转:redis sentinel模式下,如何选举新的master

sentinel是一个独立于redis之外的进程,不对外提供key/value服务。在redis的安装目录下名称叫 redis-sentinel 。 主要用来监控redis-server进程,进行master/slave管理,如果你的redis没有运行在master/slave模式下,不需要设置sentinel。 两个基本概念S_DOWN :subjectively down,...

2017-04-11 17:33:27 902

原创 mongo多条件

Criteria criteria = new Criteria();criteria.and("type").is("1");criteria.and("id").is("10009");criteria.orOperator(new Criteria("src").is("online"),new Criteria("src").exists(fals

2017-04-06 15:13:17 182

原创 redis记录目录

1、主从、主从复制;2、sentinel;3、分片;4、哈希一致性。

2017-03-31 10:01:35 95

原创 java装箱和拆箱

在java中有byte、short、int、float、double、long、boolean7中基本类型即其对应的包装类型。在java SE5之前要想生产一个基本类型数值的对象,必须像下面这样:Integer count = new Integer(1);而从java SE5开始提供了自动装箱功能,即要生成一个基本类型数值的对象,只要像下面这样即可:Integer count =...

2017-03-21 11:44:34 88

原创 Aspect出现error Type referred to is not an annotation type

使用Aspect记录操作日志时,启动项目报以下异常:严重: StandardWrapper.Throwableorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mvcContentNegotiationManager': Initialization of be...

2017-03-16 14:00:01 3272

原创 eclipse部署找不到jar

在eclipse发布工程部署时,报如下异常: 到部署在tomcat的项目目录WEB-INF下看,并没有lib目录,也就是依赖的jar并没有拷贝过来。解决办法是,右击工程:Properties--->Deploymeng Assemly 从图中可以看出,部署缺少lib目录,把lib目录加入进去就可以了。 ...

2017-03-13 14:30:59 235

原创 redis集群数据同步

1、redis没有像mysql那样复制位置的概念,所以Slave和Master断开连接再重新连接时,会全量取Master的快照,Slave的所有数据都会清除,重新建立整个内存表,这样导致Salve恢复数据特别慢,同时也给Master带来的压力。2、通过主动复制解决redis本身复制的缺陷,即通过业务端或代理中间件对redis中的数据进行多份存储。Twitter开发的用于复制和分区的中间件g...

2017-03-11 16:08:43 2616

原创 设计模式

设计模式六大原则:1、开闭原则具体就是对扩展开放,对修改关闭。即在程序需要扩展的时候,不能去修改原来的代码,而是用抽象类和接口去进行扩展。2、里式代换原则里式代换原则((Liskov Substitution Principle LSP))是面向对象设计的基本原则之一,里式代换原则定义:基类可以出现的地方,子类一定可以出现。3、依赖倒转原则这是开闭原则的基础,具体就...

2017-03-11 16:06:12 137

原创 nginx

一、nginx缓存静态资源在nginx中使用expires指令来控制HTTP头部过期时间,这个指令可以放在http {}、server {}、location {} 等语句块或者 location {} 语句块中的条件语句中,如在 location 语句块中用 expires 指令控制静态文件:写道location ~* \.(jpg|jpeg|png|gif|ico|css|js...

2017-03-10 11:16:56 92

原创 mysql索引

mysql有三类索引:B-Tree索引MySQL中的B-Tree索引的物理文件大多都是以BalanceTree的结构来存储的,也就是所有实际需要的数据都存放于Tree的LeafNode,而且到任何一个LeafNode的最短路径的长度都是完全相同的,所以我们大家都称之为B-Tree索引当然,可能各种数据库(或MySQL的各种存储引擎)在存放自己的B-Tree索引的时候会对存储结构...

2017-03-09 11:21:36 92

原创 mysql优化

一、sql优化原则:使用EXPLAIN分析;使用小结果集驱动大结果集;尽可能在索引中完成排序;只取出需要的字段;尽可能避免复杂的join和子查询。二、sql优化1、创建索引;      创建组合索引时,选择范围较小的字段放到前面。2、分页:先分页查出主键,再使用inner join查询,如:select id,name from user t inn...

2017-03-05 19:37:54 75

原创 聊聊并发 Java SE1.6中的Synchronized

引用:http://www.infoq.com/cn/articles/java-se-16-synchronized

2017-03-05 16:03:33 112

原创 杀掉mysql被锁的进程

1、查出被锁的进程:mysql -uroot -h127.0.0.1 -p*** -e 'show processlist'|grep "tablename" |grep -v grep|awk '{print $1}'|xargs 2、把查出来的进程ID放到一个变量中:arr=(768,358) 3、循环杀掉被锁进程:for i in ${arr[@]}; do mysq...

2017-02-27 10:39:07 229

原创 Java数据类型及对应取值范围

在Java中,数据类型分为两大种:基本数据类型(值类型)和包装类型(引用数据类型)。基本数据类型不是对象,不能调用toString()、hashCode()、getClass()、equals()等方法。8种基本数据类型-----8种包装类型 整型:    byte  Byte     【-128,127】 1个字节(【-2的7次方,2的7次方-1】)   一个字节有8位      ...

2017-02-22 19:10:12 122

原创 io基本理解

1、以内存为媒介理解io的输入输出,往内存写数据就是输入,往内存取数据就是输出。2、从源读取数据到内存:InputStream或者Reader。3、把内存中的数据写到源:OutputStream或者Writer。...

2017-02-21 19:20:31 471

原创 redis集群搭建

引用:http://www.cnblogs.com/zhaoguihua/p/redis-005.html集群要实现的目的是要将不同的 key 分散放置到不同的 redis 节点,这里我们需要一个规则或者算法,通常的做法是获取 key 的哈希值,然后根据节点数来求模,但这种做法有其明显的弊端,当我们需要增加或减少一个节点时,会造成大量的 key 无法命中,这种比例是相当高的,所以就有人提出...

2017-02-20 20:08:06 77

原创 redis集群

http://www.cnblogs.com/zhaoguihua/p/redis-005.html http://www.cnblogs.com/zhaoguihua/p/redis-006.html redis集群规范:http://blog.chinaunix.net/uid-7374279-id-4470290.html

2017-02-20 09:24:52 63

原创 redis主从复制

Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构。Redis主从复制可以根据是否是全量分为全量同步和增量同步。1、全量同步  Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下: 
  1)从服务器连接主服务器,发送SYNC命令; 
  2)主服务器接收到SYNC命名后,开始执行BG...

2017-02-18 21:50:09 69

原创 redis批量删除

redis中没有批量删除数据的指令,但可以借助linux的指令xargs来批量删除:redis-cli keys CUST_APP_KEY* | xargs redis-cli del 如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径,如:/opt/redis/redis-cli keys CUST_APP_KEY* | xargs /opt/re...

2017-02-16 14:25:34 160

原创 tomcat原理

http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/

2017-01-22 15:22:03 94

原创 LinkedHashMap源码解读

LinkedHashMap继承了HashMap,采用双向链表结构,数据顺序是可预知的 void transfer(HashMap.Entry[] newTable, boolean rehash) 以及void addEntry(int hash, K key, V value, int bucketIndex) { super.addEntry(hash, key...

2016-12-24 15:46:47 87

原创 HashSet源码解读

HashSet是通过HashMap来实现数据存放的,即把元素作为HashMap的key存放的,取出的数据是无序的,即存放的顺序与遍历输出的顺序不是对应的关系。

2016-12-24 15:37:39 67

原创 HashMap源码解读

HashMap保存数据的结构是数组+单向链表,它集成AbstractMap类以及实现Map接口: public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable{ //初始化大小16 ...

2016-12-24 15:35:26 80

原创 ArrayList源码解读

ArrayList继承了AbstractList类记忆实现了List接口,使用数组保存元素public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ ...

2016-12-24 14:48:25 73

原创 LinkedList源码解读

LinkedList 存放数据通过双向链表实现:写道private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this...

2016-12-24 14:34:25 75

原创 java并发

Semaphore:用在有多少个线程可以同时访问一个资源,如控制流量;CountDownLatch:一般用在等所有线程完成某组操作之后才做接下来的任务,如并发读取一个数据文件,要等所有线程完成后才去做统计数据操作。CyclicBarrier:有点类似spring中的切面编程,在一个线程的一个切面切入一块逻辑。...

2016-12-22 20:02:19 65

原创 maven入门

1、先去maven官网http://maven.apache.org/download.html下载,下载完后解压到本地;2、设置maven环境变量:      MAVEN_HOME=D:\apache-maven-3.3.9      path=%MAVEN_HOME%\bin;      查看maven版本信息:mvn -v3、使用maven创建一个工程: 4、生...

2016-10-21 12:50:21 87

srping 实例作用域

在spring中是通过bean标签的scope属性设置bean的作用域的:1、默认情况下,scope="singleton",那么该bean是单例;2、scope="prototype",任何一个实例都是新的实例;3、scope="request",在web应用中,每个实例的作用域在request中;4、scope="session",在web应用中,每个实例的作用域在sess...

2016-09-23 09:16:59 109

原创 maven编译失败

使用maven在编译代码时报错误: 经过一番折腾,发送原因是测试类的包路径写错了,即测试类须放在src\test下,而不是src\main下。记录之。 

2016-03-02 14:19:52 203

原创 抽象类属性注入实现

由于抽象类不能实例化,所以在spring中就不能在xml配置文件中把值注入到抽象类中,比如我有个抽象类AbstractHtmlParser,而这个抽象类又有多个具体实现类BaiduHtmlParser、GoogleHtmlParser,这些具体实现类又都需要注入一些相同的实例,如果每个实现类都要去声明和注入一些相同的属性则显得太麻烦。这个时候我们可以使用spring的注解方式,在抽象类中把属性声明...

2014-12-11 19:29:03 3529

原创 struts2学习之四-struts2注解

struts2学习之一: [url]http://arthur2014.iteye.com/blog/2162974[/url] struts2学习之二-json插件:[url]http://arthur2014.iteye.com/blog/2162989[/url] struts2学习之三-spring注解:[url]http://arthur2014.iteye.com/admin/...

2014-12-04 20:41:45 100

原创 struts2学习之三-spring注解

请看之前的struts2学习之一: [url]http://arthur2014.iteye.com/blog/2162974[/url]struts2学习之二-json插件: [url]http://arthur2014.iteye.com/blog/2162989[/url]struts2学习之四-struts2注解:[url]http://arthur2014.iteye.com...

2014-12-04 20:22:42 98

原创 struts2学习之二-json插件

struts2学习之一:[url]http://arthur2014.iteye.com/admin/blogs/2162974[/url]struts2学习之三-spring注解:[url]http://arthur2014.iteye.com/admin/blogs/2162996[/url]struts2学习之四-struts2注解:[url]http://arthur2014.it...

2014-12-03 19:08:30 142

原创 struts2学习之一

纯属记录。由于工作中的项目需要用到struts2,就花了点时间作了些了解和练习,为了加深印象记录之。大步骤如下:1、使用gradle构建项目;2、一个简单的action;3、使用json格式数据传输数据[url]http://arthur2014.iteye.com/admin/blogs/2162989[/url];4、spring注解[url]http://arth...

2014-12-03 19:05:57 88

Ant使用说明

Ant的使用分以下几步:(操作系统:Windows)一、Ant下载:http://ant.apache.org/bindownload.cgi,最新版本为apache-ant-1.7.0-bin.zip;二、安装Ant:假设安装在d盘:D:\apache-ant-1.7.0,直接解压就行。设置ANT_HOME系统变量和PATH系统变量:set ANT_HOME= D:\...

2008-03-03 17:14:44 175

在Tomcat和Eclipse进行远程调试的配置

在做远程调试时,在windows系统和非windows系统下的配置,Tomcat中会有所差别,具体如下:第一步、配置tomcat一、 在windows系统中:打开%CATALINE_HOME%/bin下的文件catalina.bat,加入下面这行:set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -...

2008-03-03 17:06:50 66

空空如也

空空如也

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

TA关注的人

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