您的位置:首页 > 职场人生

高级Java开发工程师面试题汇总

2016-12-08 13:47 519 查看
1.aop 的实现原理。
2.redis的序列化方式。
3.concurrenthashmap 的实现原理。HashMap 的默认容量是多少,concurrenthashmap 与hashtable 的区别是什么?
4.nginx 的方向代理实现方式。
5。生产消费模式。
6。resource service 的区别。
7.wait sleep 的区别 yield
sleep和wait的区别有:
  1,这两个方法来自不同的类分别是Thread和Object
  2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
  3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在
    任何地方使用
   synchronized(x){
      x.notify()
     //或者wait()
   }
   4,sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常
8。dubbo 的想通讯机制 是什么

用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最的值。volatile很容易被误用,用来进行原子性操作。

ali:

9.hashmap 的实现原理。

上面程序中使用的 table 其实就是一个普通数组,每个数组都有一个固定的长度,这个数组的长度就是 HashMap 的容量。HashMap 包含如下几个构造器: 

    * HashMap():构建一个初始容量为 16,负载因子为 0.75 的 HashMap。 
    * HashMap(int initialCapacity):构建一个初始容量为 initialCapacity,负载因子为 0.75 的 HashMap。 
    * HashMap(int initialCapacity, float loadFactor):以指定初始容量、指定的负载因子创建一个 HashMap。 
HashMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置。 

当程序执行 map.put("语文" , 80.0); 时,系统将调用"语文"的 hashCode() 方法得到其 hashCode 值——每个 Java 对象都有 hashCode() 方法,都可通过该方法获得它的 hashCode
值。得到这个对象的 hashCode 值之后,系统会根据该 hashCode 值来决定该元素的存储位置

10.线程池的内部机制。
11.反射机制的使用场景。
 Java反射机制主要提供了以下功能: 

在运行时判断任意一个对象所属的类;

在运行时构造任意一个类的对象;

在运行时判断任意一个类所具有的成员变量和方法;

在运行时调用任意一个对象的方法;

生成动态代理。

12.CyclicBarrier也使用一个整形参数进行初始化,这个参数是需要再某点同步的线程数。当线程调用await()方法后CyclicBarrier类将把这个线程编为WAITING状态,并等待直到其他线程都到达集合点。当最后一个线程到达集合点后,调用CyclicBarrier类的await()方法时,CyclicBarrieer对象将唤醒所有通过await()方法进入等待的线程。
CyclicBarrier与CountDownLatch不同的地方在于,CountDownLatch通过countDown()方法对计数器减1来标记一个线程已经到达集合点,并且这个线程不会阻塞会继续执行。而CyclicBarrier类则通过await()方法标记线程到达集合点,并且这个到达集合点的线程会被阻塞。另外CyclicBarrier还支持把一个Runnable对象作为一个初始化参数,当所有的线程都到达集合点的时候,这个线程会被启动。这非常类似以一个分治算法的实现,把一个大任务拆分成若干个子任务,并等待所有子任务结束后,输出执行结果。

一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)

CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。

13.servlet 的什么周期
14.spring bean 是什么周期 springmvc 运行周期是什么?spring事务传播机制包括哪些?为了解决什么?
15.找一个你最擅长的项目,说说你充当的角色 什么? 主要做了哪些模块。负责什么?
16.在你的工作当中,你遇到什么样的挑战,如何既解决的 。
17.mysql 的引擎机制分为哪几种?每种有哪些特点。聚合索引的如何使用?mysql 的事务类型?默认的事务机制是什么?
18.mysql数据库优化,你是如何优化的。
19.redis的持久化类型分为哪些?
AOF 与RDS 分别的处理过程是什么?

Redis内建支持两种持久化方案,snapshot快照和AOF 增量Log方式。快照顾名思义就是隔一段时间将完整的数据Dump下来存储在文件中。AOF增量Log则是记录对数据的修改操作(实际上记录的就是每个对数据产生修改的命令本身),两种方案可以并存,也各有优缺点,具体参见http://redis.io/topics/persistence

20.Java 线程池的原理,有哪些核心参数。当队列跟线程池都满了。才有什么处理机制?包括哪些处理机制。
21.分布式的时候,如何保持回话。
22.JVM 内存模型,GC回收机制,有哪些算法。垃圾回收的过程是如何处理的?
23.简单的一个程序。

public class testHello {

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("test helllo");
}

}

运行该类。都做了哪些操作。详细说明。
24.redis 的nosql 如何使用,数据结构有哪些?
25.有一个无须的数组,找出第二大的数。
26.写一个递归的算法。
27.给定2个数,不利用第三个变量的时候,如何处理?
28.代理模式有几种,请写一个代理模式。
29.动态代理的实现原理。源码分析、
30.是否看过spring的源码。分析它的实现模式。
31.ThreadLocal 的的实现原理是什么?什么情况下会导致内存泄漏?
32.js 的闭包 是什么?
33.数据库的读写分离,是如何处理的?你们项目的处理逻辑是什么?有过哪些性能优化经验?
34.现在有21亿条数据,关键信息是。订单id,商户id,用户id。 采用什么分库分表机制。实现查询购买该商品的用户哪些?
某用户购买了哪些商品。
35.http 网络的分层,分几层。每种分发的依据。
36.MemcacheDB与Redis的区别。redis
的数据结构有哪些
Redis内部的数据结构最终也会落实到key-Value对应的形式,不过从暴露给用户的数据结构来看,要比memcached丰富,除了标准的通常意义的键值对,Redis还支持List,Set, Hashes,Sorted
Set等数据结构

Redis内建支持两种持久化方案,snapshot快照和AOF 增量Log方式。快照顾名思义就是隔一段时间将完整的数据Dump下来存储在文件中。AOF增量Log则是记录对数据的修改操作(实际上记录的就是每个对数据产生修改的命令本身),两种方案可以并存,也各有优缺点,具体参见http://redis.io/topics/persistence
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息