- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 浅拷贝与深拷贝、以及深拷贝的实现
浅拷贝与深拷贝所谓的浅拷贝,顾名思义就是很表面的很表层的拷贝,如果我们要克隆Administrator对象,只克隆他自身以及他包含的所有对象的引用地址。而深拷贝,就是非浅拷贝。拷贝除自身以外所有的对象,包括自身所包含的所有对象实例。至于深拷贝的层次,由具体的需求决定,也有“N层拷贝”一说。但是,所有的基本(primitive)类型数据,无论是浅拷贝还是深拷贝,都会进行原值拷
2016-04-22 00:39:17
783
原创 jacoco覆盖率计数器
覆盖率计数器Jacoco使用一系列的不同的计数器来做覆盖率的度量计算。所有这些计数器都是从java的class文件中获取信息,这些class文件可以(可选)包含调试的信息在里面。即使在没有源码的情况下,这种方法也可以实时有效地对应用程序进行度量和分析。在大部分情况下,收集到的信息可以映射到源码,可视化到每一行代码的粒度。但这种方法还是有一些限制。这些class文件必须使用调试信息来编译,这
2016-04-22 00:37:12
2383
原创 覆盖率工具-jacoco 集成进jenkins
Jacoco是一个开源的覆盖率工具。Jacoco可以嵌入到Ant 、Maven中,并提供了EclEmma Eclipse插件,也可以使用Java Agent技术监控Java程序。很多第三方的工具提供了对Jacoco的集成,如sonar、Jenkins、IDEA. Jacoco包含了多种尺度的覆盖率计数器,包含指令级(Instructions,C0 coverage),分支(Branches,C1
2016-04-22 00:35:19
18068
3
原创 基于spring test框架进行单元测试-框架介绍
什么是Spring TestContext? Spring TestContext是Spring提供的一套基于注解的Test框架,Spring TestContext有非常好的兼容性,可以无缝兼容JUnit,TestNG等单元测试框架,而且在其基础上增加更多的功能 在Spring应用大行其道的今天,使用Spring来构建应用已经是再普通不过的事情,但当使
2016-04-22 00:31:15
1770
1
原创 DbUnit实践:Spring Test Dbunit,H2数据库
概述 Dbunit是一个基于JUnit的数据库集成测试框架。DBUnit 的设计理念就是在测试之前,给对象数据库植入我们需要的准备数据,最后,在测试完毕后,回溯到测试前的状态;它使数据库在测试过程之间处于一种已知状态,如果一个测试用例对数据库造成了破坏性影响,它可以帮助避免造成后面的测试失败或者给出错误结果。 Spring Test DbUnit提供了Spr
2016-04-22 00:27:25
10512
原创 一个UnexpectedRollbackException异常解决
背景2014-10-08号早上06:50之后,系统一直在报UnexpectedRollbackException异常。stackTrace:org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollb
2016-04-22 00:16:11
9845
原创 java线上服务问题排查
1、业务日志相关如果系统出现异常或者业务有异常,首先想到的都是查看业务日志查看日志工具:less 或者moregreptail -f filename 查看实时的最新内容ps:切忌vim直接打开大日志文件,因为会直接加载到内存的2、数据库相关java应用很多瓶颈在数据库,一条sql没写好导致慢查询,可能就会带来应用带来致命危害。
2016-04-22 00:10:54
11363
1
原创 jmap命令
jmap(Memory Map for Java) 命令用于生成堆转储快照dump文件,除了这种方式还可以通过-XX:HeapDumpOnOutOfMemoryError参数,可以在虚拟机发生OOM的时候自动生成堆的dump文件,或者kill -3 命令发出进程退出信号"吓唬"一下虚拟机,也能拿到dump文件。jmap除了生成堆的dump文件 也可以查看查看堆的信息,查询finalize执
2016-04-22 00:08:45
1590
原创 jstack命令
jstack(Stack Trace for Java)命令用于生成JVM进程当前时刻的线程的调用堆栈,可以用来定位线程间死锁、锁等待、等待外部资源等jstack 命令格式jstack [option] pid-F 当正常jstack正常的请求不被响应时,强制输出线程堆栈-l 输出锁的附加信息-m 如果调用本地方法,可以输出C/C++堆栈 线
2016-04-22 00:08:03
3285
原创 jstat命令
jstat(JVM Statistics Monitoring Tool) 是用于监控JVM各种运行状态信息的命令行工具。命令格式jstat option vmid [ interval[s|ms] count ]vmid:jvm进程idinterval:查询间隔支持毫秒和秒,默认毫秒count:查询次数option:opti
2016-04-22 00:05:17
1706
原创 jinfo命令
jinfo(Configuration Info for Java) 命令的作用是实时的查看和调整虚拟机的参数。命令格式:jinfo [option] pidOptionsno-optionPrints both command-line flags and system property name-value pairs.-flag name
2016-04-22 00:04:40
1509
原创 jps命令
jps(JVM Process Status Tool)用来查看基于HotSpot的JVM里面中,所有具有访问权限的Java进程的具体状态, 包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java进程,可以把jps理解为ps的一个子集。 命令格式 jps [ options ] [ hostid ]-q 忽略输出的
2016-04-22 00:04:04
1896
原创 Spring mvc 上下文初始化过程
在软件开发的中,如果某些特性的使用比较普遍,那么这些特性往往可以作为平台特性来实现,通过对这些平台特性进行有效的封装,使其向其他应用开放。正是如此,Spring由于其IOC、AOP、事务处理、持久化驱动等特点,使得其起到了一个应用平台的作用。Spring MVC是Spring的一个重要的模块,其web应用的实现,是由Spring的来支撑的,Spring MVC的是实现也是依托再Spring平台提供
2016-04-21 23:59:37
9833
2
原创 Spring MVC 根上下文 call hierarchy
上一篇文章主要是介绍了Spring mvc上下文的初始化过程,对于父子容器如何被初始化没有仔细讲。下面根容器的call hierarchy 是自己在阅读源代码自己做的笔记,放当wiki上,做个记录。当Web应用启动时,contextInitialized方法会执行载入根上下文(IOC容器):ContextLoaderListener.contextInitialized
2016-04-21 23:56:26
1104
原创 Spring IOC 和 AOP
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 1、控制反转(IOC)/依赖注入(DI): 在传统的程序设计中,当调用者需要被调用者的协助时,通常由调用者来创建被调用者的实例。但在spring里创建被调用者的工作不再由调用者来完成,因此控制反转(IoC),为什么称为反转呢?反转是相对于正向而言的,那么什么算是正向的呢?考虑一下常规情况下
2016-04-21 23:33:26
2394
1
原创 AOP的一些实现机制
AOP就是面向切面编程,我们可以从几个层面来实现AOP。在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较。 类别机制原理优点缺点静态AOP静态织入在编译期,切面直接以字节码的形式编译到目标字节码文件中。
2016-04-21 23:31:31
595
原创 solr-in-action-ch4-Configuring Solr
Solr主要的三个XML配置文件:solr.xml: solr 日志、shard、solrcould等配置solrconfig.xml: 某个solr core的配置schema.xml:某个solr core的索引结构的配置,包括field 和field类型这一章主要介绍solrconfig.xml, 某个solr core的配置。1、Core的发现过程
2016-04-21 23:29:39
1468
原创 solr-in-action-ch1-Introduction to solr
Solr 是一个可扩展的,可快速部署的,对搜索海量文本中心的数据和对返回结果做相关性排序方面做了优化的企业级搜索引擎。可扩展性:Solr可以把建立索引和查询处理的运算分布到一个集群内的多台服务器上。快速部署:Solr是开源软件,安装和配置都很方便,可以根据安装包内的Sample配置直接上手。优化的搜索功能:Solr搜索够快。对于复杂的搜索查询,Solr可以做到亚秒级的处理,
2016-04-21 23:27:36
5095
原创 Insert into 加锁机制
关于Mysql innodb Insert into 加锁的机制的文章网上很少,个人对于insert 的加锁机制比较感兴趣,所以通过此wiki对研究的过程做个总结,如有不对的地方,欢迎指正。
2016-04-21 23:22:22
39418
10
原创 information_schema中Innodb相关表用于分析sql查询锁的使用情况介绍
之前的wiki MySQL中information_schema 简略的介绍了Mysql中元数据信息库的各个表的作用,从这篇wiki中可以大致了解各个表的作用。这里主要介绍下Innodb事务锁相关的三个表:INNODB_TRX表、INNODB_LOCKS表、INNODB_LOCK_WAITS表。通过查看这三个表可以事务加锁的情况以及事务锁等待的情况,从而可以更简单地监控当前事务并分析可能存在的锁问
2016-04-21 23:16:39
16657
原创 MySQL中information_schema
information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信
2016-04-21 23:14:21
1066
原创 2-分布式一致性协议
分布式系统的设计,往往会反复权衡可用性和一致性,于是就产生了一系列的一致性协议,其中最著名的就是二阶段提交一些(2PC)、三阶段提交协议(3PC)和Paxos协议
2016-04-21 23:07:38
4396
原创 Java日志框架
目前java应用日志收集都是采用日志框架(slf4j、apache commons logging)+日志系统(log4j、log4j2、LogBack、JUL等)的方式。而针对在分布式环境需要实时分析统计的日志,一般采用apache flume、facebook scribe等分布式日志收集系统。
2016-04-21 22:55:06
5077
原创 编程之美 2.4 1的数目
问题1:写一个函数f(N),返回1到N之间出现的“1”的个数。假设N=abcde,分别统计a、b、c、d、e位上出现的1的个数,它们之和就是总的1的个数a位上1的个数:若a>1,则为10000;若a=1,则为bcde+1;a不可能为0。b位上1的个数:若b>1,则为(a+1)*1000;若b=1,则为(a+1)*(cde+1);若b=0,则为a*1000;
2013-07-25 11:37:52
594
原创 编程之美 2.3 寻找发帖水王扩展问题
思路和一个水王一样,每次删除四个不同的ID。值得注意的地方:设置candidate1、candidate2、candidata3存储ID,这三个变量存储的ID不能相同。#includeusing namespace std;void find(int * ID,int N){ int candidate1; int candidate2; int candid
2013-07-24 23:46:56
850
原创 ip地址转换为unsigned int,unsigned int 转换成ip地址
ip地址转换为unsigned int 方法:例如ip地址“192.168.0.112”,四部分分别转换成整型的数t[4](利用atoi函数),转换后的数即为t[0]*(256^3)+t[1]*(256^2)+t[2]*256+t[3];unsigned int 转换成ip地址方法:定义联合体union IP { unsigned char char_ip[4];
2013-07-06 23:33:41
4496
原创 编程之美3.9---重建二叉树&&判断结果是否能够重建
#includeusing namespace std;struct Node{Node* pLeft;Node* pRight;int nValue;};bool isValid(int * pPreOrder,int *pInOrder,int nTreeLen){if(nTreeLen==0){return true;}if(pPreOrder==NULL||pInOrder==NULL){
2013-07-06 14:15:10
790
windows api 大全
2011-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人