基础知识
江楼月lbc
这个作者很懒,什么都没留下…
展开
-
什么是线程安全
线程安全我个人的理解就是,多个线程运行某段代码的结果和单个线程运行的结果一致,就可以认为是线程安全的。那么是什么引起的线程不安全的?我认为大部分原因是全局变量和静态变量导致的。总而言之,线程就是在争资源,有冲突就是不安全的,没有冲突就是安全的。比如,多个线程的功能都是读取一个数,那肯定不会冲突;如有有人是写这个数,那就会有冲突。...原创 2018-04-02 21:23:45 · 94 阅读 · 0 评论 -
快速排序及其优化
1、快速排序的基本思想: 快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。原始快排代码如下。package suanfa; import java.util.Arrays; import java.util.Scanner;import java.util.concu...原创 2018-04-24 15:54:03 · 131 阅读 · 0 评论 -
归并排序
归并排序就是先递归分治,再进行合并排序,因为合并,所以需要一个辅助数组,空间复杂度为O(n);因为每个数和其他数比较log(n)次。所以时间为nlog(n)。应用的算法题比如 求逆序对。package suanfa; import java.util.Arrays; import java.util.Scanner;import java.util.concurrent.CountDown...原创 2018-04-24 16:56:54 · 180 阅读 · 0 评论 -
基数排序详解以及java实现
基数排序详解以及java实现这篇讲的很清楚,附上本人自己写的代码,将空间位n*10减为了n;package suanfa; import java.util.Arrays; import java.util.Scanner;import java.util.concurrent.CountDownLatch; public class Main { public static vo...原创 2018-04-25 15:21:05 · 229 阅读 · 0 评论 -
为什么switch...case语句比if...else执行效率高
为什么switch...case语句比if...else执行效率高简言之,编译的时候创建了一个map存于.rodata区中,运行的时候直接根据输入(c的值)查表,找到对应的IP后直接跳转。 (省去了cmp, jmp -> cmp, jmp -> cmp, jmp...这一冗长的计算过程。) 总结: switch...case...执行效率高,属于典型的以空间换时间。也就是说,(套用算法...转载 2018-05-03 11:34:33 · 801 阅读 · 0 评论 -
网宿面试——有10T的IP地址数据,内存只有10M,怎么找出出现频率最大的那个IP
这种大数据的的题肯定是要分堆来做,再从堆中选出每个堆中最大的数,然后进行比较。1,首先就是如何进行分堆的问题,这边我们使用hash来分成n个10M的小文件,10T除以10M约等于1000000,所以使用hash(IP)%1000000,来分堆。2,从每个堆中选取出现次数最多的IP;3,从这100000个IP中选择出现最多的IP即可。...原创 2018-05-16 17:58:16 · 2061 阅读 · 1 评论 -
switch 语句能否作用在 byte 上,能否作用在 long 上,能 否作用在 String 上?
switch只能时int 或这能转化为int型的byte,short,char,jdk1.7之后String也可以。 在 switch( expr1)中, expr1 只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是 int 基本类型或 Integer 包装类型,由于, byte,short,char 都可以隐含转换为 int,所以,这些类型以及这些类型 的包装类...原创 2018-07-21 16:30:32 · 4819 阅读 · 0 评论