HashMap 底层数据结构和扩容机制面试连珠炮 平衡二叉树,又叫AVL树,虽然查询效率也很快,但是AVL树要遵循十分严格的平衡条件,即左右子树的高度差不超过1,为了达到这样的平衡条件,在添加或者删除树的节点是,需要经过多次左旋或右旋操作才能复衡。而红黑树没有严格遵守这样的平衡条件。key 如果为null,哈希值就为0,这里说明HashMap是可以接受key为null,从而说明HashSet也可以接收key为null,因为HashSet就是HashMap去掉value那一半。
求字符 ‘a‘ 和 ‘b‘ 组成的,最大长度为n的字符串中字典序第 k 个字符串 既然用到了树数据结构,这里可以用回溯法的思想来解决这道问题,先遍历左子节点,即先获取字符a,然后再遍历右子节点,即获取字符b。求字符 ‘a’ 和 ‘b’ 组成的,最大长度为n的字符串中字典序第 k 个字符串。先来解释一下这个题目,假设最大长度为3,那么由字符。
牛客网项目总结 下面这幅图是牛客网项目的架构图,最下层是Spring Boot,表示我们所有的技术都是基于Spring Boot,上面一层是Spring,Spring上面是Spring MVC、Spring MyBatis 和 Spring Security。数据库访问的问题,通过Spring Security来管理我们项目中的安全层面的这个内容来管理我们项目中的权限,这三个技术都是基于Spring之上的。由Spring进行整合。通过Spring MVC 解决前后端请求交互的问题,通过Spring MyBatis解决。
Java 线程池介绍 线程池是Java并发编程中的一种重要工具,其主要功能是有效地管理和复用线程资源,以避免频繁创建和销毁线程所带来的性能开销。线程池的创建方式有自动和手动两种。虽然 JDK 提供了Executors工具类来简化线程池的创建,但我们在实际开发中,最好手动创建线程池业务需求的差异:自动创建的线程池(如等)是根据通用场景设计的,无法完全契合我们具体的业务需求。手动创建线程池可以根据业务场景灵活设置线程池的参数。自定义线程工厂:通过自定义线程工厂,我们可以为线程设置有意义的名称,方便后续的调试和日志分析。
Java 子类继承父类,构造方法调用规则 在Java中,当一个类去继承另一个类时,子类的构造方法必须调用父类的构造方法,以确保父类的成员变量和资源能够正确初始化。这是因为父类的构造方法负责初始化父类的成员变量,子类构造方法负责初始化子类的成员变量。因为子类没有显示地调用父类的构造函数。下面这段代码可以正常运行。
线程池八大拒绝策略 拒绝策略特点适用场景调用者线程执行被拒绝的任务,减轻线程池压力。并发量较小且不允许任务丢失的场景,任务执行时间较短。抛出异常,任务提交失败时明确反馈。需要明确处理任务提交失败的场景,适合对任务失败敏感的系统。静默丢弃被拒绝的任务,不抛出异常。对任务丢失不敏感的场景,如日志收集、监控数据等。丢弃队列中最旧的任务,优先处理新提交的任务。需要优先处理新任务的场景,如实时性要求较高的系统。Dubbo记录详细的日志和堆栈信息,帮助快速定位问题,抛出异常。
Spring AOP中有哪些概念,如何理解? 切面(Aspect):封装横切关注点的模块。连接点(Join Point):程序执行的某个点(Spring AOP 中是方法的执行)。通知(Advice):在连接点上执行的操作。切点(Pointcut):定义在哪些连接点上应用通知。目标对象(Target Object):被 AOP 增强的对象。代理(Proxy):AOP 框架生成的对象,用于实现切面逻辑。织入(Weaving):将切面应用到目标对象的过程。
网络五层模型:物理层、数据链路层、网络层、传输层、应用层,分别解决了什么问题? 层次解决的问题物理层如何通过物理介质传输比特流(0和1)?数据链路层如何在同一局域网内可靠地传输数据帧?如何检测和纠正传输错误?网络层如何跨越多个网络传输数据包?如何为设备分配逻辑地址并选择最佳传输路径?传输层如何确保端到端的可靠数据传输?如何控制流量并处理传输中的错误?应用层如何为用户提供网络应用服务?如何处理数据格式、用户认证、加密等问题?每一层都依赖于下层提供的服务,并为上层提供服务。通过这种分层结构,网络通信的复杂性被分解为多个相对独立的部分,使得网络设计和实现更加灵活和模块化。
图解MySQL 1-22 章节相关总结 查 information_schema 库的 innodb_trx 表–skip-grant-tables 参数–skip-networking 参数慢查询日志(slow log)show indexexplainaliasmonth()CAST一句话总结章节。
com.hellobike.soa.common.exception.RpcException: RpcException Status:1101问题解决 【代码】com.hellobike.soa.common.exception.RpcException: RpcException Status:1101问题解决。
com.hellobike.soa.common.exception.RpcException: RpcException Status:2301, Message:Undeclared interf 在atlas静态配置,soa.json中添加相应的服务。
解决 com.hellobike.druid.exception.DruidInternalException: [Hbdl] Write Body To Http Connection Error 今天在实习公司跑单测时候,一直报错误,同事们都可以正常运行,最后是关掉公司内网vpn解决的。
线程池的工作队列对比 SynchronousQueue: 一个不存储元素的阻塞队列,每个插入操作必须等待一个相应的删除操作,反之亦然。当队列中存在未被消费的元素时,插入操作会被阻塞。当队列容量达到上限时,后续的插入操作会被阻塞。PriorityBlockingQueue: 基于优先级的无界阻塞队列,它会根据元素的优先级进行排序。当队列为空时,获取操作会被阻塞。ArrayBlockingQueue: 基于数组的有界阻塞队列,它的容量是固定的,当队列已满时,后续的插入操作会被阻塞。