- 博客(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
167
原创 系统进程占用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
489
原创 jvm内存结构图
从图可以看出,jvm内存模型由三部分组成:堆:存放对象实例、数组;方法区:也叫持久代,存放类的信息(类名、方法、字段)、静态变量、编译后的代码;本地方法栈:也叫线程栈,存放引用(指向对象或数组在堆中的位置)、基本类型变量。堆内存划分:新生代,包含了Eden区和Survivor区;老年代。各区存放对象:Eden区:存放新建的或短期的对象;Survi...
2017-04-14 14:12:16
247
原创 转: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
936
原创 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
196
原创 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
109
原创 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
3326
原创 eclipse部署找不到jar
在eclipse发布工程部署时,报如下异常: 到部署在tomcat的项目目录WEB-INF下看,并没有lib目录,也就是依赖的jar并没有拷贝过来。解决办法是,右击工程:Properties--->Deploymeng Assemly 从图中可以看出,部署缺少lib目录,把lib目录加入进去就可以了。 ...
2017-03-13 14:30:59
263
原创 redis集群数据同步
1、redis没有像mysql那样复制位置的概念,所以Slave和Master断开连接再重新连接时,会全量取Master的快照,Slave的所有数据都会清除,重新建立整个内存表,这样导致Salve恢复数据特别慢,同时也给Master带来的压力。2、通过主动复制解决redis本身复制的缺陷,即通过业务端或代理中间件对redis中的数据进行多份存储。Twitter开发的用于复制和分区的中间件g...
2017-03-11 16:08:43
2656
原创 设计模式
设计模式六大原则:1、开闭原则具体就是对扩展开放,对修改关闭。即在程序需要扩展的时候,不能去修改原来的代码,而是用抽象类和接口去进行扩展。2、里式代换原则里式代换原则((Liskov Substitution Principle LSP))是面向对象设计的基本原则之一,里式代换原则定义:基类可以出现的地方,子类一定可以出现。3、依赖倒转原则这是开闭原则的基础,具体就...
2017-03-11 16:06:12
152
原创 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
114
原创 mysql索引
mysql有三类索引:B-Tree索引MySQL中的B-Tree索引的物理文件大多都是以BalanceTree的结构来存储的,也就是所有实际需要的数据都存放于Tree的LeafNode,而且到任何一个LeafNode的最短路径的长度都是完全相同的,所以我们大家都称之为B-Tree索引当然,可能各种数据库(或MySQL的各种存储引擎)在存放自己的B-Tree索引的时候会对存储结构...
2017-03-09 11:21:36
118
原创 mysql优化
一、sql优化原则:使用EXPLAIN分析;使用小结果集驱动大结果集;尽可能在索引中完成排序;只取出需要的字段;尽可能避免复杂的join和子查询。二、sql优化1、创建索引; 创建组合索引时,选择范围较小的字段放到前面。2、分页:先分页查出主键,再使用inner join查询,如:select id,name from user t inn...
2017-03-05 19:37:54
93
原创 聊聊并发 Java SE1.6中的Synchronized
引用:http://www.infoq.com/cn/articles/java-se-16-synchronized
2017-03-05 16:03:33
131
原创 杀掉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
258
原创 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
138
原创 io基本理解
1、以内存为媒介理解io的输入输出,往内存写数据就是输入,往内存取数据就是输出。2、从源读取数据到内存:InputStream或者Reader。3、把内存中的数据写到源:OutputStream或者Writer。...
2017-02-21 19:20:31
515
原创 redis集群搭建
引用:http://www.cnblogs.com/zhaoguihua/p/redis-005.html集群要实现的目的是要将不同的 key 分散放置到不同的 redis 节点,这里我们需要一个规则或者算法,通常的做法是获取 key 的哈希值,然后根据节点数来求模,但这种做法有其明显的弊端,当我们需要增加或减少一个节点时,会造成大量的 key 无法命中,这种比例是相当高的,所以就有人提出...
2017-02-20 20:08:06
91
原创 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
78
原创 redis主从复制
Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构。Redis主从复制可以根据是否是全量分为全量同步和增量同步。1、全量同步 Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下: 1)从服务器连接主服务器,发送SYNC命令; 2)主服务器接收到SYNC命名后,开始执行BG...
2017-02-18 21:50:09
80
原创 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
192
原创 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
100
原创 HashSet源码解读
HashSet是通过HashMap来实现数据存放的,即把元素作为HashMap的key存放的,取出的数据是无序的,即存放的顺序与遍历输出的顺序不是对应的关系。
2016-12-24 15:37:39
78
原创 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
99
原创 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
87
原创 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
90
原创 java并发
Semaphore:用在有多少个线程可以同时访问一个资源,如控制流量;CountDownLatch:一般用在等所有线程完成某组操作之后才做接下来的任务,如并发读取一个数据文件,要等所有线程完成后才去做统计数据操作。CyclicBarrier:有点类似spring中的切面编程,在一个线程的一个切面切入一块逻辑。...
2016-12-22 20:02:19
80
原创 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
100
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
127
原创 maven编译失败
使用maven在编译代码时报错误: 经过一番折腾,发送原因是测试类的包路径写错了,即测试类须放在src\test下,而不是src\main下。记录之。
2016-03-02 14:19:52
228
原创 抽象类属性注入实现
由于抽象类不能实例化,所以在spring中就不能在xml配置文件中把值注入到抽象类中,比如我有个抽象类AbstractHtmlParser,而这个抽象类又有多个具体实现类BaiduHtmlParser、GoogleHtmlParser,这些具体实现类又都需要注入一些相同的实例,如果每个实现类都要去声明和注入一些相同的属性则显得太麻烦。这个时候我们可以使用spring的注解方式,在抽象类中把属性声明...
2014-12-11 19:29:03
3572
原创 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
121
原创 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
113
原创 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
172
原创 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
102
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
197
在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
77
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人