当前位置: 首页 > news >正文

中电金信-杭州工商银行|面试真题|2024年

中电金信-杭州工商银行

  1. JAva集合用过哪些?

    • ArrayList、LinkedList、HashSet、TreeSet、HashMap、LinkedHashMap、ConcurrentHashMap
  2. Arraylist和linkbist区别

    • ArrayList底层是数据,查询快,增删慢,线程不安全,效率高
    • LikedList 底层是双向链表,查询慢,增删快,线程不安全,效率高
    • Vector:底层数组,查询快,增删慢,线程安全
  3. hashmap和Hashset的区别,以及査询时问复杂度?

  • HashMap实现了Map接,存储是key,value结构,key不能重复,value可以重复。
  • HashSet实现了Set接口,存储是对象,单列结构,不能重复。
  • 都是基于散列函数, 时间复杂度 O(1) 但是如果太差的话是桶内元素小于6个O(n),大雨8个O(logN)
  • TreeSet==>O(log(n))
  1. 他们是线程安全的吗 ? 如果让你改成线程安全的会怎么做?

  • 1、使用线程安全的集合ConcurrentHashMap
    • 使用volatile修饰节点数组,保证其可见性,禁止指令重排。
    • 做插入操作时,首先进入乐观锁,
      然后,在乐观锁中判断容器是否初始化,
      如果没初始化则初始化容器,
      如果已经初始化,则判断该hash位置的节点是否为空,如果为空,则通过CAS操作进行插入。
      如果该节点不为空,再判断容器是否在扩容中,如果在扩容,则帮助其扩容。
      如果没有扩容,则进行最后一步,先加锁,然后找到hash值相同的那个节点(hash冲突),
      循环判断这个节点上的链表,决定做覆盖操作还是插入操作。
      循环结束,插入完毕。
    • ConcurrentHashMapget()方法是不加锁的,为什么可以不加锁?因为tablevolatile关键字修饰,保证每次获取值都是最新的。
  • 2、使用集合工具类 Collections.synchronizedList
  1. 对锁有了解吗?synchronized和Lock的区别是什么?

​ 有了解,锁的分类有公平锁,非公平/可重入锁,不可重入锁/单机锁,分布式锁/悲观锁,乐观锁

  • Synchronized 无法判断获取锁的状态,Lock 可以判断是否获取到了锁

  • synchronized 内置的Java关键字,Lock 是一个Java类

  • Synchronized 会自动释放锁, Lock 必须要手动释放锁,如果不释放锁,死锁

  • Synchronized 可重入锁不可以中断的,非公平;Lock 可重入锁,可以判断锁,可以自己设置是否公平。

  1. 多线程有用过吗?创建线程的方式有哪些?怎么启动线程?

  • 有用过,每日报表
  • 继承Thread,实现Runnable重写run方法,实现Callable类重写Call方法。
  • 启动线程使用start方法来启动,线程池是使用submit和exceute方法提交
  1. 数据库优化有做过吗?比如:S0L性能调优,分析思路和过程?

  • explain关键字
  1. redis有了解吗?分布式锁的实现,常用的数据类型有哪些?

    • String,zset,set,hash,list
  2. 分布式项目中的事务控制怎么做的?

    1.2PC 2.本地消息表 3.3PC 4.TCC 5.消息事务+最终一致性

  3. 你们开发自测怎么做的?

    参考:单元测试、测试案例要覆盖

覆盖测试,单元测试*,联调测试*,常见错误集合,最后测试统一测试压测

不同的关键字通过相同的哈希函数计算出相同的哈希地址

http://www.lryc.cn/news/402035.html

相关文章:

  • 搞定前端面试题——ES6同步与异步机制、async/await的使用以及Promise的使用!!!
  • Redis数据结构--跳跃表 Skip List
  • 线状激光模组定制厂家哪家好?具体怎么收费?
  • 【Python游戏】编程开发贪吃蛇游戏(第一期)
  • 【机器学习入门】拥抱人工智能,从机器学习开始
  • 【React打卡学习第一天】
  • matlab PID tuner整定工具箱的用法
  • 富格林:可信办法阻挠虚假受骗
  • OPPO 2024届校招正式批笔试题-后端(C卷)
  • HTTP请求五类状态码详细介绍,以及部分处理思路
  • Log4j的原理及应用详解(三)
  • 【深度学习】PyTorch框架(4):初始网络、残差网络 和密集连接网络
  • 【关于PHP性能优化,内存优化,日志工具等问题处理】
  • R-CNN、Fast R-CNN和Faster R-CNN:目标检测的进化之路
  • Yolov8网络结构学习
  • 5.5 软件工程-系统测试
  • 网络故障处理及分析工具:Wireshark和Tcpdump集成
  • UDP客户端、服务端及简易聊天室实现 —— Java
  • 下载安装nodejs npm jarn笔记
  • Calibration相机内参数标定
  • MySQL源码安装
  • gtest单元测试:进程冻结与恢复管理模块的单元测试实现
  • Flutter动画详解第二篇之显式动画(Explicit Animations)
  • python常用模块(JSON与pickle、Os模块)
  • MMLab-dataset_analysis
  • 艺术与技术的交响曲:CSS绘图的艺术与实践
  • 基于 JAVA 的旅游网站设计与实现
  • 【C++深度探索】二叉搜索树的全面解析与高效实现
  • Java实习记录 1 ——初入职场
  • opencv—常用函数学习_“干货“_3