Java并发-CopyOnWriteArrayList类

CopyOnWriteArrayList类 java.util.concurrent并发包里的CopyOnWriteArrayList工具类。当有多个线程可能同时遍历、修改某个公共数组时候,如果不希望因使用synchronize关键字锁住整个数组而影响性能,可以考虑使用CopyOnWriteArrayList。 如果简单的使用读写锁的话,在写锁被获取之后,读写线程被阻塞,只有当写锁被释放后读线程才 … 继续阅读

分页优化

优化分页limit 通常我们在分页的时候,通常使用的是limit 50, 10这种语句。数据少还不错,但是当数据偏移量非常大的时候,性能就会出现问题,例如select xx,xxx from test_table limit 100000020, 20。扫描了100000020条数据,才返回20条数据。 这个时候我们可以用一下两种方式来优化: 利用between and和主键索引 利用主键自增id … 继续阅读

Java三种代理模式

Java三种代理模式 静态代理、动态代理和cglib代理 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 静态代理 这种代理 … 继续阅读

crontab命令以及定时任务表达式

整理了一下crontab的定时表达式 crontab命令 Linux crontab是用来定期执行程序的命令。 当安装完成操作系统之后,默认便会启动此任务调度命令。 crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 语法 crontab [ -u user ] file 或 crontab [ -u user ] { -l | -r | -e } 参数说明 … 继续阅读

实现简单的集合Set

集合 Set:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素。 用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。 特点 Java的Set接口继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两种实现。 在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。 T … 继续阅读