• Java面试总结(2017.10)


    Java面试总结(2017.10)

             把最近一个月的面试经历总结一下吧。期间有面试大数据和java,以下主要针对java大概总结一下。

    一、某滴(套路:项目、数据结构、算法、数据库、多线程)

    1.手写链表反转、二分查找(有序循环数组 4 5 1 2 3)

    2.mysql索引,哪些地方影响性能?

    3.jdk1.8 hashmap 的变化? 数组+树,数组加表  空间复杂度 

    4.hashmap的结构优化?

    5.concurrenthashmap机制?

    6.hbase,为什么要有列族?

    7.rabbitmq、redis相关?

    8.公司项目架构(我把自己负责的模块讲了)

    9.spark rdd?

    10.内存模型,内存管理,GC?

    11.js创建对象的方式(用的不多)

    12.数据库引擎,索引,哪些地方涉及到io,怎么优化?

    13.设计清理机制,redis设置过期的值,如何清理?

    14.redis存储类型?

    15.springmvc的执行过程,mybatis二级缓存,缓存机制?

    16.zookeeper选举机制?

    17.spring core有哪些组件?

    18.数据库隔离机制  脏读  幻读?

    19.锁机制?

    20.synchronized(排序)与lock(不排序,吞吐量大)的区别?

    21.volatile 可见性?

    22.多线程实现方法,构造方法参数

    二、某东(套路:项目、架构图、高并发、JVM、数据库)

    1.自我介绍

    2.画出最熟悉项目的架构图 讲一下流程

    3.根据流程问细节实现

    4.并发安全实现的几种方式 你在工作中的实现场景

    5.java的同步机制

    6.synchronized

    7.Object方法中的方法

    8.ThreadLocal机制 

    9.一个类里static方法和普通方法都用synchronized修饰会发生什么

    10.并发下hashmap死锁问题如何解决

    11.Hashtable替换HashMap

    12.Collections.synchronizedMap将HashMap包装起来

    13.ConcurrentHashMap替换HashMap

    14.jvm内存模型 jvm如何处理String str = new String(“abc”)

    15.gc的机制和算法 (何时触发full gc等)

    16.一谈最近看过的技术书籍

    17.服务器/数据库高并发/高可用解决方案

    18.讲一下一次典型写操作的流程 创建几个类 如何提升mysql 写操作的最大并发量

    19.查询的优化

    20.如何保证高访问量下读写数据的一致

    21.创建表时要注意的事项 什么时候需要冗余设计

    22.哪些字段要建索引 同一张表建多个索引的优缺点

    23.你研究过最难的算法是哪个

    24.Nginx里正则的使用

    25.Springmvc里面都有什么注解 spring aop底层用什么实现

    26.动态代理,反射

    27.http状态码302 代表什么

    28.cookie请求头包含哪些内容

    29.不用session如何保存用户数据

    30.单例为什么需要双重检查

    31.js对象的种类 js如何实现map结构

    总结:连续3轮面试 无笔试 对于有工作经验的会问细节 具体到代码实现

    三、某米(套路:多线程、数据结构、算法、数据库、linux)

    1.栅栏(cyclic),闭锁递减锁(countdownlatch)

    2.多线程,5种状态,多线程方法参数(核心线程池数量、最大数量、超时时间、时间单位、拒绝服务器助手(handler,队列))

    3.hashmap源码,参数

    4.空间复杂度、时间复杂度

    5.两个线程,分别输出1,2。如何实现1,2,1,2,1,2,.....交换输出

    6.二分查询,返回下标,

    7.快速排序

    8.数据库,索引,

    9.flume 与 storm的区别

    10.redis如何存setlist等值

    11.volatile作用

    12.悲观锁,乐观锁什么情境下用

    13.如何实现秒杀

    14.三维数组赋值,三层for循环,用一个循环?

    15.linux查询某一个文件的IP

    16.查找目录下的所有文件中是否含有某个字符串

    17.linux通过关键词查询 命令  xiaomi.com

    18.输出日志的最后5行 tail -f 5 ./log

             最后总结:以上列举三家公司面试情况(两年工作经验),面试问题大同小异,换汤不换药。面试时间一般在2个小时左右,我经历最长的一次是3个半小时。面试一般是三轮(两轮技术面,一轮HR面),经历最多的面试是四轮(三轮技术面,一轮HR面)。大公司更注重基础,比如:数据结构、算法、索引、JVM、优化等,小公司更偏重应用,比如:Spring、struts2、mybatis、数据库等的使用。

  • 相关阅读:
    Mbps、Kbps、bps、kb、mb区别和换算
    Python导入模块方法
    C# WinForm 程序免安装 .NET Framework(XP/win7/win10环境运行)
    生成缩略图
    WCF 的优势和特点
    不要在using语句中调用WCF服务
    pb getchild获取DropDownDW子窗体后进行取值
    Bootstrap后台管理模板调研
    PB调用C#编写的DLL
    PowerBuilder与嵌入浏览器交互
  • 原文地址:https://www.cnblogs.com/wu-cai/p/7862829.html
Copyright © 2020-2023  润新知