• 工厂模式的用意是定义一个创建产品对象的工厂接口,将实际创建性工作推迟到子类中。工厂模式可分为简单工厂、工厂方法和抽象工厂模式。注意,我们常说的23种经典设计模式,包含了工程方法模式和抽象工厂模式,而并未包含简单工厂模式。另外,我们平时说的工厂模式...
  • 虚拟内存分成五大区,分别为栈区、堆区、全局区(静态区)、文字常量区(常量存储区)、程序代码区。五大区特性如下: 栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 堆区(heap):...
  • 包含两个方面: 方面一,从sql性能角度分析,包括增删改查4个方面: 增:使用一条sql语句批量插入数据,索引数量要合理,因为每个索引新增的时都有性能影响。 删:不要直接物理删除,可以逻辑删除,原因是索引需要进行回表操作,物理删除可能会导致死锁。...
  • 1Synchronized是一种对象锁,保证同一时间只有一个线程执行被修饰的方法和代码块。 2同步方法和同步代码块用于实现线程间的同步,确保多线程环境下的代码安全执行. 同步方法:当一个方法被ACC_Synchronized所标记时,线程调用该方...
  • 1Synchronized是一种对象锁,保证同一时间只有一个线程执行所修饰的方法和代码块。 2同步方法和同步代码块用于实现线程间的同步,确保多线程环境下的代码安全执行. 同步方法:当一个方法被ACC_Synchronized所标记时,线程调用该方...
  • HashMap在JDK1.8之前是数组+链表,JDK1.8以后引入了红黑树。 链表转为红黑树需要满足两个条件:1. HashMap的容量大于等于64;2. 链表的节点数量大于等于8. 当调用removeTreeNode方法删除红黑树的节点时后,如...
  • Servlet是单实例多线程的,所以如果没有公共属性的话,是线程安全的。若有公共资源,具体可以有一下几点: 1.可以将全局变量转化为局部变量,避免线程竞争。 2.加锁来确保同一时间只有一个线程可以访问共享资源。 3.使用线程安全的数据结构,如Co...
  • HashMap在JDK1.8之前是数组加链表。在JDK1.8之后是数组加链表加红黑树。 主要分为hashcode()方法和equals()方法。 put操作: hashcode方法内使用(n-1)&hash是找到元素应该存储的位置。 如果...
  • 有序集合对象有2种编码方案,当同时满足以下条件时,集合对象采用ziplist编码,否则采用skiplist编码: 有序集合保存的元素数量不超过128个; 有序集合保存的所有元素的成员长度都小于64字节。 其中,ziplist编码的有序集合采用压缩...
  • 包含两个方面 方面一,是从sql性能角度分析,包括增删查改4个方面,包括: ●新增,批量插入用一条sql语句,索引数量要合理,每个索引新增的时候都有性能影响 ●删除,不要直接物理删除,可以逻辑删除(有个is_deleted类似的字段,默认值为0表...