最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

10.12

互联网 admin 3浏览 0评论

10.12

自我介绍

我的建议是:如果没有特别认真组织过语言的,把简历上的内容稍微提一下就ok了!
然后尽量:提一下个人的优点和缺点

集合

问了我是否了解过集合中hashmap的扩容和put方法的原理(他原话是有没有看过这些内容的源码,请讲一讲)

参考答案:
首先我讲了一些补充的知识例如:hashmap1.7版本和1.8+版本的区别以及三种构造方法

  1. hashmap扩容:
    ①.底层维护的是一个Node类型的数组table ,默认为null
    transient Node<K,V>[] table;
    ②.加载因子是0.75
    static final float DEFAULT_LOAD_FACTOR = 0.75f;
    ③.当执行第一次添加的时候,扩容table为16,临界值为16x加载因子0.75=12
    static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16
    ④.扩容倍数为2倍
    ⑤.当数组长度>=64且当前链表长度>8,链表转为红黑树(红黑树的特征?)

2.put方法原理
①.当添加了一个key和value的时候,通过key去hash找到所在的数组的索引
②.判断该索引上有无元素,如果无,则直接添加
③.如果有元素,判断加入的元素的key和该索引上元素的key是否相等,如果相等则直接替换该元素,如果不相等,则需要判断是树结构还是链表结构,做出相应处理,如果添加时发现容量不够,则需要扩容

JVM

JVM内存模型,垃圾回收算法(MinorGC如何在新生代进行回收垃圾),如果在垃圾回收时新生代有一个很大很大的对象;

线程私有: 虚拟机栈 程序计数器
线程共享:本地方法区 元空间(方法区) 堆

2 .新生代:Eden区 ,S0区,S1区 垃圾收集过程:新来的垃圾都会放在Eden区和S0区。第一次回收的时候,将这两个区域的存活的对象放到s1区,并替换s0和s1区,然后继续对eden区和s1区进行垃圾回收,最后将存活的对象放到另一块空白的区域,重复以上过程;

3 .最后一个问题回答的模棱两可,我说的是jvm对象分配有个默认条件 当一个对象达到某个区域的内存一半以上会直接放到了老年代…

Redis

Redis哨兵机制 ,以及当主节点挂了之后,哨兵的选举方案

首先哨兵是基于主从模式的 ,例如我们配置了一个一主三从,此时启动一个哨兵,通过sentinel monitor mymaster 172.16.xx.xxx 6379 1 监听一个master主机,后面带的参数1是指只要有一票哨兵通过即可上位
选举条件:1.根据优先级别(可在redis.conf中配置);
2.根据偏移量,优先选择偏移量较大的;
3.若前两个条件都相等,会根据runid最小的(随机的不重复)

排序算法

问了解过哪些排序算法 ,原理是否还清晰

我只讲了 插入和快排,答得不是很标准就不讲了,各位可以百度

Spirngboot

有没有了解过springboot的启动加载?

Mysql

哪些字段适合建立索引 ? 索引的使用规则?

  1. 经常做查询的列适合做索引
  1. 避免在索引列上进行运算操作 ;通过or连接 的前后都必须是索引 ;尽量使用前缀索引;尽量创建联合索引;

这里有个性别的字段,适不适合做索引?

不适合,因为索引的初衷是为了快速检索,性别最多三种,男、女、未知;所以通过性别字段建立索引没有任何意义

Nginx

Nginx的反向代理 和 动静分离的静指的是什么 (我项目中写的内容)

反向代理是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

动静分离的静指的是静态资源 css js 图片页面等等(这个答案不唯一,我讲的是我项目所做的动静分离)

漏桶算法

他问了项目中的漏铜算法怎么实现的

这个没答上来 ,项目做的太久了 把漏铜算法原理简述了一遍

总结

面试官人挺好的 很能聊 不严肃

问了很多“会不会”底层的一些问题 ----偏底层

照着简历来问的 -----根据项目中使用的技术来追问偏多

10.12

自我介绍

我的建议是:如果没有特别认真组织过语言的,把简历上的内容稍微提一下就ok了!
然后尽量:提一下个人的优点和缺点

集合

问了我是否了解过集合中hashmap的扩容和put方法的原理(他原话是有没有看过这些内容的源码,请讲一讲)

参考答案:
首先我讲了一些补充的知识例如:hashmap1.7版本和1.8+版本的区别以及三种构造方法

  1. hashmap扩容:
    ①.底层维护的是一个Node类型的数组table ,默认为null
    transient Node<K,V>[] table;
    ②.加载因子是0.75
    static final float DEFAULT_LOAD_FACTOR = 0.75f;
    ③.当执行第一次添加的时候,扩容table为16,临界值为16x加载因子0.75=12
    static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16
    ④.扩容倍数为2倍
    ⑤.当数组长度>=64且当前链表长度>8,链表转为红黑树(红黑树的特征?)

2.put方法原理
①.当添加了一个key和value的时候,通过key去hash找到所在的数组的索引
②.判断该索引上有无元素,如果无,则直接添加
③.如果有元素,判断加入的元素的key和该索引上元素的key是否相等,如果相等则直接替换该元素,如果不相等,则需要判断是树结构还是链表结构,做出相应处理,如果添加时发现容量不够,则需要扩容

JVM

JVM内存模型,垃圾回收算法(MinorGC如何在新生代进行回收垃圾),如果在垃圾回收时新生代有一个很大很大的对象;

线程私有: 虚拟机栈 程序计数器
线程共享:本地方法区 元空间(方法区) 堆

2 .新生代:Eden区 ,S0区,S1区 垃圾收集过程:新来的垃圾都会放在Eden区和S0区。第一次回收的时候,将这两个区域的存活的对象放到s1区,并替换s0和s1区,然后继续对eden区和s1区进行垃圾回收,最后将存活的对象放到另一块空白的区域,重复以上过程;

3 .最后一个问题回答的模棱两可,我说的是jvm对象分配有个默认条件 当一个对象达到某个区域的内存一半以上会直接放到了老年代…

Redis

Redis哨兵机制 ,以及当主节点挂了之后,哨兵的选举方案

首先哨兵是基于主从模式的 ,例如我们配置了一个一主三从,此时启动一个哨兵,通过sentinel monitor mymaster 172.16.xx.xxx 6379 1 监听一个master主机,后面带的参数1是指只要有一票哨兵通过即可上位
选举条件:1.根据优先级别(可在redis.conf中配置);
2.根据偏移量,优先选择偏移量较大的;
3.若前两个条件都相等,会根据runid最小的(随机的不重复)

排序算法

问了解过哪些排序算法 ,原理是否还清晰

我只讲了 插入和快排,答得不是很标准就不讲了,各位可以百度

Spirngboot

有没有了解过springboot的启动加载?

Mysql

哪些字段适合建立索引 ? 索引的使用规则?

  1. 经常做查询的列适合做索引
  1. 避免在索引列上进行运算操作 ;通过or连接 的前后都必须是索引 ;尽量使用前缀索引;尽量创建联合索引;

这里有个性别的字段,适不适合做索引?

不适合,因为索引的初衷是为了快速检索,性别最多三种,男、女、未知;所以通过性别字段建立索引没有任何意义

Nginx

Nginx的反向代理 和 动静分离的静指的是什么 (我项目中写的内容)

反向代理是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

动静分离的静指的是静态资源 css js 图片页面等等(这个答案不唯一,我讲的是我项目所做的动静分离)

漏桶算法

他问了项目中的漏铜算法怎么实现的

这个没答上来 ,项目做的太久了 把漏铜算法原理简述了一遍

总结

面试官人挺好的 很能聊 不严肃

问了很多“会不会”底层的一些问题 ----偏底层

照着简历来问的 -----根据项目中使用的技术来追问偏多

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论