摘要:
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例 1: 输入:[1,8,6,2 阅读全文
摘要:
题目: 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" 提示: 1 <= s.length <= 1000 s 仅由数字和英文字母组成 题解 阅读全文
摘要:
2.3 主题 2.3.1 管理 使用kafka-topics.sh脚本: | 选项 | 说明 | | | | | --config <String: name=value> | 为创建的或修改的主题指定配置信息。支持下述配置条目:cleanup.policycompression.typedelet 阅读全文
摘要:
1、基础故障处理工具 Java开发人员肯定都知道JDK的bin目录中有java.exe、javac.exe这两个命令行工具,但并非所有程序员都了解过JDK的bin目录下其他各种小工具的作用。随着JDK版本的更迭,这些小工具的数量和功能也在不知不觉地增加与增强。除了编译和运行Java程序外,打包、部署 阅读全文
摘要:
1、双重锁定的由来 在 Java 程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程安全的延迟初始化对象的示例代码: public class 阅读全文
摘要:
1、final域的重排序规则 对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。 初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。 举 阅读全文
摘要:
1、锁的释放-获取建立的happens-before关系 锁是并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。 下面是锁释放-获取的示例代码: class MonitorExample { int a = 0; public synchroni 阅读全文
摘要:
原子(atomic)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation) 意味“不可被中断的一个或一系列操作”。在多处理上实现原子操作就变得有点复杂。看看处理器和Java中是如何实现原子操作的。 1、术语定义 缓存行 解释 缓存行 缓存的最小操作单位 比较并交换 CA 阅读全文
摘要:
Mybatis 逆向工程入门 一、导入 POM 文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001 阅读全文
摘要:
无重复字符的最长子串 题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因 阅读全文