网易java面经攻克(一面)
Peng's Blog 只记录和技术相关的东西

网易java面经攻克(一面)


Hashtable与HashMap的区别:

如果是我来回答,这题的关键点在于线程安全:
HashTable是线程安全的集合,HashMap不是线程安全的集合。
标准点具体点的答案:
1.HashMap几乎可以等价于Hashtable,除了HashMap是非线程安全的,并且可以接收null的key和value,而Hashtable不行.
2.HashMap是非synchronized,而Hashtable是synchronized的,这意味着,Hashtable是线程安全的,多个线程可以共享一个Hashtable。而如果没有正确的同步的话,多个线程是不能共享HashMap的。Java5提供了CurrentHashMap,它是Hashtable的替代,比Hashtable的扩展性好。
3.正因为Hashtable是线程安全的,所以在单线程环境下它比HashMap要慢很多,所以单线程最好还是使用HashMap。
4.HashMap不能保证随着时间的推移Map中的元素次序是不变的。

数据库事务的acid

A: 原子性 Atomic
  是指事务是执行的最小单位,不能分割,事务里面的语句要么都执行,要么都不执行。
C:一致性 Consistency
  是指事务完成时,数据必须处于一致的状态,数据的完整性约束没有被破坏。
I:隔离性 Isolation
  是指并发的事务之间互相隔离,互不干扰。
D:持久性 Durability
 事务一旦被提交,那么对数据库中数据的改变就是永久的了。
ACID Atomic Consistency Isolation Durability

用过多线程吗?介绍一下线程池

先讲讲为什么有线程池的存在吧,每次使用到多线程的时候都要去创建一个线程,那么编程将变得十分麻烦。使用线程池能极大的提高编程效率以及提高服务器的使用性能。

线程池的四个基本组成部分:

1.线程池管理器:用于创建并管理线程池
2.工作线程:线程池中线程,在没有任务时处于等待状态,可以循环的执行任务;
3.任务接口:每个任务必须实现的接口,以供工作线程调度任务的执行,它主要规定了任务的入口,任务执行完后的收尾工作、任务的执行状态等;
4.任务队列:用于存放没有处理的任务。提供一种缓存机制。

Spring框架了解多少?IOC、AOP

暂时,会用。
IOC的话,

介绍Hadoop

Hadoop是一个由Apache基金会开发的 分布式系统基础架构
主要用作跟大数据有关的东西。
发音是 [hædu:p]。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
hadoop实现了一个分布式文件系统,简称HDFS,具有较高的容错性。
hadoop框架最核心的设计就是:HDFS和MapReduce,HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。

hash冲突的四种解决办法

开放地址法

又叫再散列法,基本思想是当关键字key的哈希地址发生冲突的时候,产生另外一个哈希地址,如何仍然冲突,那么就继续产生,知道找到一个不冲突的哈希地址。

链地址法

基本思想:将所有的哈希地址为i的元素构成一个称为同义词链的单链表,并将单链表的头指针存在哈希表的第i个单元中,因而查找、插入和删除主要在同义词链中进行。 适用于经常进行插入和删除的情况。

公共溢出区法

基本思想:将哈希表分为基本表溢出表两个部分,凡是和基本表发生冲突的元素,一律填入溢出表

再哈希法

基本思想:同时构造多个不同的哈希函数


上一篇 快速排序

Comments

评论功能暂停使用,如需跟作者讨论请联系底部的GitHub