后端

623. 在二叉树中增加一行(难度:中等)

题目链接: 问题描述: 给定一个二叉树的根 root 和两个整数 val 和 depth ,在给定的深度 depth 处添加一个值为 val 的节点行。 注意,根节点 root 位于深度 1 。 加法规则如下: 给定整数 depth,对于深度为 depth - 1 的每个非空树节点 cur ,创

G1垃圾收集器实现原理

1 与垃圾收集器有关的算法 在分析G1前先简单回顾一下与垃圾收集器相关的算法。通常所谓的垃圾收集器更多地是指跟踪垃圾收集器(Tracing Garbage Collection),而不是引用计数(Reference Counting )垃圾收集器。跟踪垃圾收集器采用可达性分析方法确定哪些对象要被回收,通常会选取一些对象作为GC Roots,如果对象能直接或间接地被GC Roots中的对象引用,则认

读完 RocketMQ 源码,我学会了如何优雅的创建线程

RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时、高可靠的消息发布与订阅服务。 这篇文章,笔者整理了 RocketMQ 源码中创建线程的几点技巧,希望大家读完之后,能够有所收获。 1 创建单线程 首先我们先温习下常用的创建单线程的两种方式: 实现 Runnable 接口 继承 Thread 类 ▍一、实现 Runnable 接口 图

Leetcode 139. 单词拆分

题目要求 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" 可以由 "leet"

IntelliJ IDEA中的神仙插件 写代码必备

IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著

代码坏味道:不合理命名与重复代码

一. 命名 1.1 命名是否具有业务含义 (1) 命名不精准,用词宽泛,不能有效反应代码含义 从沟通的角度看,这就不是一个有效的沟通。要想理解它,需要消耗大量的认知成本,时间和精力,同样也增加了后来人包括我们自己维护代码的成本。 其中,Info、data、flag、process、handler、build、maintain、manager、modify等,都是属于典型的过于宽泛的名字,当这些名字

搞懂 Kubernetes 网络模型

Kubernetes 是为运行分布式集群而建立的,分布式系统的本质使得网络成为 Kubernetes 的核心和必要组成部分,了解 Kubernetes 网络模型可以使你能够正确运行、监控和排查应用程序故障。 网络所涉及的内容很多,拥有许多成熟的技术。对于不熟悉的人来说可能会非常痛苦,因为大多数人对网络都有先入为主的观念,并且有很多新旧概念需要理解并组合成一个连贯的整体。所说的网络可能包括网络命名空

闭包的初了解

1.什么是闭包? 内部函数能够返回外部函数的作用域(当内部函数返回时,它会携带一个背包,背包中是函数声明时作用域内的所有变量) 我们可以用以下代码来表述以下: function makeFunc() { var name = "Mozilla" function displayName() { alert(name); } return displa

Java多线程 - 线程通信

1. 通信方式 要想实现多个线程之间的协同,如:线程执行先后顺序、获取某个线程执行的结果等等。涉及到线程之间相互通信,分为下面四类: 文件共享 网络共享 共享变量 jdk提供的线程协调API 细分为: suspend/resume、wait/notify、park/unpark (1) 文件共享 文件共享 (2) 网络共享 网络资源的共享,此处略 (3) 变量共享 变量共

《立方根》的设计

立方根的学习方法和平方根的学习方法相同,都是根据实际需要求哪个数的平方(立方)等于a。所以整体教学环节类似。 环节一:实际问题数学化、符号化。 环节二:借助乘方(立方)的运算,求出这个数,初步感受互逆运算。 环节三:归纳平方根、立方根的概念、符号语言。 环节四:根据概念求一个数的平方根(立方根)(这里是可以用有理数表示的平方根或立方根),归纳平方根、立方根的性质。 环节五:引入根号表示不能用有理数