自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

原创 SQL优化思路

查询优化:避免全表扫描避免通配符紧随like出现,如LIKE ‘%ABC’避免在WHERE子句中使用IS NULL避免使用不等于:!= , <>避免使用OR, 尽量使用UNION ALL尽量用EXIST子查询代替IN子程序避免只给出复合索引中的其中一个字段避免WHERE 1=1这样的写法避免在WHERE子句中对字段进行表达式操作,如WHERE num/2=100避免...

2019-07-17 15:50:23 190

原创 理解ThreadLocal

1 TreadLocal的作用是什么?并发问题的实质是多个线程想要写同一个变量,那么如果给多个线程创建不同的变量,这个问题就解决了。类似局部变量的思路,所以叫线程局部变量。比如用户访问网站,每个用户一个userid,那么各个线程用自己的userid,互不影响。2 使用TreadLocal和直接使用局部变量,有什么不同?threadlocal 提供了和线程操作相关的代理接口3 Tread...

2019-07-17 12:25:04 110

原创 java并发包Executors中的4种线程池

Executors类中,提供可创建的四种大类的线程池1. newCachedThreadPool一句话说清:动态创建线程和移除60s不用的老线程。适合的场景:拥有大量执行时间短的异步任务。/** * Creates a thread pool that creates new threads as needed, but * will reuse previously ...

2019-07-16 15:40:07 354

原创 java各种锁

1. synchronized和reentrantlock的区别,ReentrantLock的可重入的含义是什么sync是悲观锁,认为并发写多读少,不给别人资源lock是乐观锁,认为并发读多写少,给别人读sync是非公平性锁,可能存在等待时间最长的线程却一直无法获取资源的情况lock是公平锁,先到先得lock是再入锁,就是说当线程试图获取锁时,发现锁已被人持有了,而持有的人正是他自己,那...

2019-07-16 14:25:45 138

原创 详细注释------二分查找简单版(循环和递归)

二分查找二分查找是对有序的数组进行高效查找的算法。一般是数组,因为支持随机访问,如果是用链表,那么就使用跳表结构,即在链表中加多级索引达到二分查找的结构下面分别用循环和递归实现简单的二分查找,也就是没有重复数据的二分查找。虽然简单,但是还有有几个小坑的。递归算法private static int binarySearch(int[] a, int start, int end, int ...

2019-07-02 16:22:19 186

原创 详细注释------快速排序(简单版)

简单的快排和归并排序一样,快排的重点在于分区点。先解释一个最简单的快排public int partition(int[] arr, int start, int end) {//1. 找pivot的过程完成了一轮排序//2. 返回分区点,此时数组中:分区点左边的元素<分区点<分区点右边的元素 int r = arr[end];//将最后一个元素作为分区点 //i是分区点...

2019-06-28 16:49:31 145

原创 详细注释------带哨兵的归并排序merge函数

##归并排序####归并排序和快排都是递归算法,但是难点不在递归,而在merge合并函数和partition分区函数。所以就只分析merge函数就可以了。用哨兵比不用哨兵的代码简洁而且更好理解,所以就不解释不带哨兵的合并函数了。//带哨兵的归并public void mergeWithSentinal(int[] arr, int left, int mid, int right) { ...

2019-06-28 15:55:55 1271 5

原创 详细注释------插入排序

三口一头猪插入排序插入排序//外层循环控制排序的趟数,只是有的趟时不需要移动数据的。for(int i = 1; i < arr.length ; i++) {//i从1开始时认为arr[0]是有序的 //arr[i]是无序区间的起点,小于i的部分认为是有序的(i的作用是 : 1.区分有序区间和无序区间,2.控制循环趟数) int value = arr[i]; int j=...

2019-06-28 15:50:01 158

matlab随机共振程序

双稳态随机共振的仿真程序,可以画出时域和频域图。

2010-04-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除