二叉树算法题
1. 基本二叉树遍历1. 前序遍历(Pre-order Traversal)前序遍历的顺序是:根节点 -> 左子树 -> 右子树。 算法步骤: 访问根节点。 前序遍历左子树。 前序遍历右子树。 12345678910public class BinaryTree { // 前序遍历 - 递归 public void preOrderTraverse(TreeN
java锁常见面试题
1. sychronizedSynchronized是Java中解决并发问题的一种最常用的方法,Synchronized的作用主要有三个: 原子性。同一时刻只有一个线程能进入同步代码块/方法。 可见性。保证线程间对共享变量的修改是可见的 有序性。防止指令重排序指令重排序是一种优化技术,编译器和处理器可能会重新排列指令的执行顺序,以提高性能。但是在多线程环境下,指令重排序可能会导致线程间
技术选型
1. 技术选型所要考虑的 切合业务:在当前的场景以及后续的一些模块的设计,都可以满足我们的业务 社区活跃度:活跃多,使用的人多,优点缺点都可以呈现出来,包括会遇到的问题 团队技术水平:针对开发周期的长短,需要考虑我们是采用老技术还是新技术。如果是新技术,团队没有几个人接触过的话,那么就需要整体的一个培训,来提高团队的技术水平。 版本更新迭代周期:如果版本更新迭代的比较快,可以优先考虑,因为如果你遇
幂等性
1. 幂等性是什么?在一个系统中,一个接口,运行多次和运行一次的结果是一致的。 什么情况下需要幂等性? 重复提交、接口重试、前端窗口抖动等 业务场景: 用户多次点击提交订单,后台应该只生成一个订单。 支付时,由于发生网络问题重试,应该只扣一次钱。 保证幂等性的核心思想:通过唯一的业务单号保证幂等。 实现: 非并发的情况下,查询业务单号有没有操作过,没有则执行操作 并发的情况下,整个过程加锁
postgresql 常用SQL整理
删除id最小的重复行 123DELETE FROM mes.stool_po where id in( SELECT MIN(id) FROM mes.stool_po GROUP BY purchasing_doc_number, purchasing_doc_item_number HAVING COUNT(id) > 1) 查询根据purchasing_doc_numbe
docker
1 docker解决了什么问题?比如我们现在开发了一个应用程序比如淘宝App,程序员从头到尾搭建了一套环境开始写代码,比如安装JDK等,代码写完后需要交给测试同事去运行,这事测试同学也需要从头到尾搭建一套环境,但比如JDK版本和你安装的不同,导致无法在测试同学的机器上运行起来,找开发去看问题,此时开发也很无辜,“明明在我的机器上是可以跑起来的”。 在没有容器技术之前,我们可以采用搭建虚拟机,然后测