面试题解析
文章平均质量分 79
自己在面试中遇到的,将来可能遇到的问题解析
github_38838414
这个作者很懒,什么都没留下…
展开
-
一致性哈希算法
参考: 什么是一致性Hash算法 几种经典的hash算法和一般的取模,分段方法相比一致性hash的优势传统的取模方式例如10条数据,3个节点,如果按照取模的方式,那就是node a: 0,3,6,9node b: 1,4,7node c: 2,5,8当增加一个节点的时候,数据分布就变更为node a:0,4,8node b:1,5,9node c: ...原创 2018-08-10 09:13:30 · 671 阅读 · 0 评论 -
深入理解 Java 序列化
什么是序列化 Java是面向对象的编程语言,有时需要保存对象,并在下次使用时可以顺利还原该对象。由于这种需求很常见,所以Java API对此提供了支持,添加相关程序代码到标准类库中,并将保存和还原的过程称之为“对象序列化”。序列化的用途 序列化主要有三个用途:1.对象持久化(persistence) 对象持久化是指延长对象的存在时间。通常状况下,当程序结束时,程序中的对...原创 2018-07-23 17:48:53 · 777 阅读 · 0 评论 -
Java 线程池
package ThreadPool;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;/** * 线程池 */public class ThreadPool{ ...原创 2018-07-19 11:39:08 · 298 阅读 · 0 评论 -
深入分析Java synchronized的实现原理(mark)
记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道synchronized是一个重量级锁,相对于Lock,它会显得...转载 2018-07-19 09:58:38 · 327 阅读 · 0 评论 -
HttpClient引起的java.net.BindException: Address already in use: connect问题
最近利用httpclient写爬虫时遇到java.net.BindException: Address already in use: connect仔细检查后发现,自己在利用httpclient的一个静态方法中直接new new HttpClient();并在使用完毕后关闭 这就导致每发出一个http请求都会新建一个httpclient,占用一个端口,在多线程中高速重复调用该方法,就会导...原创 2018-07-18 16:14:27 · 8148 阅读 · 0 评论 -
生产者,消费者问题Java实现
利用BlockingQueue实现生产者消费者问题消费者package thread;import java.util.concurrent.BlockingQueue;public class Consumer implements Runnable{ BlockingQueue<String> queue; public Consumer(B...原创 2018-07-14 15:23:16 · 417 阅读 · 0 评论 -
数据库连接开销在哪?
最近面腾讯-阅文时遇到这样一个问题…… Q:为什么要用数据库连接池? A:因为新建一个和数据库的连接的开销很大。 Q:那为什么连接的开销很大呢?或者是说,新建数据库连接的开销主要在那些方面呢? A:emmm…….书上这么说(我去去去去去。。。。。完全没想到过这个问题啊。。。) Q:你可以从内存,系统调用,socket连接考虑 A:(Orz……当时只想到了系统调用的开销) ………....原创 2018-06-22 21:37:02 · 1840 阅读 · 0 评论 -
Java 各种溢出测试
Java 各种溢出测试前置知识点:Java内存组成 注意上图:蓝色为所有线程共享的数据区,紫色为线程的私有区。1)程序计数器:在计算机组成结构这门课里面,我们就学到CPU里面有个PC寄存器,这个寄存器主要指CPU当前运行的指令。 在这里,其实也是一样的,对于每一个线程,都有一个PCR,用来记录程序在当前线程执行的位置。当线程阻塞后然后再重新运行,就可以在PC记录的位...原创 2018-06-15 18:01:24 · 1453 阅读 · 0 评论 -
深入理解Arrays.sort()
深入理解Java 中的Arrays.sort()方法Java的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,非常的好用。但是sort()的参数有好几种,基本上是大同小异,下面是以int型数组为例的Arrays.sort()的典型用法import java.util.Arrays;import java.util.Comparato...原创 2018-06-10 16:37:14 · 62296 阅读 · 8 评论 -
Java 深入理解hashcode()方法——Boolean
Java 深入理解hashcode()方法——Boolean环境:jdk1.8 public static void main(String []args) { Boolean b2=true; Boolean b3=false; System.out.println("ture的hash值:"+b2.hashCode()...原创 2018-05-29 22:10:00 · 2040 阅读 · 0 评论 -
布隆过滤器(Java实现)
布隆过滤器布隆过滤器是可以用于判断一个元素是不是在一个集合里,并且相比于其它的数据结构,布隆过滤器在空间和时间方面都有巨大的优势。 优点:占用空间小,查询快 缺点:有误判,删除困难具体原理:链接简单易懂的描述: 布隆过滤器。其实现方法就是:利用内存中一个长度为M的位数组B并初始化里面的所有位都为0,如下面的表格所示:0 0 0 0 0 0 0 0 ...原创 2018-05-02 13:53:02 · 883 阅读 · 0 评论