时长:35min       面试官:1人(原定2人,后来有个面试官没时间)    问项目        Q:自己介绍介绍一下你最近比较熟悉的项目?        A:介绍了牛客论坛(单机版),自己写了redis到mysql的持久化,大文件上传。       Q:讲一下项目中的敏感词过滤怎么实现的?        A:前缀树,具体的不太记得了,没答上来。       Q:项目的安全问题,防注入?        A:没有这方面知识,引到了mybatis的预编译防止mysql注入。               Q:继续问了mybatis的防注入以及#{}和${}的区别                A:${}是替换,#{}使用了预编译,换成了?,可以防止预编译                Q:mybatis一定可以防注入吗?                A:不行,后面的忘记了       A:项目中的mysql、redis怎么部署的?       Q:单机版本,安装了客户端,redis准备用集群模式,大概讲了一下,略过;       A:你的jvm项目里面的java -cp讲一下?       Q:说了扫描方式,扫描jar等方式,双亲委派机制的扫描过程。       A:继续问了创建一个对象的过程?(JVM)       Q:类加载检测→内存分配→初始化0值尖头设置对象头→执行init方法→使用→垃圾回收       A:垃圾收集器       Q:serial、parNew、CMS、G1各类简单的介绍,介绍了CMS、G1中的并发标记作用,以及三色标记算法具体        A:对象头的组成?        Q:说了普通对象的组成mark word包含锁信息hash值等、class pointer指向元数据;没有说到包含长度属性,面试官做了补充;       java           Q:hashmap的put方法流程讲一下?           A:计算hash值,hash&(n-1)并讲了n要取2的幂次方的原因,扩容机制,不记得hash扰动这一步骤,面试官让可以下去了解一下。              Q:扩容的时候?              A:说2/3,面试官纠正3/4;              A:追问有112个元素你给hashmap的初始值是多少,为什么?              Q:128,解释了整数倍,面试官给了提示说是256,反应过来。              Q:hashmap线程不安全,用什么来作map线程安全?              A:Collections.synchronizedmap方法,但是一般没人用了,锁的粒度太多,现在一般用ConcurrentHashMap,讲了底层实现,1.7还是多久用的分段锁,加锁对象对segment的元素,并发度就是segment的大小,和现在的数据结构与hashmap一致,用了CAS和经过升级后的synchronize。          MySQL      看了一下时间过了30分钟了,以为不会问了,然后问了       A:MySQL带来的并发问题,事务隔离级别,怎么解决这些问题的?        Q:大致只回答了名字,没回答细节,一下懵了。   反问       Q:岗位会不会从成都从成都换到其他地方?        A:一般不会,要换会沟通。    面试官人挺好的,在期间问了专业问题,问计科学没学java,研究方向,数据挖掘的话有没有用过docker。    结束! 
点赞 1
评论 3
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务