实现延迟消息队列的方法-调查架构设计和逻辑思维-架构设计----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) { }
设计能力
考察面试者项目设计能力,注意检查点:项目关键功能点拆解&理解能力、设计是否满足全部项目功能、数据库表设计是否合理(字段设计、关联主附表、索引是否合理)、扩展灵活性等
基础(针对在校生、应届和工作年者)
- 图书馆需要建设一个借阅还书系统,请为该系统进行数据库建模。要求如下: • 每个借阅者均需要办理读者证。每个读者证可以同时借阅10本书。 • 拥有读者证的借阅者可以借阅图书和归还图书 • 可以查阅图书及在馆状态 • 借阅者可以通过图书馆网站进行续借,仅可续借一次
- 公司会议室比较紧张,需要提前预定,请为该系统进行数据库建模。要求如下: • 需提前预订会议室,不可预定两周之后的会议室 • 每个会议室可容纳的人数及设备(投影、多媒体等)均可能不一致 • 可以查阅每个会议室的预定状况 • 思考:如何可以提高会议室的使用效率
中度(针对有-年工作经验者)
- 产品/套系各类目对于结构化信息的要求不一致。如婚纱摄影需要描述服装、场景、拍摄、摄影师等信息;婚庆公司需要描述布置、道具、司仪、摄像等信息,幼儿教育则需要描述课程、老师等信息。如何解决这个问题?
困难(针对年以上经验者)
- 请设计一个公交换乘系统,要求如下: • 可以实现“较快捷”,“少换乘”,“少步行”等类型的换乘方案 • 每次输出不超过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
- TreeSet数据结构
- 红黑树的特点
- TreeSet和TreeMap 的关系:
- volatile 关键字含义 ?
- atomic类型变量
- CyclicBarrier 和 CountDownLatch的区别
- threadLocal 原理
- java线程池中的各个参数的意义?
- java垃圾回收,为啥新生代要用复制算法,老年代用标记-整理算法?
- mysql索引的数据结构 ?
- mysql 联合索引的最左前置索引
- 查询cup负载用什么命令 load average 的含义 ?
- 查询日志 tail cat tac grep 命令
- tar命令 打成 tar.gz -zcvf
- grep ok
- top 不ok
- netstat 知道这个命令 没怎么用过,一般
- tail ok
- 红黑树是二叉树 不ok
- mysql知道索引是B+树,不知道为啥用B+树
- HashMap JDK1.6,1.7OK, 1.8知道用红黑树,但是不知道红黑树的原理
- 知道核心参数有哪些,但是不知道workQueue和拒绝策略的用法
- 链表是否有环,入环点 ,引导之后ok
- 查询CPU负载彪高的问题
- 查询一个50G访问日志文件 前100个出现最多的IP
- 技术深度和广度 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方法上的区别;
concurrenthashmap知道有多段锁,不了解实现细节,不了解size函数的实现和优化;
3.用过线程池,了解配置参数用法;但没深究过线程池的源代码。
4.会用grep,但是不会用管道符,top仅知道命令。
cpu飙高线程定位:top,jstack;照网上文章来做,记不太清楚了
jdk命令:不太了解;
5.知道堆的基本概念。
6.了解联合索引概念,不会灵活应用,不了解存储引擎数据结构。
2.volatile了解用法,concurrenthashmap了解多段锁,但是对于锁机制和synchronize没有深入区别。不ok
3.线程池参数配置了解,自己实现有思路.ok
4.会用grep命令,ps查找进程负载,load负载高的问题有基本思路,一般。
5.知道gc基本概念,线上配置过hbase的jvm参数,但是对垃圾回收算法内部实现,gc可达性分析原理,内存分配,无法清晰表达。不ok
6.知道基本优化方式,但是不深入,没有做过优化。不ok
7.听说过,没有用过。不ok
受限于工作年限和公司技术场景;多线程,分布式中间件,MySQL等互联网主流技术和工具都不擅长。
1.不ok,hashmap如何解决冲突不ok。
2.volatile不了解,synchronized不了解加在static和非static方法上的区别,
concurrenthashmap知道多个segement,但不知道有锁。
stringbuilder和stringbuffer的区别搞反了。
使用过countdownlatch的用法。
3.线程池参数配置不ok。
4.会用grep命令,会写shell脚本,会用top命令,查找cpu飙高的线程不ok。
oom内存溢出诊断思路不ok,jstack和jmap命令不了解。
5.两种持久化方式ok,pipeline方式导入数据导致redis线程阻塞问题不了解。
6.mysql的存储引擎数据结构不ok,联合索引知道简单用法,不会灵活应用。
7.了解jvm概念,仅会调整堆大小,
1.无法说出hashmap和concurrentHashMap的底层实现,不ok
2.不ok;
3.了解基本概念,不知道内部结构;无法写出堆和栈溢出示例;不ok
4.知道概念,底层原理不清晰不ok;
5.知道概念,但是无法写单例,有些设计模式理解错误,不ok
6.用过;但是不知道各个模块的职责和架构特点。不ok
7.对于索引使用规则不是很清晰,不ok
1线上解决问题的能力(top命令,看每个cpu的负载,load avg的含义,jstack使用,日志定位)
2 各种linux的操作,查看网路,找10G以上的日志并删除,打包命令
3 jvm相关 各种回收算法,cms配对回收算法
1.ok,hashmap如何解决冲突ok。
2.volatile不ok,synchronized加在static和非static方法上的区别不ok,stringbuffer和stringbuilder区别ok,concurrenthashmap了解多段锁,size函数优化不ok。
3.线程池参数配置不ok。
4.文本查找关键字ok,netstat不ok,查找cpu飙高的线程不ok,oom没遇到过。
5.mysql存储引擎数据结构不ok,联合索引原理不ok,其它mysql命令不了解。
6.堆的划分ok
7.模块设计能力不足,目前互联网工作中仅涉及到报表模块设计,功能比较简单。
1.ok,hashmap如何解决冲突ok。
2.synchronized了解加在static和非static方法上的区别,concurrenthashmap了解,size函数细节不ok。
3.线程池参数配置ok。
4.文本查找关键字ok,会用top命令,会用netstat,查找cpu飙高的线程ok。
5.mysql存储引擎数据结构ok,联合索引原理ok,查schema相关表解决死锁问题,其它mysql命令了解explain,profile。
6.堆的划分ok
1.ok,hashmap如何解决冲突ok。
2.volatile不ok,synchronized加在static和非static方法上的区别ok,stringbuffer和stringbuilder区别不ok,concurrenthashmap了解,size函数优化不ok。
3.线程池参数配置不ok。
4.文本查找关键字ok,会用top命令,查找cpu飙高的线程不ok,oom问题不ok。
5.不ok。
6.堆的划分ok,32位和64位的jvm实现区别不ok。
1.ok,hashmap如何解决冲突ok。
2.volatile用法ok,synchronized加在static和非static方法上的区别不ok,wait和sleep方法的区别,stringbuffer和stringbuilder区别ok,concurrenthashmap了解1.7和1.8的区别,size函数优化不ok。
3.线程池参数配置不ok。
4.文本查找关键字ok,查找端口占用不ok,查找cpu飙高的线程不ok,oom问题不ok。
5.不ok。
6.堆的划分ok,32位和64位的jvm区别不ok。
7.数据存储引擎数据结构不ok,
8.原理不ok
1.ok,hashmap如何解决冲突ok。
2.volatile不ok,synchronized加在static和非static方法上的区别ok,stringbuffer和stringbuilder区别ok,concurrenthashmap不ok,但是,知道1.8中解决冲突时使用红黑树优化。
3.线程池参数配置ok。
4.文本查找关键字ok,会用top命令,查找cpu飙高的线程不ok,oom问题ok。
5.堆的划分ok,32位和64位的jvm实现区别ok,实际配置经验较少。
6.mysql的存储引擎数据结构不ok,联合索引ok,explain有了解,缺乏实战经验。
1 ok;
2 一般,top命令深度了解一般
grep 命令,用过,但是好多参数忘了
tar 打包命令,ok
找到一个目录下的大于10G的文件并删除,no
3 对设计模式有了解,并且在编码中有用到
4 了解,并且知道优缺点
1.ok,hashmap如何解决冲突ok。
2.volatile不ok,synchronized加在static和非static方法上的区别ok,stringbuffer和stringbuilder区别ok,simpledateformate不了解是线程安全的,concurrenthashmap了解分段锁,不了解size方法的优化。
3.线程池参数配置不ok。
4.文本查找关键字不ok,会用top命令,查找cpu飙高的线程不ok,oom问题ok。
5.堆的划分ok,32位和64位的jvm实现区别ok,实际配置经验较少。
6.mysql的存储引擎数据结构不ok,explain有了解,也使用过。
1.ok
2.synchronized和lock知道,有使用countdownlatch,concurrentHashMap内部结构和原理。但是线程安全相关数据结构不清晰,不ok。
3.内部数据结构都比较了解,ok
4.知道基本使用的命令,查看线程命令不知道,查找cpu线程飙高不ok;
5.mysql存储引擎数据结构不ok;
6.能大体说出内部结构,了解垃圾回收算法原理;没有线上调优经验。一般
7.知道单例,工厂,模版,其他能大致说清楚使用场景。单例模式双重检查方法的缺点不了解,一般。
8.了解大体架构原理ok。
jvm深度理解 cms垃圾回收期算法,以及为啥要搭配SerialOld回收器,原因是什么
1.ok
2.了解grep命令,查询端口被谁占用ok,查找cpu飙高不ok,但知道jstack,jmap等命令。
3.存储引擎的数据结构知道是btree结构,但是为什么这么设计不了解,有explain的实际使用经验,联合查询不ok
4.了解节点类型,了解用途,优缺点不了解,没有实际使用经验。
5.jvm了解大体架构,知道年轻代,年老代,没有实际调优经历。
6.ok
7.但是对mybatis的插件机制等不是很清楚,候选人回复说代码有些时间长了,准备不够充分;
1.ok
2.volatile会锁住对象,不ok,concurrentHashMap了解分段锁,不了解size的优化,
3.了解grep命令,查询端口被谁占用不ok,查找cpu飙高不ok,查找内存溢出问题ok,
4.存储引擎的数据结构知道是tree结构,具体哪种不知道, 有explain的实际使用经验,
6.了解节点类型,了解分布式锁的一种实现,优缺点不了解,没有实际使用经验。
7.jvm了解大体架构,知道年轻代,年老代,没有实际调优经历。
8.memcache内存分配方式不ok,redis的pipeline方式没听说过。
soa相关概念不了解,基础比较差,线上问题处理比较少。
1.不ok,hashmap如何解决冲突,treemap数据结构不了解。
2.了解vi,但不了解grep命令,查询端口被谁占用ok,jdk相关命令不怎么用。
3.mysql的存储引擎有哪些不了解,SHOW PROCESSLIST有用过,索引优化没有经验。
4.jvm了解大体架构,没有实际调优经验。
6.redis的pipeline方式没听说过。
7.zookeeper节点类型了解,了解分布式锁实现,了解惊群现象,但不知道解决,kafka不了解partition概念。
8.maven查找jar包冲突不了解。
扩容方案依赖redis的从节点,redis-cluster方案不了解
synchronized关键字加在static方法和非static方法的区别不ok。
stringbuilder和stringbuffer区别ok。
redis-cluster和mongdb仅停留在会使用api,相关架构不太了解。
mysql存储引擎,了解b+树结构,但是为什么这么设计和相关细节不了解。
1.ok,了解hashmap如何解决冲突,了解resize导致的cpu飙高问题。
2.volatile ok,synchronized使用monitorenter和monitorexit指令,lock可重入锁,知道AQS,其它就不清楚了。
3.线程池参数配置ok。
4.了解top,了解如何定位线程异常导致cpu飙高问题,用过mat。
5.堆的划分ok。
6.mysql的存储引擎数据结构,myisam使用b树,不ok,innodb使用b+树,了解聚簇索引和非聚簇索引的区别,联合索引了解概念,
7.使用乐观锁解决并发问题。
1.不ok
2.不清楚线程安全;不OK
3.不清楚索引数据结构;不OK
4. 无法写出OOM的程序;不OK
1.ok,
了解hashmap的扩容时,并发环境cpu飙高,
了解concurrentMap的原理,size函数优化讲的不对,
treemap内部实现不ok。
2.不清楚线程安全;不OK
3.mysql存储引擎,innodb存储结构b树,聚簇索引,存储每行数据, 为什么用b树,因为有序,不ok;
myisam存储结构不ok;
4. 了解jvm基本概念和参数,细节不ok,没有实际经验。
5.了解top,了解jstack,了解cpu飙高的问题解决思路,听过相关的分享,没有遇到过oom相关的问题。
公司内部soa原理了解,负载均衡策略了解,了解数据压缩。
服务升降级不了解。
5.redis的cluster优缺点不ok。
7.zookeeper知道监听机制,节点类型不ok。
spring aop的实现方式ok,动态代理,cglib。
3.mysql存储引擎,数据存储结构不ok;
了解联合索引,注意事项,常用检索频率,不ok。
4.jvm了解cms原理,可达性了解,。
5.线上日志查找使用awk,
端口占用netstat,ok;
机器负载top,ok,单核负载不ok,所有线程负载不ok;
了解jstack和jmap命令。
6.kafka原理ok,了解分区概念,有使用经验。
7.spark原理ok,有使用经验。
2.string与object equal区别
1.hashmap数据结构能清楚说出,不知道扩容机制;不OK
2. 没有看过;不OK
3.只用过FixedThreadPool,优缺点不知道;不OK
4.可以用自己的话说清楚;多线程顺序问题只知道用join;不OK
5.volatile原理不知道,threadLocal没用过;不OK
6.能清楚说出3者的区别;OK
7.内存结构可以说清楚;GC不知道;OOM说不清楚;不OK
8.知道使用TOP、jstack等查看处理;OK
9.只知道单例、工厂、代理;不OK
10.HTTP method只知道get、post、put,put实际没用过;不OK 知道HTTP是网络协议及UDP,TCP是网络协议;Ok TCP请求响应握手机制;OK HTTP status,只知道200 400 500; 不OK
11.数据库隔离机制不知道;不OK 知道如何设置慢SQL,但不知道更深层的进行排查;不OK 不知道MVCC ;不OK 12.spring事务不知道,实际项目中没有用到;不OK
Java:
1)阅读过常用JDK类的源代码,了解实现逻辑;
2)对常用第三方类库非常熟悉;
3)能够自主调研、学习并应用第三方类库、插件等;
4)能及时跟进新版JAVA特性。
1.知道hashMap的数据结构,解决冲突:ok
2.jdk线程池:线程队列,线程个数;基本ok;
concurrentHashMap:分段segment锁,ok;
spring aop:两种实现方式ok。
4.联合索引基本ok;索引存储结构不ok;分库分表:使用阿里云
5.基础命令了解,linux cpu线程飙高不ok,oom溢出不ok;
日志导出ok;一般
6.soa原理ok,被谁调用,其它机制不太了解,拦截器不了解
7.使用redis实现:setnotExist + expire,基本ok
TreeMap的数据结构 TreeSet的数据结构 不清楚; 红黑树是专门解决什么问题;答不上来
CMS垃圾回收器的深度理解:回答不上来
持久带是否会发生fullgc?会,为什么,答不上来
MySQL InnoDB默认的事务隔离级别是什么?
忘记了
MySQL索引默认实现是用的什么数据结构,为什么采用这种? 记不清了
如何解决线上 环境的CPU彪高的问题?如何定位到具体的代码 ?
不怎么好,但是有思路
linux 基础命令:一般
maven release SNAPSHOT的区别 回答错误 mvn命令看依赖树 mvn dependency tree 忘记了
git命令 reset rebase的区别 no
kafka 没有用过
es 和别人一起用过,但是属于使用范畴,深度理解不ok
大转盘抽奖设计:可以写出关键算法,模块划分合理;
字符串转成数字编写代码:OK,虽然性能不好,但是没有错误;
HashMap的数据结构 HaseSet的数据结构? 不清楚 TreeMap的数据结构 TreeSet的数据结构 红黑树; 红黑树是专门解决什么问题;不清楚
java 虚拟机的深度理解:
cms垃圾回收器过程、容易出现的问题,虚拟机内存模型,jvm调优:
回答一般,对java虚拟机了解不是很深入
mysql:索引诗句结构,知道,但是不知道为啥用B+数
InnoDB默认的事务隔离级别是什么?清楚
如何解决线上 环境的CPU彪高的问题,如何定位到具体的代码 不怎么好,之前做过此类操作;
linux基础命令:ok
maven release SNAPSHOT的区别 no mvn命令看依赖树 mvn dependency tree 没有用过该命令
reset rebase的区别 回答不上来
kafka 没有用过
es 用过 是否支持横向扩展 ok
监控系统使用:zabbix
基本情况:
1. 个人介绍及项目介绍(考察沟通能力)
2. 在在乐视网及十五所负责的项目/业务情况(考察业务需求把握能力)
3. 负责项目的技术架构图(考察技术架构把握情况)
4. 团队情况和直接管理人员情况,任务开发分配情况(考察基本项目管理技能)
5. 具体技术细节提问(考察技术深度)
a)redis 基本数据结构,cluster原理,持久化原理,原子操作原理.
b)ws 聊天室稳定性,弱网环境下的处理,踩过的坑?
c)dubbo架构,服务治理的管理,对接使用问题。
d). git : rebase/merge 区别,团队使用注意点,stash 用法
6. 工作中出彩的地方和困难介绍(考察项目实战能力)
7. 大数据开发经验?
8. 职业规划和长短板
- 答:能清晰介绍个人工作内容,工作经历,项目情况,沟通能力OK
- 答:对工作内容介绍清晰,对所负责的业务实现的功能以及业务诉求把握清晰,业务把握OK
- 答:对技术架构把握OK ,画架构图比较清晰,追问:SLB 后面挂nginx再后面是web server,原因是什么,答,主要是方便增减web server节点和转换请求路径,回答基本ok,但是感觉可能公司基础框架原因对此架构更深了解稍有缺失。
- 答:团队7人,直接管理2-3人,一个前端,一个后端,开发模式是迭代式,印象:有一定的项目管理能力,在乐视没有带过大团队,在十五所带7人,类似外包开发模式,工作内容较杂。
- 答:
- redis 的数据结构熟悉,cluster了解不够深入,持久化方式了解,采用jredis对接,对redis操作原子性了解一般。
- ws 使用 netty框架,稳定性为深入了解,不能出具数据支持观点,弱网环境下问题考虑较少,采用redis订阅分发实现 聊天信息的分发,印象对架构和使用方面的问题深入思索较少。
- 架构了解,知道集群及服务治理的概念,深入了解不足,局限在使用层面。
- 使用merge ,使用rebase 无,不了解stash。
- 答:后台CPU/内存飙高的问题分析和解决,分析说明比较透彻 前端页面崩溃问题:聊天室点赞功能引发,分析相对透彻。
- 介绍 交管局项目,使用大数据发现套牌车,业务理解透彻,大数据技能及组件介绍含糊(可认为基本无深入使用经验)
- 职业规划长短板: 技术-》架构发展路径,短板:组件的深入了解不够,做业务较多。
- 聚集索引和非聚集索引有什么差别;不ok
- 2.jdk线程池原理和实现,参数了解ok,执行过程ok;
执行完后的回收机制不ok:
8.spring aop的实现原理,jdk动态代理和cglib实现
spring实现
9.mybatis插件机制不了解。
一级缓存和二级缓存的区别ok;
2.jdk线程池原理和实现,只用过,原理不知道;不OK
lock和synchronized的用法区别ok,实现原理不OK;
volatile保证内存可见性,不保证原子性;OK
线程概念:OK;sleep、wait区别 : 不OK
ThreadLocal:不清楚,没用过;不OK
3.String、StringBuffer、StringBuilder,区别原理;OK
泛型生命周期:不了解;不OK
6.mysql引擎: 说不出名字,原理知道 2种;不OK 慢查询:不知道;不OK; 排查是否走索引:知道用explain,但具体内容不清楚;不OK 索引可用情况:不确定;不OK 隔离机制:OK B+树,细节不了解;不OK
7.简单命令:scp,telnet,netstat,top,jump;OK 查看使用日志grep;OK 查看cpu负载;OK 查某个线程导致cpu飙高,引导下可以说出;OK
8.知道method几种类型:实际中只用过post,get;不OK restful没用过,不知道;不OK
6.查看使用日志awk;OK
了解top命令,每个核负载不ok,子线程负载不ok;
1.
- String StringBuffer StringBuilder 区别OK, 具体原理不OK
- hashMap的数据结构:原理能说清,key冲突知道如何解决的,新的值不知道放在链表的哪个位置
- concurrenthashmap:与HASHMAP区别OK,性能解释OK,自己模拟不出安全代码。
- equal与hashcode 区别OK,String类的equal与hashcode不知道,不OK
- 树结构不知道;不OK
2.
- 线程状态:能说出状态,具体对应不上; 不OK
- 线程等待:能说出countdown join group 等 OK
- sleep、wait区别 : 基本能说清;OK
- 死锁:生产者 消息者 模式 不太了解 不OK
- 实现线程安全:形式:
- sync : 原理OK;
- lock :了解不多 不OK
- volatile:可见、原子性;OK
- threadLocal:知道内部实现是MAP,但不知道KEY是什么 不OK
- atomic:无锁原理:OK
- 线程池:Fix, cache,区别OK,自己实现不了,原理不知道 不OK
3.
- IOC:概念OK,默认:单例 可以多例 OK
- AOP: 代理:JDK(invacationHandle) cglib(反射) OK
String、StringBuffer、StringBuilder,区别原理;OK spring事务隔离级别:能明确说出;OK IOC:OK;AOP:能说出实现原理及动态代理2种方式;OK
4.
- 大体结构OK
- 回收机制:不太清楚什么样的对象可以回收;不OK
5.
- 单例:饿、懒、枚举 静态内部类,OK
- 工厂:概念OK,类图OK
- 策略:没用过;不OK
- 状态:没用过;不OK
6.
- 引擎:innodb支持事务B+tree\mysam不支持事务 基本OK tree不OK
- 隔离机制:4种概念OK,幻读、不可重复读 弄不清楚
- 索引:是否走索引:explain 列含意:基本说出 OK
- 联合索引顺序:OK
- 加索引规则:基本OK
- redis:只用过,没有深入研究
7.
- 只用过简单命令:ssh cat tail ps top grep
CMS的过程中会产生2个最让人头痛的问题: promotion failed concurrent mode failure
能说明出现问题的原因,以及JVM如何处理 ok
MySQL联合索引使用是有什么规则?如果对A,B,C做索引,那么SQL语句写成where C=X and B=X and A=X,是否还能用到该索引?如果SQL语句写成where A=X and B>X and C=X是否还能用到该索引? ok
如何解决线上 环境的CPU彪高的问题,如何定位到具体的代码 ?是有思路,但是没有实际操作过 回答一般
grep 命令相关 ok
maven release SNAPSHOT的区别 yes mvn命令看依赖树 mvn dependency tree yes mvn clean install -U -Dmaven.test.skip=true 不编译测试版本 有点忘记了,但是有印象
git命令 reset rebase的区别 没用过rebase
kafka 用过 kafka的相关概念及用法 ok
- 答: 能清晰介绍个人工作内容,项目情况,较清晰的介绍项目的架构情况,沟通能力OK
- 答: 能较清晰的对数据流程业务流程做相关阐述,项目1人负责,问及实时监控和准实时监控,准实时监控理解清晰,实时监控阐述一般。
- 答,支付对接情况了解清楚,支付平台对内系统的对接流程阐述一般。
- 主要开发人员,负责部分支付通道的对接开发,同内部对接主要通过IM 群解决。
- 支付宝对接中存在异步回调的情况,回调校验可能出错,但是最终是成功的,造成延迟,通过任务循环方式解决
- 使用 IDEA集成的git 环境,命令行很少用,主要用merge,rebase 没用过,不清楚两种方式对团队使用造成的影响,及注意要点,stash 未使用过。
- AOP: 动态代理,用的少;CGLIB与jdk区别:不清楚;不OK
2.
- 分段锁, 了解,无法说出全局size的保证。一般
- Lock与synchronized:了解区别, 一般 countDownLatch: 不OK;
- 死锁:无法说出死锁依赖条件。不OK
能说出策略模式和单例模式注意点。OK
jvm CMS垃圾回收器的 垃圾回收过程:no
cpu彪高----》线上问题解决 有思路,在去哪的时候有过相关问题解决;
top load average 三个值的含义 no
grep 命令各种线上日志查询 ok
maven release SNAPSHOT的区别 no
git命令 reset rebase的区别 no
kafka 相关概念–不熟悉
mySql 索引的数据结构 B+数 为啥? 回答错误 红黑树数据结构:no
mySql联合索引的最左前置规则 OK
分库分表经验-易购索引的注意事项:NO
分布式系统最终一致性 ---容错处理 YES
“123456” 字符串转数字 基础不牢固,没有写出
了解Redis基本使用,但是不知道sortSet传参数。不OK
2.
- concurrenthashMap,分段锁, 了解size方法的优化
- volatile了解用法和原理,不保证原子性
- Lock与synchronized区别:基本用法的区别ok。
知道偏向锁,轻量级锁,重量级锁区别,但是说成lock的实现了
- 答: 个人介绍清晰,沟通顺畅
- 答: app开发的后端.,技术团队10人,3个后台,2android 1 ,ios 1 人,前端1人, 个人处于开发人员角色。
- 答: 能简单介绍开发流程,具体流程中自己的定位不是太清晰
- 答:redis 缓存改造,缓存学院的课程数据,缓存学员本节课程内容和LOGO 内容,追问:量化效果如何,回答:没有具体数据统计
- 答:数据结构介绍清晰,事务操作方式不太了解,持久化方式知道RDB, aof。
- 答: 不了解
- 答:没用过