基础DP爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例 1:
123456输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶
递归
dfs(i)表示从0爬到第i阶楼梯一共有多少种方法。最后一步可以爬1阶或者2阶,...
深入NettyByteBufNetty并未使用NIO中的ByteBuffer来作为缓冲区,而是自定义了一个ByteBuf,相比于ByteBuffer有如下区别:
写操作完成后无需filp
比ByteBuffer响应更快
动态扩容
1234567public abstract class AbstractByteBuf extends ByteBuf { ... in...
同步异步同步(Synchronous):同步任务按顺序执行,一个任务完成后才开始下一个任务。调用方在等待任务完成时会被阻塞,直到任务结束并返回结果。
异步(Asynchronous):异步任务可以同时执行,不必等待前一个任务完成。调用方在任务开始后立即返回,可以继续执行其他任务,不会被阻塞。结果通常通过回调、事件或Promise等方式处理。
阻塞、非阻塞阻塞:当一个线程在等待某个条件满足(如...
注解标记某个被注解的东西(类, 方法等),让其他程序根据这个东西上面的注解信息来执行对他的操作
元注解
Target
Retention
Documented:表示注解是否被 javadoc 工具记录,默认情况下注解是不包含在 javadoc 中的。
Inherited:表示注解是否可以被继承,默认情况下注解是不会被子类继承的。
123456789101112131415161...
JVM体系结构
实例
123456789101112131415161718class Dog { private String name; private static final int age = 23; public Dog(String name, int age) { //构造方法也是方法,存储在方法区 this.name = ...
HashMap源码分析虽然在学习CS61B的时候自己动手写了一个简易版的HashMap,但是跟实际的完全没有可比性,最近开始深入底层,遂记录。
初始参数123456static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16static final int MAXIMUM_CAPACITY = 1 << 3...
JUC并发编程进程一个程序,wechat.exe。每个进程都有自己独立的一块内存空间
线程进程中的一个执行任务,同类的多个线程共享进程的堆区和方法区,每个线程有独立的PC,虚拟机栈和本地方法栈
java是不能开启线程的,Thread的start()方法通过调用本地方法private native void start0();来启动线程。
1thread.join();//主线程等待threa...
RedisLinux下登录Redis1redis-cli -h 127.0.0.1 -p 6379 -a YourPassword --raw //raw显示原数据
使用Docker启动redis12345678docker run -d \ --name redis \ -p 6379:6379 \ -v /docker/redis/conf/redis.conf:/etc/red...
HTTP基本概念一个完整的HTTP请求长什么样子?123456789101112131415+---------------------------------------------------------------+| 请求行 (Request Line) ||-----------------------...
Lambda表达式可以将Lambda表达式理解为一个匿名函数; Lambda表达式允许将一个函数作为另外一个函数的参数; 我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码作为实参),也可以理解为函数式编程,将一个函数作为参数进行传递。
实例
12345678910111213public class TestLambda { public static ...