当前位置 博文首页 > chenpeng19910926的专栏:面试杂项

    chenpeng19910926的专栏:面试杂项

    作者:[db:作者] 时间:2021-07-26 17:52

    延迟消息队列的实现方式---考察架构设计和逻辑思维性--架构设计----NO;
    cms 垃圾回收期的高阶—答不上来

    持久带是否发生fullGC ok


    jps----ok
    jstack----ok
    jmap jhat------dump日志,jhat 不清楚
    jstat----不清楚

    dump文件中的分析
    jstack Dump 日志文件中的线程状态
    dump 文件里,值得关注的线程状态有:
    死锁,Deadlock(重点关注)
    执行中,Runnable
    等待资源,Waiting on condition(重点关注)
    等待获取监视器,Waiting on monitor entry(重点关注)
    暂停,Suspended
    对象等待中,Object.wait() 或 TIMED_WAITING
    阻塞,Blocked(重点关注)
    停止,Parked

    分析过dump文件但是,不深入;

    cpu彪高----》线上问题解决 no

    ?

    jvm理解程度一般,线上解决问题能力较弱

    =========

    grep 命令各种线上日志查询 yes

    tail 命令 ok

    find -type f -size +1000m |xargs 有点忘记了,但是知道这样写

    tar -zcvf ok

    maven release SNAPSHOT的区别 no

    git命令reset rebase的区别 no

    工程素质中等水平

    ========

    =========
    mySql 索引的数据结构 B+数 yes
    为什么?yes


    mySql联合索引的最左前置规则 yes


    分库分表经验-易购索引的注意事项:yes

    mysql 以及使用 以及遇到问题的意识 OK 数据库还是不错的

    ==========

    工作线程数究竟要设置为多少?
    没有好的思路

    ?

    ?

    5.

    a) dubbo 集群的工作方式,同步,异步 方式接触较少。

    b) redis 数据结构,5种, OK , redis CLUSTER 方式: 数据分片,数据持久化: AOF ,rdb 方式 OK 。
    c) MQ : 使用过kafka, 注册topic, ok 。 相对较了解。 kafka 增加节点,系统会有什么变化
    d) GIT : 大部分使用 ide 方式。 rebase 用法,不了解。 stash 用法,没用过。

    ?

    1. 个人介绍及项目介绍(考察沟通能力)

    2. 在公司项目的业务情况(考察业务需求把握能力)

    3. 团队情况和直接管理人员情况,任务开发分配情况(考察基本项目管理技能)

    4. spring mvc的工作流程,微服务不采用spring boot 原因(考察开发技能和架构把握能力)

    5. 具体技术细节提问(考察技术深度)

    a)dubbo 集群的工作方式

    b)redis 基本数据结构,cluster方式,持久化方式

    c)rabbitMq,ecchange,channel概念解析,集群的有几种方式,使用场景和优缺点。

    d). git : rebase/merge 区别,团队使用注意点,stash 用法

    6. 离职原因(工作稳定性)

    7. 工作中出彩的地方和困难介绍(考察项目实战能力)

    8. 职业规划和长短板

    ?

    ?

    新生代用什么垃圾回收算法---no
    老年代的垃圾回收算法---no
    1 看完书之后知识没有成体系

    jvm 命令-jps -no


    ========
    工程素质:
    线上日志查询---no

    grep ok

    netstat no

    tail -f yes

    find 命令 no

    xargs no

    maven 看依赖树 yes

    maven release SNAPSHOT的区别 no

    git reset rebase的区别 no

    =========

    kafka --一点也不了解
    rabbitMQ用什么语言实现的 no

    ?

    5.MySql了解tree和hash两种所以,具体区别一般;

    联合索引知识了解比较少;

    ?

    ?

    git reset 、rebase和 revert的区别?–OK

    Maven的Snapshot版本与Release版本的区别-了解一些,但是不全面

    线上CPU彪高问题排查–NO

    线上OOM问题排查-NO

    JVM内存模型以及CMS垃圾回收器的相关-OK

    JVM基础命令-个别命令不熟悉;

    Linux基础以及加深-linux基础良好,复杂命令不牢固

    java多线程的理解和设置工作线程数方案以及思路-有一定的经验,但是不完善

    ?

    分库分表的设计经验以及领域划分经验-回答的不太好

    延迟消息的架构设计-OK,这个问题答的思路很清晰

    ?

    5.知道基本优化参数,不知道OOM如何产生;也不知道栈内存溢出如何复现;

    ?

    ?

    单例:饿汉、懒汉、双锁、静态内部类

    java类加载机制,不ok

    ?

    ?

    ?

    ?

    1.
    String StringBuffer StringBuilder 区别String ok StringBuffer StringBuilder区别回答不正确 不OK
    HaspMap 结构:数据+链表;下标算法:没回答上来;新元素放到链表位置:记不清了 不OK
    HashMap与HashTable: HashMap是线程安全的(回答错误)与HashTable区别:不知道 不OK
    concurrenthashmap: 比HashMap并发好。效率高 锁分段算法:没看过 不OK
    object equals == 区别:OK String equals ==: ok
    二叉树结构:ok 特点:回答的不完善 红黑树:忘记了 不OK
    2.
    状态:就绪 运行 结束 等待 堵塞; sleep wait 区别:sleep 不释放锁 wait 释放锁 notify后流程:回答不完善
    sync : 原理基本OK, 加在不同地方: 锁类、锁对象 基本OK
    lock : CAS实现
    volatile:可见性、不能保证线程安全,应用场景:写少读、并发少
    ThreadLocal:原理OK;子线程用父线程TheadLocal对象:可以,不知道如何实现

    3.
    IOC:默认:多例
    AOP: 动态代理:(提示出)jdk cglib 区别:不知道
    bean 循环依赖:SPRING解决方案 没看过
    事务传播:原理基本知道AOP实现
    4.
    OOM: 堆、方法区会引起
    回收机制:新生代 用标记清除比较多 老年代忘记了
    5.
    策略:场景题:计算器设计 OK

    6.
    引擎:innodb\myisam 对锁的区别: 回答不透彻 ;对事务的区别:innoDB,myisam都支持事务
    隔离级别:回答有5、6种 幻读含义:回答正确
    索引:explain profiling
    联合索引: 走索引方式 回答基本OK
    7.
    架构方面能力比较不错,知识面比较广
    沟通能力比较好,项目背景可以清晰描述出

    ?

    ?

    1.
    HaspMap 结构:ok
    concurrenthashmap: 实现原理不ok
    hashSet数据结构:ok

    2.
    状态:就绪 运行 结束 等待 堵塞; sleep wait 区别:sleep 不释放锁 wait 释放锁 notify后流程:回答不完善
    sync : 原理基本OK, 加在不同地方: 锁类、锁对象 基本OK
    volatile:可见性、不能保证线程安全 ,ok 应用场景:不ok
    ThreadLocal:原理OK;子线程用父线程TheadLocal对象:可以,不知道如何实现

    线程池:知道核心参数,原理ok。

    3.
    AOP: 动态代理:(提示出)jdk cglib 区别:基本ok

    spring事务机制没怎么使用过。

    4.
    回收机制:堆的划分,回收算法。ok

    5.

    引擎:innodb\myisam 底层存储结构不了解
    联合索引: 原理OK,有查询计划分析经验

    聚簇索引和非聚簇索引之间的区别:ok
    6.
    沟通能力比较好,项目背景可以清晰描述出

    系统之间使用http交互,未使用rpc框架

    ?

    ?

    3.不了解IOC, 简单了解SpringMVC处理流程,一般

    ?

    4.mysql基本索引存储结构:B+树;

    聚簇索引和非聚簇索引的区别:不ok;

    5.基本查看命令了解,一般,不ok

    6.只会基本使用,maven的生命周期,ok;

    7.mget优化:本地分组,同一连接一次传输多组数据,减少传输次数;

    缓存如何保证高可用性? redis分片,一致性hash? ?

    本地缓存,集中缓存,如何保持数据一致性:通过mq消息;

    线程导致cpu飙高:ok;

    ?

    但是,对cglib没用过,不清楚优缺点;

    ?

    ?

    ?

    1、针对淘宝的网站竞品抓取经历,

    提问:

    {1} 如何针对各个竞品的防抓取策略,提出反向突破策略,抓取到有效数据?

    结果:通过代理池,针对各个竞品调整固定抓取频次;

    ?

    {2} 如果自己实现代理IP池,如何保证代理池内的代理全部有效?

    回答:通过数组,多线程进行分切筛选(类似2分法);

    {3}算法实现:

    实现上逻辑合理,复杂度处理有考虑,实现了一个多线程管理数组队列的机制;但遗漏了ip超时淘汰机制会造成数组空位的问题,提示后补充完毕‘

    {4} 针对车辆管理,QPS 400左右的mysql写库的解决方案,考虑kafka有做异步处理方面的方案存在遗漏,考虑分库方案回答基本到位,但方案缺点回答不全;

    {5}JVM常规OOM、GC过频繁、CPU过高等问题,有排查经验,但回答的并不到位,不能精确确认发生问题点;

    {6}MYSQL的数据索引结构B+树算法,针对数据的更新、删除更新机制回答基本正确,但写此磁盘方面的机制不到位;

    ?

    总结:

    优点,项目经验真实,有一定算法经验,有现场排查问题经验;

    缺点,考虑问题不够全面,解除的技术不够宽泛

    ?

    ?

    ?

    1.
    String StringBuffer StringBuilder 区别String ok StringBuffer 安全 StringBuilder不安全 stringbuilder使用场景不知道
    HaspMap 看过部分原码 深层就不知道了
    concurrenthashmap: 没有看过及用过
    object equals == 区别:OK String equals ==: ok
    二叉树结构:不太了解了
    2.
    状态:就绪 运行 结束 等待 堵塞; sleep wait 区别:sleep 不释放锁 wait 释放锁 notify后流程:先获取锁再执行
    sync : 底层原理不清楚, 加在不同地方: 锁类、锁对象 理解不对
    lock : 与sync区别:不知道 使用场景:没使用
    volatile:可见性、原子性
    automic:原理没研究过
    ThreadLocal:原理OK;子线程用父线程TheadLocal对象:可以,不知道如何实现

    3.
    IOC:默认:多例
    AOP: 动态代理:jdk cglib 区别:ok
    bean 循环依赖:没遇到场景

    4.
    jvm : 了解不多
    OOM: 不清楚
    回收机制:没有细研究过

    5.
    策略:场景题:计算器设计 不OK

    6.
    是否走索引:不知道

    ?

    ?

    ?

    HaspMap 结构:数据+链表;下标算法:不知道;新元素放到链表位置:头部 不OK
    HashMap与HashTable: HashTable是线程安全的,加锁方式:不确定是sync还是lock 不OK
    concurrenthashmap: 比HashMap并发好。效率高 锁分段算法:不知道 不OK
    object equals == 区别:OK String equals ==: ok
    二叉树结构:对数据结构比较弱 不OK
    2.
    状态:就绪 运行 结束 等待 堵塞; sleep wait 区别:sleep 释放锁 wait 不释放锁 不OK
    sync : 原理不太了解, 加在不同地方: 不OK
    volatile:可见性、原子性,应用场景:比较模糊
    ThreadLocal:原理OK;子线程用父线程TheadLocal对象:不可以(回答不正确)

    3.
    IOC:默认:单例 可以多例
    AOP: 动态代理:jdk cglib 区别:不知道 不OK
    bean 循环依赖:没研究过
    事务传播:原理基本知道AOP实现
    4.
    OOM: PC不会引起
    回收器:不太了解 不OK
    回收对象机制:了解比较浅 不OK
    5.
    策略:场景题:计算器设计 不OK

    6.
    引擎:innodb\myisam
    区别:
    ?锁: innoDB行级锁,myisam表级
    ?事务:innoDB支持,myisam不支持,
    ?索引:innoDB BTree,myisam 压缩 不OK
    隔离级别:4种OK 幻读含义:回答不正确 不可重复读:回答不正确 不OK
    索引:explain
    联合索引: 走索引方式 回答基本OK
    7.
    scp top du

    基础理论能力

    主要考察面试者基础语法概念(面向对象、java基础语法)、常用框架概念(SSI、AOP、IOC、值栈等)、基础网络知识(http协议、cookie、CDN、request等)、多线程(锁)、同步异步、文件IO、消息队列、设计模式等

    基础

    • 你如何理解什么是面向对象?
    • int和Integer有什么区别?
    • String 和StringBuffer的区别
    • 什么是Servlet?Servlet的生命周期?
    • 同步和异步有何异同,在什么情况下分别使用他们?举例说明。
    • 页面间对象传递的方法(request,session,application,cookie等)
    • .etc

    中等

    • 多线程安全(也可以是困难的)
    • sleep() 和 wait() 有什么区别?(前者占用CPU,后者空闲CPU)
    • 静态变量和实例变量之间的差别
    • forward 和redirect的区别?
    • 多线程有几种实现方法,是什么?同步有几种实现方法,是什么?
    • 常见的设计模式有哪些,随便挑一两个简单考察。
    • 当你在浏览器中输入一个网址,敲下回车发生了什么?
    • 对JAVA多线程中“锁”的概念的理解
    • 所有的递归实现都可以用循环的方式实现,请描述一下这两种实现方式各自的优劣。?并举例说明在什么情况下可以使用递归,而在什么情况下只能使用循环而不能使用递归?
    • 请阐述下你对IOC(Inversion of Control)的理解。(以Spring的IOC作为例子说明他们在实现上各自的特点)
    • .ect

    困难

    • 分布式场景下的问题
    • 大数据场景下的问题
    • 大流量场景下的问题
    • 说说java7新特性?
    • java中异常处理机制的原理和应用
    • 为什么在重写了equals()方法之后也必须重写hashCode()方法?

    编码能力

    考察面试者基础编码能力,不可以写伪代码,注重检查点:能否跑通work,功能是否满足,逻辑是否严谨(边界),编码习惯是否nice(变量定义),实现方式是否最佳(时间、空间)

    基础

    • 将两个升序排列的数组,合并成一个新的升序排列的数组。
      public int[] merge(int[] a, int[] b) {
      }

    ?

    • 将一个字符串反转,如将”abcdef“反转成”fedcba“。
      public String reverse(String source) {
      }
    • 知道哪些排序方法,时间空间复杂度,随便挑选一个让其写实现代码

    中等

    • 写一个名为Singleton的单例模式类,并说出它的特点和适用场景。单例模式有哪些缺点,在哪些情况下单例语义会遭到破坏,或者说可以产生多于一个实例?
      public class Singleton {
      }

    ?

    • 将一个无序整数序列中两个元素和为100的元素对打印输出到控制台,如输入为8,19,-7,92,26,81,99,107,则输出对应序号(0,3),(1,5),(2,7)。
      public void matches(Iterator?in) {
      }
    • 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1;写出程序。

      参考demo:http://w4c.dp/doc/r/KxmwjcFlGrKoDmiWvddruqSUEyJNZFbtYWYszCaQDjeiIebWhQ:preview
    • ?

    困难

    • 解析一段URL的query string(key/value对用’&’和’=’分隔)。如:“a=b&a=c&d=e&e=fgh”
      public Map?parse(String queryString) {
      }

    设计能力

    考察面试者项目设计能力,注意检查点:项目关键功能点拆解&理解能力、设计是否满足全部项目功能、数据库表设计是否合理(字段设计、关联主附表、索引是否合理)、扩展灵活性等

    基础(针对在校生、应届和工作1-2年者)

    • 图书馆需要建设一个借阅还书系统,请为该系统进行数据库建模。要求如下:
      ? 每个借阅者均需要办理读者证。每个读者证可以同时借阅10本书。
      ? 拥有读者证的借阅者可以借阅图书和归还图书
      ? 可以查阅图书及在馆状态
      ? 借阅者可以通过图书馆网站进行续借,仅可续借一次

    ?

    • 公司会议室比较紧张,需要提前预定,请为该系统进行数据库建模。要求如下:
      ? 需提前预订会议室,不可预定两周之后的会议室
      ? 每个会议室可容纳的人数及设备(投影、多媒体等)均可能不一致
      ? 可以查阅每个会议室的预定状况
      ? 思考:如何可以提高会议室的使用效率

    中度(针对有36年工作经验者)

    • 产品/套系各类目对于结构化信息的要求不一致。如婚纱摄影需要描述服装、场景、拍摄、摄影师等信息;婚庆公司需要描述布置、道具、司仪、摄像等信息,幼儿教育则需要描述课程、老师等信息。如何解决这个问题?

    困难(针对6年以上经验者)

    • 请设计一个公交换乘系统,要求如下:
      ? 可以实现“较快捷”,“少换乘”,“少步行”等类型的换乘方案
      ? 每次输出不超过3个的备选最优方案
      ? 要求系统的响应速度快,并发量高
      ? 可根据需要增加难度或减少难度
      o 如:轨道交通间的换乘不算换乘等

    ?

    • 新美大的业务按照行业分为美食、结婚、亲子、家装等,这些业务是由不同的团队开发。这样就存在多个团队开发一个相同的业务,如商户页。各行业商户页上,有些功能是相同的,有些则不同。如各业务独立开发,则有些功能需要开发多次,优点是团队间的耦合性好;各行业共同维护一套,则互相之间的依赖太高。如何解决这个问题?

    排错能力

    碰到过什么的问题以及如何解决,举例子说明,开放式问题,主要根据应聘者的回答来判断对方的经验,从问题现象到具体排错手段的思维过程。

    基础

    某种条件下能稳定重现的问题;解决方法从日志堆栈上能直接看出来的问题,

    中等

    不能稳定重现的问题,一般和多线程相关;解决方法可以是通过code review和压测验证,调整代码来增加多线程复现的概率;懂得利用jvm相关工具分析线程堆栈,内存主要使用情况,死锁等;懂得查看宿主机的情况(cpu, 磁盘,内存,网络io等),能够结合现象说明一定的排错逻辑(不一定非常强,很多时候会猜测);事后能提出一些有效的防范措施

    困难

    不能稳定重现的问题;除了"一般"的回答,还有运维知识,思路上能够非常清晰的分析出可能的几种情况并能按照可能性排序.对计算机系统非常熟悉,明白进程线程切换调度的成本,内存不足的表现,网络通信原理等并能将分析推测落地到这些基础知识和业务情况(不是凭空乱猜);熟悉nginx,tomcat,memcached等组件的工作原理,参数配置等;事后能从多维度预防,监控等;

    工具使用

    主要考察点面试者在日常开发时的必备工具,考察其工具的知识广度、实际掌握深度、对工具活学活用与自主创新的能力等

    简单

    你用过或知道哪些开发工具?比如:
    IDE:eclipse,intellij idea
    package:gradle,maven,ant
    linux:grep,awk,sed,vmstat,iostat
    java:jstack,jmap,jprofiler
    network:tcpdump,wireshark
    web:fiddler(Charles),chrome inspector
    editor:vim/emacs
    scm: git, github

    ======================================================

    中等

    开放性问题,面试者通过以上这些工具在日常开发中有效地解决过什么问题?

    困难

    开放性问题

    • 有没有自己研发过工具?工具解决的是一个什么问题?
    • 现有的工具为何解决不了此问题?工具的价值如何衡量?工具实现的难点在哪里?
    • 如何推广自己的工具?
    • 自己的工具还有什么改进点?

    产品&项目能力

    考察own过的项目或业务。

    • 项目规模大小
    • 业务复杂度
    • 遇到的挑战
    • 解决问题的思路是否开阔
    • 项目的拆解是否合理清晰,有无明确是时间点
    • 监控&风险控制是否完善,项目指标如何量化衡量
    • 有限资源下,业务压力和技术的平衡

    学习能力

    开放性问题,主要考察面试者的学习主动性,属于加分项。比如

    • 最近看过哪些技术相关的书
    • 掌握多种开发语言、js?ruby?python?等等
    • github有没有开源项目
    • 有没有做过提高效率的工具等

    潜力兴趣度

    开放了解其本身对技术的热情,可以结合上面的学习能力进行提问了解。

    沟通表达能力

    考察关键点:需要区分和啰嗦的差别

    • 描述清楚项目的背景和功能点
    • 描述清楚整体方案
    • 描述清楚具体模块or关键功能的细节
    • 其他

    理解能力

    暂时没有想好。。。

    • 提问的时候对方有无认真听讲,
    • 提题的问题有无正确理解
    • 有无正面回答问题
    • 其他…

    ?

    1、链表有没有环,入环点
    2、servlet
    3、HashMap

    4、ConcurrentHashMap

    5、线程池:不ok

    ?

    ?

    1、开始理解错误,经过引导得到对的逻辑,但是代码风格混乱,同时有错误,指出后改正。

    2、不ok

    3、JDK1.7 OK

    4、JDK1.7知道加了锁,但是不知道如何加的锁,不知道锁原理 不ok

    5、不ok

    ?

    ?

    1. ?TreeSet数据结构
    2. 红黑树的特点
    3. TreeSet和TreeMap 的关系:

    ?

    1. ?volatile 关键字含义 ?
    2. atomic类型变量
    3. CyclicBarrier 和 CountDownLatch的区别
    4. threadLocal 原理
    5. java线程池中的各个参数的意义?
    6. ?java垃圾回收,为啥新生代要用复制算法,老年代用标记-整理算法?
    7. mysql索引的数据结构 ?
    8. mysql 联合索引的最左前置索引
    9. 查询cup负载用什么命令 load average 的含义 ?
    10. 查询日志 tail cat tac grep ??命令
    11. tar命令 打成 tar.gz -zcvf
    12. grep ok
    13. top 不ok
    14. netstat 知道这个命令 没怎么用过,一般
    15. tail ok
    16. 红黑树是二叉树 不ok
    17. mysql知道索引是B+树,不知道为啥用B+树
    18. HashMap JDK1.6,1.7OK, 1.8知道用红黑树,但是不知道红黑树的原理
    19. 知道核心参数有哪些,但是不知道workQueue和拒绝策略的用法
    20. 链表是否有环,入环点 ,引导之后ok
    21. ?查询CPU负载彪高的问题
    22. 查询一个50G访问日志文件 前100个出现最多的IP
    23. 技术深度和广度 kafka、rabbitMQ、ActiveMQ 相关

    ps ok

    grep ok

    jstat ?没用过

    jstack 用过,不记得内容了

    线程池 用过Spring的,java原生的不ok

    红黑树 不ok

    Servlet ok

    JVM?

    java内存模型OK

    线上CPU彪高问题查询—no

    java虚拟机 调整参数----no

    java虚拟机 cms垃圾回收期—no

    java多线程相关----忘记差不多了

    常用linux命令—ok

    mysql索引的数据结构----no

    1、servlet

    2、线程池?

    3、JVM

    1、ok

    2、候选人不记得线程池细节。但是自己可以设计出线程池的工作模型 ok

    3、jstat、jstack、jmap ok

    Java内存模型 一般了解的不透彻

    ?

    ?

    1.架构师,不想做管理

    什么是架构:整理业务需求,资源系统整体设计。定技术指标。稳定性。可拓展性。具体问题处理,总揽全局,需求转化实现,设计能力,设计预拓展,稳定性,持续重构改建。

    2.?知道top,不知道怎么算出load

    3.不ok,画出了堆和栈。写出了堆的年轻代老年代,知道年轻代用复制算法。但不知道为什么使用

    4.?不ok,不知道红黑树

    5.知道数据库用的B+树,知道B+树是什么树,但是不知道树的左旋右旋

    6.?ThreadLocal 不ok

    整体技术深度与技术规划不匹配。基础较差。

    ?

    ?

    Java线程池

    ThreadLocal

    volatile

    redis

    红黑树

    HashMap

    TreeMap

    ?

    ok

    ok

    ok

    主备模型,主从模型OK

    不知道红黑树原理,知道是平衡二叉树的一种,知道树的旋转,一般

    知道JDK1.7是桶 + 链表。 JDK1.8桶+红黑树,但是不知道红黑树,一般

    不ok

    ?

    管理经验:没有

    CUP彪高的线上问题;没有相关经验
    load avg 的含义:说不出来


    线上 OOM的问题解决:没有相关经验

    服务器内存缓存用过什么,注意什么?回答一般


    JVM的调优:没有实践过
    jvm 老年代 垃圾回收器CMS 的配对回收器是什么


    CountDownLatch 解决什么问题的?了解程度

    用过什么消息队列
    kafka 了解还可以,用过


    hadoop系列 没有使用过

    linux 命令 free du
    查询日志中的关键字的上下10行 不知道 但是用过grep
    打包命令 ok

    ?

    大抽奖系统设计:抓不住重点,模块划分不清晰

    ?

    ?

    1.Redis

    2.SpringMVC

    3.RabbitMQ

    4.Dubbo

    5.zookeeper

    ?

    1.主从同步ok。一致性哈希不ok

    2.Servlet生命周期ok。执行过程ok。细节不ok。?

    3.使用OK,设计延迟队列有思路ok

    4.?不ok,RPC和SOA概念不清晰

    5.?不ok

    ?

    1.zookeeper选举模式

    2.Kafka工作模型

    3.AMQP协议

    4.延迟队列

    5.Servlet生命周期

    6.SpringMVC?

    1.不ok

    2.ok

    3.不ok

    4.有思路,没有得到可行性方案,一般?

    5.?ok

    6.知道执行过程,但是不知道细节,一般

    ?

    ?

    TreeMap的数据结构 no

    TreeSet的数据结构 no

    红黑树:no

    HaseSet的数据结构:no

    System.gc()干什么用的? no

    volatile 变量和 atomic 变量有什么不同? no

    ?

    java atomic实现原理 ok


    CyclicBarrier 和 CountDownLatch 都可以用来让一组线程等待其它线程。no

    java线程池中的各个参数的意义 no


    java虚拟机复制算法:说不清楚

    cpu彪高的问题:说不清楚

    jmap:说不清楚
    jstack:说不清楚

    top 命令 load avg :说不清楚

    OOM的问题 :说不清楚

    ?

    grep 命令 ok

    tail 命令 ok

    在一个目录下,删除10G以上的文件 no

    清除一个大文件;ok


    数据库的索引是什么数据结构?no

    1.zookeeper选举模式

    2.RocketMQ

    3.AMQP协议

    4.延迟队列

    5.SpringMVC?

    6.线程池?

    7.ThreadLocal?

    ?

    1.不ok

    2.可以描述P2P模式,不知道广播模式,一般

    3.不ok

    4.有思路,没有得到可行结果,一般?

    5.ok

    6.ok?

    7.不ok

    ?

    1.grep 不ok,cat 不ok,find 不ok

    2.Mysql索引?最左匹配不ok,索引结构不ok

    3.线程池不ok,ThreadLocal 不ok

    4.不ok

    5.不ok

    ?

    1.线程池

    2.ThreadLocal?

    3.kafka?

    4.红黑树?

    ?

    1.不ok

    2.不ok?

    3.kafka消费者模型不ok?

    4.红黑树不ok,平衡二叉树不ok,树旋转ok?

    ?

    1.基础数据结构;

    2.线程安全并发数据集合相关

    3.jvm结构和调优

    4.垃圾回收算法

    5.设计模式

    6.中间件:Dubbo

    7.mysql

    ?

    1.ok

    2.不ok;

    3.了解基本概念,不能系统表达;不知道内部结构;无法写出栈溢出示例;一般

    4.不ok;

    5.知道概念,但是无法写出或描述线程安全的单例需要的注意点,不ok

    6.能够使用;但是不知道各个模块的职责和架构特点;但是正在准备转型。一般

    7.对于索引使用规则不是很清晰,不ok

    ?

    git reset 和rebase的区别 no

    top 命令 不知道
    free 命令 不知道
    在一个目录下删除 1个G 的日志 不知道

    grep命令 不了解

    系统监控日志 不了解

    full GC 不了解
    jvm 不了解

    mysql索引是什么数据结构?

    mysql联合索引的最左前置规则?


    kafka:topic group partition
    底层机制不是很了解

    ?

    1.ok

    2.volatile了解大概机制,concurrenthashmap了解多段锁,但没有实际使用经验;

    3.只知道最大线程数和最小线程数,其它不了解,更不用说队列缓冲这些东西了,而且基本没用过

    4.会用tail,top,netstat命令,但查询历史中特定数据,不知道使用grep;

    5.知道gc基本概念,但没有实际经验,没用过mat等工具,jstack仅会查看线程是否存在,不太了解线程状态;

    不了解64位机器压缩指针的概念;

    ?

    ?

    1.ok

    2.volatile了解大概机制,concurrenthashmap了解多段锁,了解size函数的优化;

    3.了解线程池相关配置参数,有使用经验,了解无界队列的问题。

    4.会用top,lsof,netstat命令,会用shell脚本,会查看

    5.知道gc基本概念,了解相关参数,新生代,老年代分配,

    有相关使用经验jstat,jmap,jps,jstack,mat,

    了解jstack 和top命令,但无法串联起来,不知道jstack的线程id需要转换。

    OOM,jmap观察对象持续增长,联想到hibernate缓存,未调用session.clear(),导致session未释放。

    6.了解innodb和myisam的索引数据结构实现,了解联合索引,并会应用。

    ?线上CPU彪高问题-代码定位

    2 java线程池

    3 system.gc() 是否会立即执行,为什么?

    4设计模式 都用过哪些?

    5 老年带 CMS垃圾回收器

    6 tar 相关命令

    ?

    ?

    2.volatile了解用法,concurrenthashmap了解多段锁,size函数实现,sleep和wait的区别不了解,;

    3.线程池参数配置了解大概,但不够深入,了解锁的实现方式和用法。

    4.会用grep命令,vi打开1G文件,ps查找进程负载,top不了解,不知道怎么看进程的子线程问题。

    5.知道gc基本概念,线上服务器只有2g,知道大概的分配原理,不知道如何查看某个class加载自哪个jar包。

    6.知道联合索引,了解应用原理。

    ?

    2.volatile不了解用法,threadlocal不太了解,synchronized关键字加在普通方法和static方法的区别不确定;

    3.线程池参数配置不了解。

    4.会用grep命令,会使用lsof查看端口占用,大文件使用more或less查看,top了解,知道怎么看进程的子线程负载。

    5.知道gc基本概念。

    6.知道联合索引,会使用explain查看计划,不了解innodb底层数据结构。

    7.了解spring的aop实现方式

    ?

    2.volatile了解用法,concurrenthashmap了解多段锁,size函数实现,sleep和wait的区别不了解,;

    3.线程池参数配置了解,但不够深入,不了解synchronized关键字在static方法上和普通方法上有什么区别。

    4.会用grep命令,ps查找进程负载,top不了解,不知道怎么看进程的子线程问题。

    5.知道gc基本概念,线上配置过hbase的jvm参数,但是对内存分配规则不太了解。

    6.知道联合索引,了解应用原理,了解innodb的存储结构。

    ?

    ?

    2.volatile了解用法,不了解原理,StringBuilder和StringBuffer的区别了解:synchronized和lock:知道释放,synchronized知道加在static方法和非static方法上的区别;

    下一篇:没有了