ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

面试题day22

2022-08-04 19:00:48  阅读:133  来源: 互联网

标签:面试题 缓存 hash redis day22 线程 key 重写


广联达

秋招面试22届java面经

  • 自我介绍

  • 聊了聊项目

  • http与https,分别是什么,区别是什么

    端口、ssl加密、证书

  • https的请求方式

  • 封装继承多态

    将bean封装,提供调用方法、子类继承父类、重载和重写

  • hashmap底层,扩容机制,容量为什么是2的幂

    • 扰动函数
      • (h = key.hashCode()) ^ (h >>> 16); 低16位与高16位做异或操作^,减少hash碰撞
    • 扩容
      • 链表引发
        • 链表长度大于8,判断是否转为红黑树
          • 数组大小大于64,转红黑树
          • 数组大小小于64,扩容
      • 数组引发
        • 数组元素大于容量与扩容因子之积,扩容
    • put
      • HashMap 通过 key 的 hashCode 经过 hash() 处理过后得到 hash 值,然后通过 (n - 1) & hash 判断当前元素存放的位置
        • 如果当前位置无元素的话直接放在当前位置
        • 如果当前位置有元素的话,通过key的equals方法进行判断,如果返回true的话直接更新当前位置,如果false的话需遍历链表,存在即覆盖,否则新增,此时链表时间复杂度为O(n)
  • 数据库怎么优化

    • 多表关联最多2张
    • 使用left join或right join代替not in和exist
    • 不使用外键和触发器
    • 查找避免索引失效
    • 逻辑删除
    • 更新使用id作为条件,更新非索引字段
    • 增加 id有顺序
  • 数据库索引

    b+树、hash索引、数组索引

  • java虚拟机组成

    方法区 堆

    本地方法栈、虚拟机栈、程序计数器、直接内存

  • 怎么判断一个对象要不要回收

    引用计数法、可达性分析

  • 什么是GC roots

    本地方法栈、虚拟机栈、静态变量、常量

  • 垃圾回收器

  • 进程和线程的理解

    进程是资源分配的基本单位。线程是独立调度的基本单位。

  • 创建线程的几种方式

    thread、runnable、callable

YY直播

Java开发一面:

  • 自我介绍

  • 常用集合类,然后挑一个熟悉的介绍

    arraylist、linkedlist、hashmap、hashset、treeset、treemap

  • JVM垃圾回收算法,垃圾回收过程

    分代、复制、清除、整理

  • MySQL的事务四大特性、索引底层实现、事务隔离级别实现

    acid

    b+树

    锁+mvcc

  • Redis的五大对象,然后他们底层的数据结构

    string

    • int
    • embstr
    • raw

    list

    • ziplist
    • linkedlist

    hash

    • hash
    • ziplist

    set

    • hash
    • intset

    zset

    • skiplist
    • ziplist
  • 计算机网络OSI七层模型,介绍每一层的作用

    物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

  • 介绍项目(项目描述、自己负责什么,遇到的难点,如何解决的,你负责的模块,你当队长是怎么分配工作内容和管理的,挑一个模块细讲)

  • 项目中为什么要拿Reids做缓存,考量是什么

    中心化、支持数据类型丰富

  • 怎么实现缓存一致性的,怎么解决

    先修改数据库、再删除缓存

    先删除缓存、再修改数据库、在删除缓存(延时双删)

二面

  • 介绍一下项目

  • 项目有上线吗?

  • 项目整个流程

  • 项目模块是怎么划分的,考量?

  • api模块和网关模块是干嘛的?说说网关作用,一个请求来了,网关如何处理?

    API网关是用户与服务器之间的连接器。

  • Nacos作用?

  • 物流、支付怎么做的,讲讲。

  • 用户支付了,怎么保证支付成功的,网络问题怎么办?

  • 用了ES是嘛,为什么要用ES?效率为什么比Mysql快?说一下他们各自的使用场景

  • 用了Redis来存储是吗?为什么要用redis,考量是什么?他的作用是什么?

    redis是基于内存存储计算,性能速读远超mysql等数据库,计算速度很快,所以在使用的时候数据响应很快,

    redis支持多种多样的数据结构,如字符串、tree、ztree、map、等,这些丰富的数据结构,可以满足我们在开发工作大部分常见数据结构,进行存储。

    redis丰富的api支持,让我们在使用的时候,常见的查询存储都能够很方便的使用,支持自定的查询的api等等

    redis的生态比较成熟,很多家大型公司都在使用,很多相关的知识扩展以及分析

    redis分布式集群化扩展性极高,而且稳定,能够支撑大量的数据吞吐,只要硬件支持。

  • Redis有哪些作用一般?

    计数器、分布式锁、缓存、排行榜

  • 讲讲分布式锁怎么实现的?

    • 关键命令

      • SETNX
        • SETNX key val:当且仅当key不存在时,set一个key为val的字符串,返回1;若key存在,则什么都不做,返回0。
      • EXPIRE
        • EXPIRE key timeout:为key设置一个超时时间,单位为second,超过这个时间锁会自动释放,避免死锁。
      • DELETE
        • DELETE key:删除key
    • 实现思想

      • 获取锁的时候,使用setnx加锁,并使用expire命令为锁添加一个超时时间,超过该时间则自动释放锁,锁的value值为一个随机生成的UUID,通过此在释放锁的时候进行判断。

      • 获取锁的时候还设置一个获取的超时时间,若超过这个时间则放弃获取锁。

      • 释放锁的时候,通过UUID判断是不是该锁,若是该锁,则执行delete进行锁释放。

  • Redis为什么可以在多线程下做分布式锁

    因为Redis是单线程处理的

  • spring?说说spring相比传统的开发好处是什么?

    ioc、aop

  • 说说你用过的注解

  • spring事务注解用过嘛?在什么情况下用的?什么情况下这个注解会失效?

    aop性质导致方法必须为public

    设置异常为exception

    隔离级别

    传播行为

  • spring特点,IOC的作用,好处是什么,为什么?

    Spring IOC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。

  • 用过ping吗?

  • 计算机网络,四层模型?具体讲讲传输层和网络层干嘛的?

    应用层、传输层、网络层、数据链路层

    https、tcp\udp、ip

  • 网络层不传输数据吗?

    传输,无连接、非可靠、不确认

渤海银行

提前批面经

  • 什么是反射?

    反射就是在运行时才知道要操作的类是什么,并且可以在运行时获取类的完整构造,并调用对应的方法。

  • 重载和重写的区别,多态的两个特性,子类能重写父类构造方法吗,为什么?

    方法重载、子类重写

    子类不能重写父类构造方法、重写必须保证参数个数、参数类型、参数顺序一致、构造不满足条件

  • 线程池是什么?

    7大参数,4中拒绝策略,和java提供好的4种线程池以及优缺点

  • redis中有1E条数据,找出1W条前缀相同数据。

    分批次Scan无阻塞提取列表,每次执行返回少量元素,非递增小心要去重,存入HashSet

  • redis线程模型

    IO多路复用、单线程的文件派发模型

标签:面试题,缓存,hash,redis,day22,线程,key,重写
来源: https://www.cnblogs.com/faetbwac/p/16551672.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有