会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Leon
什么都不能舍弃的人,什么也改变不了
博客园
首页
新随笔
联系
管理
订阅
上一页
1
···
3
4
5
6
7
8
9
10
11
···
15
下一页
2017年9月19日
【Spring】27、JPA 实现乐观锁@Version注解的使用
摘要: 持久层使用jpa时,默认提供了一个注解@Version来实现乐观锁 简单来说就是用一个version字段来充当乐观锁的作用。先来设计实体类 Dao层 Controller层充当单元测试的作用,通过访问一个requestMapping来触发我们想要测试的方法。 这里面三个方法,主要是我们想用来测试的三
阅读全文
posted @ 2017-09-19 11:41 leon66666
阅读(7809)
评论(0)
推荐(0)
2017年9月18日
【Java深入研究】7、ThreadLocal详解
摘要: ThreadLocal翻译成中文比较准确的叫法应该是:线程局部变量。 这个玩意有什么用处,或者说为什么要有这么一个东东?先解释一下,在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,显然是不行的,并且我们也知道volatile这个关键字也是不能保证线程安全的。
阅读全文
posted @ 2017-09-18 17:38 leon66666
阅读(439)
评论(0)
推荐(0)
【Spring】26、利用Spring的AbstractRoutingDataSource解决多数据源,读写分离问题
摘要: 多数据源问题很常见,例如读写分离数据库配置。 1、首先配置多个datasource 2、写一个DynamicDataSource类继承AbstractRoutingDataSource,并实现determineCurrentLookupKey方法 3、利用ThreadLocal解决线程安全问题 4、
阅读全文
posted @ 2017-09-18 11:15 leon66666
阅读(1961)
评论(0)
推荐(0)
2017年9月15日
【Spring】25、Spring代理。 BeanNameAutoProxyCreator 与 ProxyFactoryBean
摘要: 一般我们可以使用ProxyBeanFactory,并配置proxyInterfaces,target和interceptorNames实现,但如果需要代理的bean很多,无疑会对spring配置文件的编写带来繁重的工作,这时就该BeanNameAutoProxyCreator出场了。 (一)Prox
阅读全文
posted @ 2017-09-15 18:03 leon66666
阅读(428)
评论(0)
推荐(0)
2017年8月30日
【算法】5、算法资料汇总
摘要: 七大查找算法 史上最简单清晰的红黑树讲解 简单清晰的B树、Trie树详解
阅读全文
posted @ 2017-08-30 10:58 leon66666
阅读(227)
评论(0)
推荐(0)
2017年8月28日
【Java POI】1、Java POI的使用
摘要: 很多时候,一个软件应用程序需要生成Microsoft Excel文件格式的报告。有时,一个应用程序甚至希望将Excel文件作为输入数据。例如,一个公司开发的应用程序将财务部门需要所有输出生成自己的Excel。 任何Java程序员愿意将MS Office文件的输出,可以使用预定义和只读API来做到。
阅读全文
posted @ 2017-08-28 16:32 leon66666
阅读(18256)
评论(2)
推荐(2)
2017年8月17日
【算法】4、稳定排序和不稳定排序
摘要: 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。 其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一
阅读全文
posted @ 2017-08-17 10:52 leon66666
阅读(436)
评论(0)
推荐(0)
【算法】3、堆排序
摘要: 堆排序是一种选择排序,其时间复杂度为O(nlogn)。 堆的定义 n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。 情形1:ki <= k2i 且ki <= k2i+1 (最小化堆或小顶堆) 情形2:ki >= k2i 且ki >= k2i+1 (最大化堆或大顶堆) 其中
阅读全文
posted @ 2017-08-17 10:28 leon66666
阅读(439)
评论(0)
推荐(0)
2017年8月15日
【算法】2、主宰这个世界的10大算法
摘要: 什么是算法? 简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。(来源:homas H. Cormen, Chales E. Leiserson 《算法导论第3版》) 可以这样理解,算法是用来解决特定问题的一系列步骤(不仅计算机需要算法,我们在日常生活中也在使用
阅读全文
posted @ 2017-08-15 11:20 leon66666
阅读(344)
评论(0)
推荐(0)
2017年8月4日
【Spring】24、<load-on-startup>0</load-on-startup>配置
摘要: load-on-startup标记容器是否在启动的时候实例化并调用其init()方法的优先级。 它的值表示servlet应该被载入的顺序 当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet; 如果值小于0或未指定时,则表示只有在第一次请求的容器才在该servlet调用初始化函
阅读全文
posted @ 2017-08-04 10:23 leon66666
阅读(1702)
评论(0)
推荐(0)
2017年8月3日
【Java基础】11、java方法中只有值传递,没有引用传递
摘要: + View code good wbc 首先要明白的java的方法传递的究竟是什么? 对于基本类型,传递的是基本类型的值,而对于引用类型传递的是地址。 所以无论是什么,传递的都是值,因为你可以把地址理解成9x0000这种,也是一个值。 所以传递的都是值。 那么方法中什么时候会改变原来的值,什么时候
阅读全文
posted @ 2017-08-03 21:03 leon66666
阅读(362)
评论(0)
推荐(0)
【Java基础】12、java中方法的参数传递机制
摘要: 问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中
阅读全文
posted @ 2017-08-03 21:03 leon66666
阅读(372)
评论(0)
推荐(0)
【Java基础】10、Java中throw和throws的区别
摘要: 系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行。 语句抛出的异常 用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异
阅读全文
posted @ 2017-08-03 21:02 leon66666
阅读(642)
评论(1)
推荐(0)
【Java基础】9、Enumeration接口和Iterator接口的区别
摘要: package java.util; public interface Enumeration<E> { boolean hasMoreElements(); E nextElement(); } public interface Iterator<E> { boolean hasNext(); E
阅读全文
posted @ 2017-08-03 21:01 leon66666
阅读(792)
评论(0)
推荐(1)
【Java基础】3、Java 位运算(移位、位与、或、异或、非)
摘要: public class Test { public static void main(String[] args) { // 1、左移( > ) 高位补符号位 // 0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0: // 0000 0000 0000 0000 0000 0000 0...
阅读全文
posted @ 2017-08-03 20:59 leon66666
阅读(535)
评论(0)
推荐(0)
【Java基础】4、java中的内部类
摘要: 内部类的分类:常规内部类、静态内部类、私有内部类、局部内部类、匿名内部类。 实例1:常规内部类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 //外部类 class Out { private int age = 12;
阅读全文
posted @ 2017-08-03 20:59 leon66666
阅读(433)
评论(0)
推荐(0)
【高并发解决方案】6、数据库水平切分的实现原理解析
摘要: 第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。 水平切分数据库:可以降
阅读全文
posted @ 2017-08-03 20:55 leon66666
阅读(1097)
评论(0)
推荐(0)
【Java深入研究】6、CGLib动态代理机制详解
摘要: 一、首先说一下JDK中的动态代理: JDK中的动态代理是通过反射类Proxy以及InvocationHandler回调接口实现的 但是,JDK中所要进行动态代理的类必须要实现一个接口,也就是说只能对该类所实现接口中定义的方法进行代理,这在实际编程中具有一定的局限性,而且使用反射的效率也并不是很高。
阅读全文
posted @ 2017-08-03 20:50 leon66666
阅读(696)
评论(0)
推荐(0)
【Java深入研究】4、fail-fast机制
摘要: 在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提
阅读全文
posted @ 2017-08-03 20:48 leon66666
阅读(466)
评论(0)
推荐(1)
【Java深入研究】2、JDK 1.8 LinkedList源码解析
摘要: LinkedList是一个实现了List接口和Deque接口的双端链表。 有关索引的操作可能从链表头开始遍历到链表尾部,也可能从尾部遍历到链表头部,这取决于看索引更靠近哪一端。 LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以使用如下方式: List list=C
阅读全文
posted @ 2017-08-03 20:47 leon66666
阅读(597)
评论(0)
推荐(0)
上一页
1
···
3
4
5
6
7
8
9
10
11
···
15
下一页
公告