Billy's Blog

欢迎访问我的博客

质数因子的求解

质因子(或质因数)在数论里是指能整除给定正整数的质数。根据算术基本定理,不考虑排列顺序的情况 下,每个正整数都能够以唯一的方式表示成它的质因数的乘积。下面求解某一个数的质因子的情况。 1. 分解为判断质数和求解因子 // 判断一个数是否为素数 private boolean isP...

2018-08-23 21:51:46

阅读数:622

评论数:0

排序算法之基数排序

基于排序是一种很特别的排序方法,它采用多关键字排序思想(即基于关键字各位的大小进行排序),借助 “分配”和“收集”两种操作对单逻辑关键字进行排序。基数排序又分为最高位优先(MSD)和最低位优先(LSD) 排序。 基数排序:  public void sort(int[] array...

2018-08-23 20:15:35

阅读数:607

评论数:0

排序算法之归并排序

“归并”是将两个或两个以上的有序表组合成一个新的有序表。假定待排序表含有n个记录,则可以看成是n个 有序的子表,每个子表的长度为1,然后两两归并,得到n/2个长度为12或1的有序表;再两两归并,...如此重复, 直到合并成一个长度为n的有序表为止。这种排序方法称为2-路归并排序。 归并排...

2018-08-23 20:02:27

阅读数:624

评论数:0

排序算法之选择排序

选择排序的基本思想是:每一趟在后面n-i+1个待排序的元素中选取关键字最小的元素,作为有序子序列的第i 个元素,直到第n-1趟做完,待排序元素,只剩下一个,就不用再选择了。以简单选择排序和堆排序为例。  简单选择排序: public static int[] selectSort(i...

2018-08-23 19:18:13

阅读数:623

评论数:0

排序算法之交换排序

交换,就是根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。,基于交换的排序 算法有很多。以冒泡排序和快速排序举例。 冒泡排序:  public static int[] bubbleSort(int[] array) { int[] newArray = Ar...

2018-08-23 17:49:48

阅读数:622

评论数:0

java的服务是每收到一个请求就新开一个线程来处理吗?tomcat呢?

据说服务有两种: 收到一个请求就处理,这个时候就不能处理新的请求,这种为阻塞收到一个请求就新开一个线程去处理任务,主线程返回,继续处理下一个任务,这种为...

2018-08-23 10:38:34

阅读数:616

评论数:0

Java实现同步的几种方式

转自 http://fangjian0423.github.io/2016/04/18/java-synchronize-way/ Java提供了很多同步操作,比如...

2018-08-21 10:18:52

阅读数:617

评论数:0

Java transient关键字讲解

    Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。...

2018-08-20 17:34:02

阅读数:589

评论数:0

JAVA中ListIterator和Iterator详解

在使用Java集合的时候,都需要使用Iterator。但是java集合中还有一个迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的时候可以使用。这两种迭代器有什么区别呢?下面我们详细分析。这里有一点需要明确的时候,迭代器指向的位置是元素之前的位...

2018-08-20 13:01:09

阅读数:602

评论数:0

关于迭代器在集合遍历中发生的并发修改异常

原因:迭代器是依赖于集合的,相当于集合的一个副本. 当迭代器操作的时候,如果发现和集合不一样,则抛出异常(并发修改异常) Exception in thread “main” java.util.Con...

2018-08-20 12:51:22

阅读数:605

评论数:0

RandomAccess接口理解

根据javadoc上面的的解释是: RandomAccess 是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的list中表现的更加高效。 我们可以简单...

2018-08-20 12:35:31

阅读数:590

评论数:0

Java Collections.synchronizedMap方法分析

synchronizedMap()返回由指定映射支持的同步(线程安全的)映射。实际上该方法只是一个工具方法, 将传入Map的实现方法加一个同步(synchronized)锁代理,内部还是调用实现的对应方法. //Collections.synchronize...

2018-08-20 12:24:25

阅读数:623

评论数:0

Java中的字符串连接符(+)

在Java中字符串是一个常用的东西,而其一个常用的操作是字符串的拼接,Java对此提供了一种非常直观的操作方式——即 + 操作符。 String str0 = "a"; String str1...

2018-08-20 12:02:54

阅读数:821

评论数:0

HashMap到底是插入链表头部还是尾部

分析源码 分析链表插入的位置,重点是分析HashMap的put方法。 jdk1.6 put方法的代码如下: public V put(K key, V value) { if (key == null) return putForNullKey(value)...

2018-08-15 11:06:48

阅读数:1030

评论数:0

死锁

死锁概念及产生原理    概念:多个并发进程因争夺系统资源而产生相互等待的现象。&am...

2018-08-14 12:51:55

阅读数:587

评论数:0

UML类图及依赖,泛化,关联,聚合,组合,实现

UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 原文链接:https://www.cnblogs.com/LUO77/p/5785374.html 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统...

2018-08-14 12:40:38

阅读数:589

评论数:0

410. Split Array Largest Sum

 题目给的例子中,output为18,假如结果是17,那么对于nums数组分析得到的m的值必定是大于2的。 此时分成的数组是[7,2,5],[10], [8]。 也就是说output和m之间是负相关的。 public boolean guess(long mid, int[] n...

2018-08-11 22:10:43

阅读数:566

评论数:0

二分法解题思路

二分法的精髓:函数的单调性 +  计算内容重复 (注意:不同于分治) 根据区间范围,猜测答案的结果。  1. Sqrt(x)求平方根 public int mySqrt(int y) { int left = 0; int right = y; long mid = 0...

2018-08-11 21:25:25

阅读数:621

评论数:1

java静态代理与动态代理简单分析

转载自http://www.cnblogs.com/V1haoge/p/5860749.html 1、动态代理(Dynamic Proxy)   代理分为静态代理和动态代理,静态代理是在编译时就将接口、实现类、代理类一股脑儿全部手动完成,但如果我们需要很多的代理,每一个都这么手动的去创建实属...

2018-08-11 14:31:18

阅读数:586

评论数:0

RandomAccess接口理解

根据javadoc上面的的解释是: RandomAccess 是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的list中表现的更加高效。 我们可以简单的看下Collections下的binarySearch方法的源码: public...

2018-08-10 10:46:59

阅读数:552

评论数:0

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