- 博客(84)
- 资源 (3)
- 收藏
- 关注
原创 基础测试理论与实践-连载(一):写的背景与动机
注:本文是原创,转载麻烦务必注明出处。我第一次接触测试的概念,是我大三的一次技术通识课上。我的学校是一所国家级重点大学,在广东省更是办学的佼佼者。虽然我的专业,计算机科学与技术不是S学校的强项,但是我们班有很多同学在校期间就拿了ACM的世界金牌。在这种大牛大神的崇尚学习氛围下,测试作为一门与“项目管理”初感类似的课程,自然不会引起任何波澜。幸运的是,毕业的时候,我进入了阿里公司
2017-04-03 18:20:24
529
原创 本地Spring容器关闭的时机
一、背景引入近期开发Spring应用的时候,基本的用户功能逻辑都通过SpringMVC框架铺垫好,通过暴露给前端的API进行功能的实现。但是在设计运营后台部分的时候,由于时间有限,采用了使用Shell脚本调用Java的方式,然后产生了一个让我头痛一阵子的问题:通过Shell调用Java功能,由于需要使用到mybatis操作数据库,mybatis与dao层强绑定,故被Shell脚本调用的Java
2016-04-05 16:11:56
3173
原创 final关键字与Java编译器的小坑
一、背景引入近期在开发一个项目的后台时,使用到了邮件发送的服务。由于考虑变化的可能性不大,将邮箱地址和发信服务器使用final static修饰符定义在一个util类中,并在发信代码中调用(而没有做成配置文件,其实后来想想,还是需要做成配置文件会更稳妥些),后面升级到服务器时发现邮箱地址需要改动,于是修改了util类中的变量内容,并将编译之后的util类的class文件覆盖到线上,结果发信地址
2016-04-05 14:59:56
1596
1
原创 LongCache机制与Long等值比较
一、背景引入近期在开发一个项目的后台时,当项目上线后出现了一个测试环境没有出现的问题:部分用户在提交信息时提示了该信息不属于当前用户。经过对代码的review,发现了出错的代码的开发逻辑是,在用户提交信息之后,将信息更新入数据库之前,首先判断当前的信息是否属于当前的用户;通过信息.account_id == 用户.id进行了判断,两个id都是Long类型。直觉是使用==号出错的问题,于是将
2016-04-05 11:16:39
2228
2
原创 #测试相关#Getting “junit.framework.AssertionFailedError: Forked Java VM exited abnormally” Exception
编写Ant脚本进行持续测试的时候,出现了junit.framework.AssertionFailedError: Forked Java VM exited abnormally的报错,以此为关键字谷歌了很久,得到的答案几乎都是扩大内存之类,或者设置junit标签的fork为no的,试过了均是无效。其实这个提示是不够精准的…
2014-06-30 11:09:06
3645
3
原创 【以前】作业思索:内部类以及double相加值
import java.math.BigDecimal;public class MatrixCal { //内部类 static class Matrix{ //第一处 private double
2014-04-11 11:50:35
678
转载 Java虚拟机原理、内存分配和回收机制
问题引入:Java类的construtor方法是没有返回值的,那为什么诸如 JavaClass jc = new JavaClass()会返回一个对象(或者说一个对象的引用)给等号左侧呢?========================http://quding0308.iteye.com/blog/1260260======================
2014-04-11 10:01:01
767
转载 如何实现具有最大值、最小值和中间值的栈和队列
转自:在研究“如何实现具有最大值、最小值和中间值的栈和队列”前,我们先考虑以下问题,然后由此过度到题目问题。1)如何用两个栈实现队列2)如何用两个队列实现栈3)如何实现包含获取最小值函数getMin()的栈4)如何实现包含获取中间值函数getMedian()的栈5)如何实现包含获取最小值函数getMin()的队列1 如何用两个栈实现队列在研究问题前,我们可以用2
2014-04-05 01:00:03
992
转载 Bloom Filter概念和原理
转自:http://blog.csdn.net/jiaomeng/article/details/1495500
2014-04-05 00:50:01
528
转载 十道海量大数据处理面试题
转自: 1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然
2014-04-05 00:41:32
918
转载 Java多线程-工具篇-BlockingQueue
See the original page here:http://www.cnblogs.com/jackyuj/archive/2010/11/24/1886553.html前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本
2014-03-31 14:47:19
639
转载 java中List.subList方法使用注意
本文转自:http://topic.csdn.net/u/20110830/13/7ea0e09c-7317-4215-96ab-fa672ea91ff8.html?91324For example, ArrayList aList;获取其子链表 List sub = aList.subList(begin, end);sub可以继续转换成ArrayLi
2014-03-04 10:45:21
1340
转载 EasyMock tutorial – Getting Started
In this post, I'm going to show you what EasyMock is and how you can use it for testing your java application. For this purpose, I'm going to create a simple Portfolio application and test it usingÂ
2014-03-03 14:13:24
925
原创 StringWriter/PrintWriter在Java输出异常信息中的作用
闲来无事,看看JUnit的源代码。刚刚开始看就发现一段有趣的代码:public String trace() { StringWriter stringWriter = new StringWriter(); PrintWriter writer = new PrintWriter(stringWriter); thrownException()
2014-01-23 11:42:50
3562
转载 Java自定义注解小结
From:http://blog.sina.com.cn/s/blog_69a4df530100p8w3.htmlJava自定义注解小结作者:谢伟伦学习java有两年之余了,在很久之前,已经有位系统分析师告诉我,学习java,看java编程思想就够了。其言下之意,就是说,任何一切java框架,都是浮云,只有精通核心java,才是王道!现在回想起来,这句话真的十分正确,一年多的工作,
2014-01-22 10:17:34
599
转载 IBM技术论坛:使用 Cobertura 和反射机制提高单元测试中的代码覆盖率
引言单元测试是软件开发过程中重要的质量保证环节。单元测试可以减少代码中潜在的错误,使缺陷更早地被发现,从而降低了软件的维护成本。软件代码的质量由单元测试来保证,而单元测试自身的质量与效率问题也不容忽视。提高单元测试的质量与效率,不仅能够使软件代码更加有保证,而且能够节省开发人员编写或者修改单元测试代码的时间。衡量单元测试质量与效率的指标多种多样,代码覆盖率是其中一个极为重要的指标。一般而言
2014-01-15 10:43:07
1168
转载 IBM技术论坛:单元测试利器 JUnit 4
引言毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果。单元测试正是验证代码行为是否满足预期的有效手段之一。但不可否认,做测试是件很枯燥无趣的事情,而一遍又一遍的测试则更是让人生畏的工作。幸运的是,单元测试工具 JUnit 使这一切变得简单艺术起来。JUnit 是 Java 社区中知名度最高的单元测试工具。它诞生于 1997
2014-01-15 10:36:10
1025
原创 小谈Java的初始化问题
同学发给我一个代码如下:package hello;public class hello { public static void main(String[] args) { int i, j; int sum; for (i = 1; i <= 1000; i++) { for (j = 1, sum = 0; j <= i / 2; j++) { if (i
2014-01-14 16:21:39
1443
原创 有用的知识技能书签
JUnit 4 入门教程:http://www.ibm.com/developerworks/cn/java/j-lo-junit4/
2014-01-09 11:39:04
834
原创 #自制工具书# MySQL插入中文,获取数据得到乱码?
在my.ini中,MySQL的默认字符集是latin1,我们常用的存储中文的字符集为utf-8(在MySQL写为utf8)以及gbk。所以在需要存储中文的表格中,可以这样定义:在定义表格的最后加上DEFAULT CHARSET的设置语句。亲测成功。
2014-01-01 12:08:39
1016
原创 离开博客的日子
不止一次听到业界的牛人说写博客的重要性。在过去的一年里,一边实习,一边写博客,或者说做博客,更多地是想记录自己当下做的东西的一些技巧,以便日后查询。实习过后,忙碌的校招,我也从此荒废了我的博客很久了。今天是2013年的最后一天。一个人孤单在外的我,还是在忙碌我的毕业设计——一个基于数据挖掘的推荐系统。在这个几乎没有人知道我是谁的博客,我应该更为认真地做好自己的总结,并对来年做好规划。2
2013-12-31 20:56:14
774
原创 C++ Again(1):文件读入与写出
本文章的实现参考自第一章第5节。当前的任务是实现一个C++程序,能够从某个文件读入字符串并将字符串写入到另一个文件中。实现代码如下:a#include #include #include using namespace std;int main(){ ofstream outfile("out_file"); ifstream infile("in_file");
2013-10-31 18:20:23
1854
转载 有趣的题目系列一:实现具有最大值、最小值、中间值的栈和队列
题目来源:1)http://blog.csdn.net/bigheadzzy/article/details/80022532)http://blog.csdn.net/yangzhongblog/article/details/12391959文章中的大部分题目描述、代码均参考自上面二处,加以自己的一些理解。------------------------------------
2013-10-08 21:22:56
1427
原创 【面试题】树的高度
题目来自:陈利人老师的微博和微信!给定数组A,大小为n,数组元素为1到n的数字,不过有的数字出现了多次,有的数字没有出现。请给出算法和程序,统计哪些数字没有出现,哪些数字出现了多少次。能够在O(n)的时间复杂度,O(1)的空间复杂度要求下完成么?思路:如果现在我们有一个树的表示如下[-1,0,0,1,0,2,1,4,2,7,6,7,10]可见树的根为0.而1的父亲结点为0,
2013-08-28 20:54:40
766
原创 【通切1】Quartz框架的使用
Quartz框架是用于定时执行任务的框架。需要引入的包为quartz-all-1.5.2.jar首先是写一个Job类,类似于public class RouterLogSche implements Job{ private final static Logger logger = Logger.getLogger(RouterLogSche.class); @Overri
2013-08-28 17:03:48
682
转载 ibatis学习(三)---ibatis与spring的整合
转自:http://www.blogjava.net/freeman1984/archive/2007/12/07/166112.htmlSpring通过DAO模式,提供了对iBATIS的良好支持。SqlMapClient对象是iBATIS中的主要对象,我们可以通过配置让spring来管理SqlMapClient对象的创建。与hibernate类似,Spring 提供了SqlM
2013-08-16 11:03:22
749
转载 ibatis学习(二)--ibatis使用介绍
转自:http://www.blogjava.net/freeman1984/archive/2007/12/07/166113.htmlSqlMapClient对象这个对象是iBatis操作数据库的接口(执行CRUD等操作),它也可以执行事务管理等操作。这个类是我们使用iBATIS的最主要的类。它是线程安全的。通常,将它定义为单例。(与hibernate中sessionF
2013-08-16 11:02:46
716
转载 ibatis学习(一)--ibatis介绍以及用例
转自:http://www.blogjava.net/freeman1984/archive/2007/12/07/166116.html 介绍iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。iBATIS不同于一般的OR映射框架(eg:hibernate)。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-da
2013-08-16 11:02:03
644
转载 java验证码识别--3
来自:http://blog.csdn.net/problc/article/details/5800093(本文仅用于学习研究图像匹配识别原理,不得用于其他用途。)完整eclipse工程http://download.csdn.net/detail/problc/3829004前面的验证码背景都比较简单,用亮度稍微区分一下就可以去掉背景来看个稍微复杂一点的
2013-07-26 10:12:34
848
转载 java验证码识别--2
来自:http://blog.csdn.net/problc/article/details/5797507(本文仅用于学习研究图像匹配识别原理,不得用于其他用途。)完整eclipse工程http://download.csdn.net/detail/problc/3829004换一个字体固定,大小固定,位置不固定的验证码 还是四步。
2013-07-26 10:11:40
1065
转载 java验证码识别--1
来自http://blog.csdn.net/problc/article/details/5794460(本文仅用于学习研究图像匹配识别原理,不得用于其他用途。)完整eclipse工程http://download.csdn.net/detail/problc/3829004最近看了看验证码的识别,先从最简单的做起吧(固定大小,固定位置,固定字体) 验证码
2013-07-26 10:09:02
975
转载 ArrayList与数组的区别于联系
转自:http://www.blogjava.net/flysky19/articles/92775.html一、数组与ArrayList的主要区别:效率、类型识别和primitive type。数组([]):最高效;但是其容量固定且无法动态改变;ArrayList:容量可动态增长;但牺牲效率;建议:首先使用数组,无法确定数组大小时才使用ArrayList!1.效率
2013-07-14 20:08:45
998
原创 Alibaba_equals与==的区别
1、==双等号==比较的是两个对象在内存中的地址是否一致。比如String s1 = "GoodNite";String s2 = s1;根据Java新建对象的原则,则s1 == s2返回true;而如果String s1 = "GoodNite";String s2 = new String("GoodNite");那么s1 == s2则返回false。2、equ
2013-06-23 20:31:55
595
原创 Alibaba_equals与hashCode的关系
1、equals()与hashCode()的关系1)哈希算法:简单地说哈希算法就是经过一系列的运算,将任意字符串A计算成字符串B或者是数字B,通常来说从A能够生成B而从B则无法通过反计算生成A。该算法常常用于加密,常见的哈希算法实现有MD5、SHA1等2)hashCode()方法的定义,在Java API文档中,hashCode()方法定义于java.lang.Object类中,publi
2013-06-23 19:55:44
808
原创 <未完>再次研究指针和引用
#include using namespace std;class apple{public: int id;public: apple(int id){ this->id = id; } void operator=(apple tmp){ this->id = tmp.id; }};void f1(apple* app){ app = new app
2013-06-20 22:08:21
682
原创 <Java编程思想>持有对象(笔记)
持有对象,我们可以简单地理解为C++的数据结构,也可以简单地理解为数据的容器。比如List/Map/Set。1、论泛型的重要性。课本的简单例子是:import java.util.ArrayList;class Apple{}class Orange{}public class Generics { @SuppressWarnings("unchecked") pub
2013-06-19 23:59:22
1340
原创 <Java编程思想> 初始化与清理
1、静态初始化只有在必要的时刻才会进行。静态初始化比如:static的变量成员,或者是一段跟在static关键字后面的代码。public class Spoon{ static int i; static{ i = 47; }}这两种情况仅仅执行一次:当首次生成这个类的一个对象时,或者首次访问属于那个类的静态数据成员时(即使从未生成过那个类的对象)。2、数组初始化
2013-06-18 22:51:55
869
原创 数据库根据一个表确定另一个表
原先的题目大概是说有一个表要我们变成另一个表表一是id 和score表二是id 和score和state如果分数高于60分则state为pass否则为fail由于题目不限方法,一开始我用的是Java的JDBC方法。后来觉得应该用SQL语言实现首先是根据table1创建一个table2mysql> create table table2( -> id int(4
2013-06-18 10:50:26
960
spring3.0所有jar包
2013-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人