ziheng's Blog

zihengCat is here!

设计模式 - 单例模式

Design Patterns - Singleton

关于单例模式(Singleton)单例模式(Singleton)是一种常用的软件设计模式(Design Patterns)。单例设计模式的对象类必须保证其有且仅有一个实例存在。 单例模式的实现思路: 一个类能返回实例对象一个引用(永远是同一个)和一个获得该实例的方法(静态方法,通常使用getInstance()命名); 当调用这个方法时,如果类持有的引用不为空,则返回这个引用,如果类保持......

LeetCode - 101. 判断对称二叉树

LeetCode - 101. Symmetric Tree

前言本文记录 LeetCode - 101. 判断对称二叉树(Symmetric Tree) 问题。 问题描述给出一颗二叉树(Binary Tree),请你判断其是否为对称二叉树(Symmetric Tree)。 对称二叉树:以根节点root为中心,左右对称的二叉树。 举例说明,二叉树[1, 2, 2, 3, 4, 4, 3]是一颗对称二叉树。 1 / \ 2 2 ......

LeetCode - 476. 寻找补数

LeetCode - 476. Number Complement

前言本文记录 LeetCode - 476. 寻找补数(Number Complement) 问题。 问题描述给出一个正整数,请你寻找它的补数。某数的补数可以定义为:比特位反转的正整数。 Input: 5 Output: 2 Explanation: 5 的二进制表示形式为 101(无前导0),其补数为 010,输出即 2。 样例 1 Input: 1 Output: 0 Explan......

Java 高级教程系列 - 线程生命周期

Java Tutorial for Language Adavanced - Life Cycle of Thread in Java

Java 线程生命周期(Life Cycle)在 Java 中,一枚线程可处于如下几种状态,线程也可以进行状态切换。 States Descriptions NEW A thread that has not yet started is in this state. RUNNABLE A thread executing in the Java virtual machin......

Java 高级教程系列 - 线程创建

Java Tutorial for Language Adavanced - Create Thread

Java 创建多线程(Multithreading)Java 并发编程以多线程(Multithreading)为基础。Java 屏蔽了不同操作系统之间多线程 API 的差异,抽象出一套统一的多线程编程范式,为程序员减轻多线程开发的难度。 在 Java 中,线程被抽象为了Thread类,一枚Thread类实例即对应一枚操作系统线程(1:1)。Java 线程创建有如下几种方式: 继承Threa......

VS Code 实用技巧 - 界面缩放

VS Code Practical Tips - Appearance Zoom

前言今天使用 VS Code 时,偶然误触到了某个快捷键,导致 VS Code 界面整体都放大了一号… 搜索相关情况之后,原来这是 VS Code 自带的界面缩放功能。 VS Code 界面缩放我们可以整体放大、缩小 VS Code 用户界面(User Appearance)。 功能选项卡:View -> Appearance -> Zoom In / Out 功能快捷键: 界......

Docker ENTRYPOINT & CMD 理解与实践

Understanding and Practicing Docker ENTRYPOINT & CMD

前言Docker 指令CMD与ENTRYPOINT用于配置容器启动时的运行命令,通常会写在Dockerfile中。本文讲解CMD与ENTRYPOINT这两条指令的异同点,并通过一个实例指导你如何在Dockerfile中使用它们。 Docker ENTRYPOINT 指令ENTRYPOINT指令的语义为**”容器入口点”**,该指令用于设置容器首次启动时需要执行的命令(Command)及其参数......

LeetCode - 125. 判断回文串

LeetCode - 125. Valid Palindrome

前言本文记录 LeetCode - 125. 判断回文串(Valid Palindrome) 问题。 问题描述给出一枚字符串,判断其是否为回文字符串,只考虑字符串中的字母与数字字符,并忽略字母大小写。 注意:为了符合题意,我们定义空字符串""也属于回文串。 Input: "A man, a plan, a canal: Panama" Output: ......

LeetCode - 448. 寻找数组中消失的数

LeetCode - 448. Find All Numbers Disappeared in an Array

前言本文记录 LeetCode - 448. 寻找数组中消失的数(Find All Numbers Disappeared in an Array) 问题。 问题描述输入一个整型数组:1 ≤ a[i] ≤ n(n为数组长度),数组中某些元素出现了两次,其他元素则出现一次。 请你寻找在[1, n]范围内,该数组中没有出现的数,将这些消失的数以新数组形式返回。 Input: [4, 3, 2, ......

Java 数据结构与算法 - 栈

Java Data Structure and Algorithm - Stack

栈(Stack)数据结构概览栈(英语:Stack)是一种后进先出(LIFO,Last In First Out)的线性数据结构,在计算机科学中被广为运用。栈只允许在线性表的一端(栈顶,英语:Top)添加和移除数据,遵循后进先出的运行规律。 栈数据结构通常使用一维数组或链表来实现,栈包含两种基本操作:入栈(压栈,Push),出栈(弹栈,Pop)。 入栈:将元素压入栈顶,栈顶指针前移 出栈:......