中电金信-杭州工商银行|面试真题|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.mzph.cn/web/46238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【概率论三】参数估计:点估计(矩估计、极大似然法)、区间估计

文章目录 一. 点估计1. 矩估计法2. 极大似然法2.1. 似然函数2.2. 极大似然估计法 3. 评价估计量的标准3.1. 无偏性3.2. 有效性3.3. 一致性 二. 区间估计1. 区间估计的概念2. 正态总体参数的区间估计 参数估计讲什么 由样本来确定未知参数参数估计分为点估计与区间估计 一. 点估…

算法:二叉树相关

目录 题目一:单值二叉树 题目二:二叉树的最大深度 题目三:相同的树 题目四:对称二叉树 题目五:另一棵树的子树 题目六:二叉树的前序遍历 题目七:二叉树遍历 题目八:根据二叉…

linux搭建mysql主从复制(一主一从)

目录 0、环境部署 1、主服务器配置 1.1 修改mysql配置文件 1.2 重启mysql 1.3 为从服务器授权 1.4 查看二进制日志坐标 2、从服务器配置 2.1 修改mysql配置文件 2.2 重启mysql 2.3 配置主从同步 2.4 开启主从复制 3、验证主从复制 3.1 主服务器上创建test…

微服务拆分流程 (黑马商城拆分商品服务)

1. 创建新module - maven模块,并引入依赖(可以复制 把不需要的依赖删掉 ) 2. 新建包com.hmall.xx(业务名),添加和修改启动类,新建mapper包、domain包 - service包 - controller包 3. 拷贝并修…

4款良心软件,免费又实用,内存满了都舍不得卸载

以下几款高质量软件,若是不曾体验,实在是遗憾可惜。 PDF Guru 这是一款开源免费的PDF编辑软件,打开之后功能一目了然。 可以拆分、合并PDF,也可以给PDF添加水印和密码,同时也可以去除别人PDF里的水印或密码&#xff0…

HouseCrafter:平面草稿至3D室内场景的革新之旅

在室内设计、房地产展示和影视布景设计等领域,将平面草稿图快速转换为立体的3D场景一直是一个迫切的需求。HouseCrafter,一个创新的AI室内设计方案,正致力于解决这一挑战。本文将探索HouseCrafter如何将这一过程自动化并提升至新的高度。 一、定位:AI室内设计的革新者 Ho…

Scala之OOP讲解

Scala OOP 前序 Scala 为纯粹OOP1、不支持基本类型:一切皆为对象 Byte,Int,...2、不支持静态关键字:static 3、支持类型推断【通过判断泛型的父子关系来确定泛型类的父子关系>协变,逆变,不变】和类型预定, 动静…

【iOS】类对象的结构分析

目录 对象的分类object_getClass和class方法isa流程和继承链分析isa流程实例验证类的继承链实例验证 类的结构cache_t结构bits分析实例验证属性properties方法methods协议protocolsro类方法 类结构流程图解 对象的分类 OC中的对象主要可以分为3种:实例对象&#xf…

【React】JSX基础

一、简介 JSX是JavaScript XML的缩写,它是一种在JavaScript代码中编写类似HTML模板的结构的方法。JSX是React框架中构建用户界面(UI)的核心方式之一。 1.什么是JSX JSX允许开发者使用类似HTML的声明式模板来构建组件。它结合了HTML的直观性…

TDesign组件库日常应用的一些注意事项

【前言】Element(饿了么开源组件库)在国内使用的普及率和覆盖率高于TDesign-vue(腾讯开源组件库),这也导致日常开发遇到组件使用上的疑惑时,网上几乎搜索不到其文章解决方案,只能深挖官方文档或…

2024.7.17 ABAP面试题目总结

2024.7.17 用的SAP什么平台,S4/HANA吗,有用过ECC吗 S4/HANA,没用过ECC 会不会CDS VIEW 不会 会不会FIORI 不会 银企直连里面的逻辑了解不 不了解,做过,但是只能算很简单的修改 SAP做增强,如何创建…

网络安全-网络安全及其防护措施7

31.防病毒和恶意软件保护 防病毒和恶意软件防护的定义和作用 防病毒和恶意软件防护是一种保护计算机和网络免受病毒、木马、间谍软件等恶意软件侵害的安全措施。通过防护措施,可以检测、阻止和清除恶意软件,确保系统和数据的安全。其主要作用包括&…

C++右值引用和移动语义

目录 概念: 左值引用和右值引用 概念: 注意: 左值引用的意义 作函数参数 函数引用返回 右值引用的意义 诞生背景 移动构造 移动赋值 其他应用 万能引用和完美转发 默认的移动构造和移动赋值 概念: 左值:顾…

List数据的几种数据输出方式

一、问题引入 在Java中&#xff0c;查询List集合是一项常见的任务&#xff0c;它可以通过多种方式实现&#xff0c;以满足不同的需求。下面&#xff0c;List数据的几种数据输出方式。 二、实例 /*** 查询所有用户信息* return*/ List<User> getAllUser(); <select…

Git【撤销远程提交记录】

在实际开发中&#xff0c;你是否遇到过错误的提交了代码&#xff0c;想要删掉本次提交记录的情况&#xff0c;你可以按照如下方法实现。 1、使用 git revert 如果你想要保留历史记录&#xff0c;并且对远程仓库其他使用者的影响最小&#xff0c;你可以使用 git revert 命令。这…

conda 使用

首先要安装Miniconda的环境 下面是一下命令关于如何使用conda 查看当前环境列表&#xff1a; conda env list 创建环境不指定路径&#xff1a; conda create --name p38 python3.8 创建新环境并指定路径&#xff1a; conda create --prefix /data/p38 python3.8激活新环境&a…

VulnHub:CK00

靶场搭建 靶机下载地址&#xff1a;CK: 00 ~ VulnHub 下载后&#xff0c;在vmware中打开靶机。 修改网络配置为NAT 处理器修改为2 启动靶机 靶机ip扫描不到的解决办法 靶机开机时一直按shift或者esc直到进入GRUB界面。 按e进入编辑模式&#xff0c;找到ro&#xff0c;修…

Kubernetes网络性能测试-calico插件环境

Kubernetes 网络性能测试-calico插件环境 本次主要针对calico网络插件k8s集群的网络性能进行摸底及测试方法探索实践。 1. 测试准备 1.1 测试环境 测试环境为VMware Workstation虚拟机搭建的一套K8S环境&#xff0c;版本为1.28.2&#xff0c;网络插件使用calico&#xff0c…

6Python的Pandas:数据读取与输出

Pandas是一个强大的Python数据分析库&#xff0c;提供了读取和输出数据的多种功能。以下是一些常见的数据读取与输出方法&#xff1a; 1. 读取CSV 读取数据 从CSV文件读取数据 import pandas as pd# 读取CSV文件 df pd.read_csv(file_path.csv) print(df.head())从Excel文…

Flutter 状态管理调研总结

一, 候选状态管理组件简介 0. flutter_hooks 一个 React 钩子在 Flutter 上的实现&#xff1a;Making Sense of React Hooks 钩子是一种用来管理 Widget 生命周期的新对象&#xff0c;以减少重复代码、增加组件间复用性&#xff0c;允许将视图逻辑提取到通用的用例中并重用&…