• 1Synchronized是一种对象锁,保证同一时间只有一个线程执行被修饰的方法和代码块。 2同步方法和同步代码块用于实现线程间的同步,确保多线程环境下的代码安全执行. 同步方法:当一个方法被ACC_Synchronized所标记时,线程调用该方...
  • 1Synchronized是一种对象锁,保证同一时间只有一个线程执行所修饰的方法和代码块。 2同步方法和同步代码块用于实现线程间的同步,确保多线程环境下的代码安全执行. 同步方法:当一个方法被ACC_Synchronized所标记时,线程调用该方...
  • HashMap在JDK1.8之前是数组+链表,JDK1.8以后引入了红黑树。 链表转为红黑树需要满足两个条件:1. HashMap的容量大于等于64;2. 链表的节点数量大于等于8. 当调用removeTreeNode方法删除红黑树的节点时后,如...
  • Servlet是单实例多线程的,所以如果没有公共属性的话,是线程安全的。若有公共资源,具体可以有一下几点: 1.可以将全局变量转化为局部变量,避免线程竞争。 2.加锁来确保同一时间只有一个线程可以访问共享资源。 3.使用线程安全的数据结构,如Co...
  • ArrayList内部是由Object[]数组实现的,默认容量是10,当向ArrayList中添加元素时,如果新增元素会导致容量不足,就会触发扩容操作。 有四个步骤 1.计算新的容量,新容量默认是当前容量的1.5倍。 2.判断是否需要继续扩容,如...
  • HashMap在JDK1.8之前是数组加链表。在JDK1.8之后是数组加链表加红黑树。 主要分为hashcode()方法和equals()方法。 put操作: hashcode方法内使用(n-1)&hash是找到元素应该存储的位置。 如果...
  • 有序集合对象有2种编码方案,当同时满足以下条件时,集合对象采用ziplist编码,否则采用skiplist编码: 有序集合保存的元素数量不超过128个; 有序集合保存的所有元素的成员长度都小于64字节。 其中,ziplist编码的有序集合采用压缩...
  • 假设我们正在构建一个简单的学生信息管理系统。 需求分析:理解项目的核心功能,确定系统需要完成的任务。 设计阶段:创建UML图(用例图、类图、活动图等)来描述系统的架构和行为。 编码实现:根据设计文档,用Java语言编写代码实现系统的各项功能。 测...
  • 包含两个方面 方面一,是从sql性能角度分析,包括增删查改4个方面,包括: ●新增,批量插入用一条sql语句,索引数量要合理,每个索引新增的时候都有性能影响 ●删除,不要直接物理删除,可以逻辑删除(有个is_deleted类似的字段,默认值为0表...
  • 数据结构: ArrayList是基于数组实现的动态数组,支持随机访问元素,但插入和删除操作效率较低。 LinkedList是基于双向链表实现的,插入和删除操作效率较高,但随机访问元素效率较低。 访问效率: ArrayList支持随机访问元素,时间...