`
技术无涯苦作舟
  • 浏览: 12189 次
社区版块
存档分类
最新评论
文章列表
冒泡排序 冒泡排序在排序算法中比较简单,但是可以帮助我们理解不变性。不变性是指在算法中,某些条件在算法执行时是不变的,始终为真。 /** * 其不变性体现在out右边的数据项始终是有序的, 在整个过程中,该条件始终为真. * 最开始的时候out右边没有数据项. */ public void bubbleSort() { int out, in; for (out = nElements - 1; out >= 1; out--) { //外循环, 从后向前 for (in = 0; in &l ...
二分查找 简述: 二分查找主要用于在有序数组中查找某个数据项,具有查找速度快的优点,其算法所花时间与数据项的个数的比可用大O表示为O(logN)来表示。数据项的个数越多,越能反应出其优点。 循环 Code: Long[] array; //表示一个Long型的数组引用, 需要初始化 int nElements; //表示数组中数据项的个数, 需要初始化 int compareTimes = 0; //定义比较次数 public int find(long searchKey) { int lowerBound = 0; ...
Java并发编程实战纠错与部分翻译优化 版本号:2017年5月第一版第18次印刷。 读Java并发编程实战的时候,发现有些翻译方面的错误,包括理解错误,印刷错误。在参考英文版以及反复理解后,在这里记录下我认为有错和可以优化 ...

Java位运算符

处理整型类型(byte, short, int, long)时,可用位运算符对整型数值的各个位进行操作。看看以下的位运算符: 1. &("and") 与运算 int a = 0b1000; //0b1000是8的二进制表示 int b = 0b1011; //0b1011是11的二进制表示 int c = a & b; //对a和b做与位运算 System.out.println(c);//得到结果c为8,即0b1000 具体运算逻辑如下:只有两个操作数对应的位都为1的时候,&运算结果才为1,否则为0. a   0b1000 b   0 ...
Java中的两种浮点类型: float和double 浮点数值不适用于无法接受舍入误差的计算中。舍入误差的主要原因在于浮点数值采用二进制系统表示,而二进制系统中无法精确地表示分数1/10,这就像十进制无法精确的表示分数1/3一样。 所以如果数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。 二进制系统中无法精确地表示分数1/10何解? 1/10换算成二进制为1/1010,结果无限循环的小数,所以二进制无法用有限的位数来表示0.1. 二进制能用有限的位数表示的一些数,比如0.5, 0.25等。 0.5, 0.25换算成二进制为101/1010,11001/1100100,所以 ...
在使用unitils集成dbunit与MySQL做单元测试的时候总是出现NoSuchColumnException,导致测试无法完成。具体错误信息如下: org.unitils.core.UnitilsException: Error inserting test data from DbUnit dataset for method public void com.smart.dao.UserDaoTest.findUserByUserName() at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java: ...
为了方便REST开发,Spring引入了@RestController注解,该注解已经标注了@ResponseBody和@Controller,源码如下: @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller @ResponseBody public @interface RestController { String value() default ""; } 最近遇见个问题,使用@RestController注解控制器 ...
使用getHibernateTemplate().iterate().next()的时候报如下错误(只留下了错误的主体部分): ERROR: Operation not allowed after ResultSet closed Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not get next iterator result Caused by: java.sql.SQLException: Operation not allowed after R ...
数据连接泄露是个很头疼的问题,框架Spring也提供了很多种办法来避免这个问题,比如使用Template,当然其背后是DataSourceUtils.这里还有另外一种办法,使用TransactionAwareDataSourceProxy.通过TransactionAwareDataSourceProxy对数据源进行代理后,数据源对象就有了事务上下文感知的能力了。看源码会发现,其实它还是使用的DataSourceUtils. 哈哈,是不是觉得其实是在围着一个原点打转? 这里只取一部分TransactionAwareDataSourceProxy源码来看看,如下。看到这里明白了吧。 Conn ...
最近重温了下JDK动态代理,JDK1.8里的底层实现有了些变化,这里记录下看到的东西。 大家都知道,JDK动态代理只能为接口创建代理实例,所以CGLib就自然而然的有了用武之地。至于为什么JDK只能为接口创建代理实例,后面在说。要用到JDK动态代理,那InvocationHandler和Proxy这对神雕侠侣肯定是要到场的。 先写一个简单的JDK动态代理例子。 1. 一个UserService接口: public interface UserService { void service(); } 2. 一个UserService接口的实现类UserServiceImpl ...
这是开通这个ID后写的第一篇文章,所以絮叨下。最近在看Spring4.X的内容,期间遇到许多问题,还好相继都解决了。原本想把这些问题都记录到博客上,只是苦于生活中的责任,未能抽出时间完成,其实这也是给自己找理由,以后还是尽力多写写博文,也算是对自己的一种交代。不废话了,开干吧。 首先搞清楚BeanFactory和FactoryBean的区别:因为这俩长得有点像,所以说拉出来一起看看。 BeanFactory是一个类工厂,也叫SpringIOC容器,就是用来管理Bean的,也就是管理Java对象。它是Spring的基础设施,面向Spring本身,与之对应的有个Spring容器,较Applica ...
Global site tag (gtag.js) - Google Analytics