02 2023 档案

摘要:public class Solution { private int res = 0; //dfs 以每个结点作为根查询路径 public int findPath (TreeNode root, int sum) { //为空则返回 if(root == null) return res; // 阅读全文
posted @ 2023-02-28 22:01 MarkLeeBYR 阅读(19) 评论(0) 推荐(0) 编辑
摘要:leetcode https://www.cnblogs.com/MarkLeeBYR/p/16907404.html 阅读全文
posted @ 2023-02-28 20:38 MarkLeeBYR 阅读(2) 评论(0) 推荐(0) 编辑
摘要:在一个m×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物? 如输入这样的一个二维数组,[[1,3,1],[1,5,1] 阅读全文
posted @ 2023-02-28 20:30 MarkLeeBYR 阅读(10) 评论(0) 推荐(0) 编辑
摘要:leetcode 3 https://www.cnblogs.com/MarkLeeBYR/p/16843653.html 阅读全文
posted @ 2023-02-28 20:01 MarkLeeBYR 阅读(5) 评论(0) 推荐(0) 编辑
摘要:描述 有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'。 现在给一串数字,返回有多少种可能的译码结果 输入:"12"返回值:2说明:2种可能的译码结果(”ab” 或”l”) public int solve(String nums) { //排除0 if(nu 阅读全文
posted @ 2023-02-28 18:27 MarkLeeBYR 阅读(42) 评论(0) 推荐(0) 编辑
摘要:给你一根长度为 n 的绳子,请把绳子剪成整数长的 m 段( m 、 n 都是整数, n > 1 并且 m > 1 , m <= n ),每段绳子的长度记为 k[1],...,k[m] 。请问 k[1]*k[2]*...*k[m] 可能的最大乘积是多少?例如,当绳子的长度是 8 时,我们把它剪成长度分 阅读全文
posted @ 2023-02-28 17:35 MarkLeeBYR 阅读(17) 评论(0) 推荐(0) 编辑
摘要:描述 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 1. 用返回一个整数列表来代替打印2. n 为正整数,0 < n <= 5 示例1 输入:1 返回:[1,2,3,4,5,6,7,8,9] public int[] 阅读全文
posted @ 2023-02-28 17:14 MarkLeeBYR 阅读(15) 评论(0) 推荐(0) 编辑
摘要:leetcode https://www.cnblogs.com/MarkLeeBYR/p/16931041.html 阅读全文
posted @ 2023-02-20 17:45 MarkLeeBYR 阅读(6) 评论(0) 推荐(0) 编辑
摘要:https://mp.weixin.qq.com/s/_YuLzBpgSvHi9nH2wTEjvQ 1、性能对比 Kafka单机写入TPS约在百万条/秒,消息大小10个字节 RocketMQ单机写入TPS单实例约7万条/秒,单机部署3个Broker,可以跑到最高12万条/秒,消息大小10个字节 总结 阅读全文
posted @ 2023-02-18 22:29 MarkLeeBYR 阅读(233) 评论(0) 推荐(0) 编辑
摘要:1、名词介绍 broker :一台kafka服务器就是一个broker Partition:是实际存储消息的物理单元,一个Topic内部可以包含多个partition。为什么要有多个partition?如果只有一个partition的话,我们发消息写数据都只能保存到一个节点上,这样的话就算这个服务器 阅读全文
posted @ 2023-02-14 16:15 MarkLeeBYR 阅读(90) 评论(0) 推荐(0) 编辑
摘要:一、背景 在本文正式开始之前,需要先取得以下两点的共识: a) 缓存必须要有过期时间 b) 保证数据库跟缓存的最终一致性即可,不必追求强一致性。 数据一致性指的是: a) 缓存中存有数据,缓存的数据值 = 数据库中的值; b) 缓存中没有该数据,数据库中的值 = 最新值 数据库跟缓存,毕竟是两套系统 阅读全文
posted @ 2023-02-14 11:17 MarkLeeBYR 阅读(24) 评论(0) 推荐(0) 编辑
摘要:1、FIle类 创建文件:createNewFile() 删除文件: delete() 创建文件夹:mkdir() 列出路径下所有的文件夹或文件的名字: String[] list() 在上面的基础上,加上完整路径名: File[] listFiles(); list()和listFiles()区别 阅读全文
posted @ 2023-02-12 18:57 MarkLeeBYR 阅读(24) 评论(0) 推荐(0) 编辑
摘要:1、我们何时使用IO,何时使用NIO呢?这两者有三个差异: 1) IO面向流,NIO是面向缓冲区的,IO面向流意味着每次从流中读一个或多个字节,直到读取所有字节,它们没有被缓存在任何地方。此外它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。NIO的缓冲导向方法 阅读全文
posted @ 2023-02-12 16:40 MarkLeeBYR 阅读(94) 评论(0) 推荐(0) 编辑
摘要:底层基于hashmap实现,构造函数中会new一个HashMap实例,hashset中的元素都放在hashmap中,key是元素本身,value为PRESENT,PRESENT定义:private static final object PRESENT = new Object(),允许null值, 阅读全文
posted @ 2023-02-11 15:53 MarkLeeBYR 阅读(62) 评论(0) 推荐(0) 编辑
摘要:LinkedHashMap是把HashMap和双向链表合二为一,它将所有entry节点放入一个双向链表的hashmap,其内部维持的顺序是元素插入的顺序,而且能实现lru算法。 下面是get方法的定义: public V get(Object key) { Entry<K,V> e = (Entry 阅读全文
posted @ 2023-02-10 17:37 MarkLeeBYR 阅读(26) 评论(0) 推荐(0) 编辑
摘要:ArrayList ArrayList和array的区别:前者可以存放任意对象(object的子类),后者只能存放同种元素。前者只能存放对象类型。后者可以存基本类型和对象类型。 ArrayList内部维护了一个动态的object数组,ArrayList的动态增删就是对这个数组的增加和删除。Array 阅读全文
posted @ 2023-02-10 17:30 MarkLeeBYR 阅读(79) 评论(0) 推荐(0) 编辑
摘要:jdk1.7 解析 HashMap在多线程环境下,put操作可能产生死循环,Hashtable是对读写加锁,独占式,一个线程在读时其他线程必须等待,性能低下。现在我们可以使用高性能的线程安全的ConcurrentHashMap。 ConcurrentHashMap采用分段锁的机制,实现并发的更新操作 阅读全文
posted @ 2023-02-10 15:58 MarkLeeBYR 阅读(278) 评论(0) 推荐(0) 编辑
摘要:HashMap源码解读 1、概述:是Map接口的非同步实现,允许使用null值和null健,对象是无序排列的这点和list接口相反。HashMap中有且只有一个key为null(key不能重复)。HashMap用到了几个类?Entry,keySet,entrySet,HashIterator(key 阅读全文
posted @ 2023-02-09 23:05 MarkLeeBYR 阅读(51) 评论(0) 推荐(0) 编辑
摘要:1、是List<E>, Queue<E>, Set<E>的父接口。 2、Comparable接口:可以认为是内比较器,当实现了这个接口,则表示这个类可以和自己比较大小,可以进行自然排序,如果一个类要实现这个接口,那必然要实现它的compareTo()方法。String, Integer等类实现了这个 阅读全文
posted @ 2023-02-09 20:02 MarkLeeBYR 阅读(23) 评论(0) 推荐(0) 编辑
摘要:大数据处理之分治思想,分而治之/hash映射 + hash统计 + 堆/快速/归并排序,说白了,就是先映射,而后统计,最后排序。 分而治之/hash映射: 针对数据太大,内存受限,只能是: 把大文件化成(取模映射)小文件,即16字方针: 大而化小,各个击破,缩小规模,逐个解决hash_map 统计: 阅读全文
posted @ 2023-02-09 17:50 MarkLeeBYR 阅读(53) 评论(0) 推荐(0) 编辑
摘要:1、Lock对象也可以实现同步和线程间的通信,Lock对象是一个接口,其实现类有ReentrantLock。ReentrantLock也可以实现线程间的同步互斥,并扩展了其他的功能。wait()/notify()通知等待的线程时是随机的,用Condition相对灵活很多,可以实现选择性通知。Sync 阅读全文
posted @ 2023-02-09 16:22 MarkLeeBYR 阅读(244) 评论(0) 推荐(0) 编辑
摘要:1、当一个线程进入一个对象的一个synchronized方法后,其他线程可以进入此对象的非同步方法,不可进入此对象此同步方法,也不可进入此对象其他同步方法。同步监视器的意思是:线程开始执行同步代码块或者同步方法时,必须先要获得对同步监视器的锁定。任何时刻只能有一个线程获得对同步监视器的锁定,sync 阅读全文
posted @ 2023-02-08 21:37 MarkLeeBYR 阅读(57) 评论(0) 推荐(0) 编辑
摘要:1、sleep()和wait()的区别: 1)前者是Thread类中静态方法,后者是Object中的方法 2)前者不释放对象锁,在指定的时间后恢复。后者释放对象锁,并进入等待池中,只有其他线程调用该同步监视器的notify或notifyAll此线程才恢复到准备状态 3)前者可以在任何地方使用,并会抛 阅读全文
posted @ 2023-02-08 17:43 MarkLeeBYR 阅读(16) 评论(0) 推荐(0) 编辑
摘要:1、单例模式 1)懒汉式 多线程的情况下就会出问题,例如两个线程同时判断Instance是否为空,此时Instance还没创建好,那么两者都会创建一个实例 2)在1)的基础上加上同步锁 每次通过getIns()方法获取单例时,都有一个试图去获取同步锁的过程,而加锁是很费时的,能免就免 3)双重校验锁 阅读全文
posted @ 2023-02-08 15:03 MarkLeeBYR 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1、什么是控制反转(IOC) 和依赖注入? IOC:根据javase,我们直接在对象内部通过new进行创建对象,是程序主动去创建对象。而ioc是有个专门容器来创建这些对象。是ioc容器控制了对象,即控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护。传统程序是我们在类 阅读全文
posted @ 2023-02-08 11:00 MarkLeeBYR 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1、springmvc工作流程 1)用户发送请求到DispatcherServlet 2)DispatcherServlet收到请求,调用HandlerMapping处理器映射器查找具体的Handler。 3)处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器,都返回给DispatcherS 阅读全文
posted @ 2023-02-05 22:07 MarkLeeBYR 阅读(24) 评论(0) 推荐(0) 编辑