- 博客(718)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
原创 git 从tag中拉取新的分支
拉取最新代码git pull切到指定的 taggit checkout <tag-name>新建分支git switch -c <new-branch-name>
2023-03-31 14:06:04
124
原创 mac homebrew fatal: not in a git directory
问题: 在用homebrew安装软件时, 提示报错。设置完毕后, 即可解决报错,成功安装。按照上面的提示, 在终端上执行命令。
2023-02-19 20:07:56
657
1
原创 excel 中使用vlookup函数
将函数所在单元格的格式改为常规或数值格式,并点击F2或者点击一下编辑栏,再点击Enter即可。选中顶行单元格,滚动条滚动到底部,按着Shift键选中底部单元格,Ctrl+D即可填充。使用函数后不显示只显示公式处理办法。vlookup函数使用方法。
2023-01-12 14:19:06
204
原创 线性表01- 数组与简易接口设计
线性表: 具有n个相同类型元素的有限序列 n>=0线性表的元素特点是有索引, 可以通过索引快速查找到元素.a1是a2的前驱, a2是a1的后继常见的线性表数组链表栈队列哈希表 (散列表)
2022-11-29 22:08:00
480
原创 删除数据库中重复数据
delete from form where id not in (select min(id) from form group by parent_id, tenant_id);
2022-11-18 14:48:00
312
原创 数据结构与算法01-算法的评估(大O表示法) 算法的优化方向
大O 表示法, 仅仅是一种粗略的分析模型, 是一种估算, 能帮助我们短时间内了解一个算法的时间复杂度.对于对数: log2n , log9n 统称为logn。数据规模n对应的复杂度。不同算法的时间复杂度。
2022-09-10 19:59:25
345
原创 2022java面试题
MESI 如何执行的 ,含义是什么?面试官问的是ConcurrentHashMap 数据结构, 结果扯到hashmap的数据结构.线程池如何实现只有线程池里面的任务执行完之后, 才去给线程池添加任务。基于AQS实现的同步队列, 会有打断的异常, 如何实现?Eureka使用的时候有哪些问题 , 怎么解决的。volatile的禁止指令重排序是如何实现的?Synchronized 如何实现可见性的?线程池的核心线程数, 最大线程数如何设置?读写屏障, 全屏障这些是怎么实现的?...
2022-08-18 11:39:54
625
原创 bytebuffer put flip compact clear 方法演示
compact方法用于未读取完数据时,写入数据,例如上一步,里面有四个数据,只读取了一个数据61,调用compact方法进入写模式,可以保证,未读取完的数据,不会丢失.控制台打印如下,只截取了最后两次的打印,可以看到是从position3的位置开始写入,保留了之前没有读取的数据(62,63,64)控制台打印如下,可以看到position从0开始了,把65,66写入到了0和1的位置,把原有的61,62覆盖了.如果改成clear写入。...
2022-07-31 16:52:48
306
1
原创 bytebuffer 内部结构
compact方法由于某种原因,没有读取完数据就要写数据,如下原本数据中有abcd四个字节的数据,读到ab了,就要写数据了,调用compact方法,则是从d后开始开始写数据,而不是从0的位置写数据,这样防止了数据的丢失.调用flip()方法后,开启读模式,postion重新从0开始读,limit从capacity的位置,移动到上一步读取数据的位置,因为写入只写入到d的位置,无需读取到capacity的位置.ByteBuffer重要的属性。...
2022-07-31 15:53:42
315
原创 bytebuffer 使用demo
通过控制台看到,第一次读取到了缓存的10个字节,1到0.挨个把1到0打印了出来.创建一个txt文件,放在项目最外层,内容如下,有13个字节.第二次读取了3个字节,a到c,挨个打印了出来.
2022-07-31 14:43:18
296
原创 Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
https://www.cnblogs.com/dolphin0520/p/3920397.html
2022-07-17 18:49:34
449
原创 eureka server剖析
主要看com.netflix.eureka.EurekaBootStrap#contextInitialized 方法的执行初始化环境com.netflix.eureka.EurekaBootStrap#initEurekaEnvironment通过单例获取配置对象com.netflix.config.ConfigurationManager#getConfigInstance()通过double check + volatile把配置作为单例, 是单例模式的一个经典用法.initEureka
2022-07-07 18:47:29
246
原创 互联网公司Java开发面试题: 谈谈可重入锁ReentrantLock?
ReentrantLock 根据其jdk给的注释定义如下:即代表ReentrantLock是可重入的互斥锁.根据jdk给的ReentrantLock示例代码如下即官方建议释放锁的操作放在finally 代码块中, 这样可以在一定程度上避免死锁.在创建ReentrantLock 时, 默认的无参构造是创建一个非公平锁, 可以传递一个布尔值, 来设定是否为公平锁.除了上面给出的lock方法外, 也可以使用 , 传递一个等待加锁的时间, 返回一个布尔值.加锁成功 则返回true, 失败返回false
2022-06-05 15:05:11
641
原创 某电商面试题 20220513
内存溢出与内存泄露的区别观察者模式与发布订阅模式的区别Seata 有哪些模式 ? AT 模式的流程 . AT 与TCC模式的区别如何分析java oom异常jvm 如何进行优化MySQL有哪些隔离级别, 脏读和幻读的区别.MySQL有哪些日志, 这些日志的特点 , 优缺点是什么分库分表是如何规划的, 原有的库的数据是怎么迁移的, 分库分表后怎么扩容.分库分表如何解决唯一id问题知道哪些分布式id生成的方法, 雪花算法生成id会有什么问题, 怎么解决eureka 的执行流程.
2022-05-13 19:32:21
328
原创 分库分表 路由策略与全局ID
分库分表支持的场景用户的角度 : 查询订单信息商家角度: 获取商家订单的角度.用户下单后, 可能查询多个表.根据一定的规则, 让同一个用户, 下单都落在同一个表中.路由key:根据用户id , 作为路由的key , 对表的数量进行取模.多库多表先找库, 再找表.先根据用户的id , 对数据库的数量进行取模, 再去找对应的表.在找对应表的时候, 除以表的数量, 再对表的数量进行取模, 防止根据库进行路由后, 只插入到某一个表中去.商户的路由策略:买家下完单之后, 发送订
2022-05-03 15:06:46
633
原创 分库分表之 垂直拆分与水平拆分
垂直拆分垂直拆分 : 把一个数据库, 拆分为多个数据库. 按不同的模块拆分.原来是一个模块 , 公用一个数据库的资源, 垂直拆分后, 各个模块的项目竞争的资源, 不存在了 .优点:减轻了原有单库的压力, 提高了每个数据库的分摊数据, 给每个库的 CPU 内存, 网络压力变小了业务更加清晰解耦系统扩展更加容易了缺点:系统复杂性增加了多个数据库的联表查询, rpc调用, 可能有超时之类的问题 .事务需要分布式事务处理单表的数据量很大, 垂直拆分也无法解决.水平拆分
2022-05-03 14:03:46
965
原创 手写spring 03 - Cglib 构造函数实例化对象
文章目录目标设计实现新增getBean接口定义实例化策略接口JDK 实例化Cglib 实例化创建策略调用测试测试有参的构造实例创建测试无构造函数的测试有构造函数实例化获取构造函数信息测试Cglib实例化测试Cglib的策略实例化目标实现有参构造函数实例化对象.设计参考Spring Bean的容器源码实现方式, 在BeanFactory中添加Object getBean(String name, Object... args)创建有参构造bean对象的两种方式基于jdk的DeclaredCons
2022-04-23 15:02:01
754
1
原创 手写spring02- 实现bean的定义 注册 获取
文章目录目标设计实现BeanDefinition 的定义单例注册接口的定义与实现定义bean工厂 BeanFactory抽象类定义模板方法 AbstractBeanFactory实例化Bean类 AbstractAutowireCapableBeanFactory核心类实现(DefaultListableBeanFactory)测试目标此文中实现了spring容器的粗略的版本https://javaweixin6.blog.csdn.net/article/details/124256888此节要实
2022-04-23 13:59:11
637
原创 手写spring- 创建简单bean容器
文章目录目标设计简易实现目标springbean容器的目标是用于定义 存放 和获取bean设计使用map来存放bean . map的key为 bean的名称, value为 bean的定义信息bean的定义: BeanDefinition . 用于获取这个bean的一些属性信息. 例如下图截取spring源码中, 部分的方法, 获取该bean是否是抽象的, 是否是单例的, 是否是原型的, 是否是懒加载的, 并且提供了一些set和get方法来设置bean 的属性和获取bean 的属性. 在
2022-04-18 19:29:13
703
原创 windows10 安装 gradle 与idea gradle的配置
下载gradle 的安装包下载地址https://download.csdn.net/download/qq_33229669/85159857系统环境变量配置配置GRADLE_HOME 和GRADLE_USER_HOME用于指明gradle的安装包地址和本地仓库地址path中新建 %GRADLE_HOME%\bin配置gradle的阿里云仓库地址在gradle的init.d文件夹中, 新建立init.gradle文件文件内容如下allprojects{ reposito
2022-04-17 09:37:45
451
原创 设计模式 访问者模式
文章目录访问者模式访问者模式实战访问者模式在相同的数据结构下, 增加容易变化的业务访问逻辑, 为了增强扩展性, 将易变的访问逻辑进行解耦的一种设计模式.访问者模式实战模拟学校中, 有老师和学生, 也有家长和校长这两种数据访问的模式.该设计模式的类图如下抽象用户类 Userpublic abstract class User { // 姓名 public String name; // 身份 学生: 重点班、普通班 | 老师: 特级教师、普通教师、实习教师
2022-04-04 15:56:45
542
原创 设计模式 模板方法模式
文章目录模板方法模式模板方法模式实战模板方法模式模板方法模式适用于统一了执行的顺序和基本策略, 但具体每一步如何实现, 由各自的方法去实现.模板方法模式实战模拟获取京东 , 淘宝, 当当网的数据. 虽然他们网站的结构不一样, 但获取数据的过程是一致的, 模拟登录, 获取数据, 对数据进行处理, 生成海报等.模板方法模式的uml图如下抽象类NetMall 如下public abstract class NetMall { protected Logger logger = Logge
2022-04-04 09:26:56
185
原创 设计模式 策略模式
文章目录策略模式策略模式实战不使用策略模式的写法使用策略模式的写法策略模式策略模式解决的场景是具有同类课替代的行为逻辑算法场景, 比如不同类型的交易方式, 不同类型的登录方式等. 使用策略模式进行行为的包装, 供外部统一调用.策略模式实战模拟电商网站的各种不同的优惠, 满减, 直减, 折扣, n元购.不使用策略模式的写法写法如下 . 直接if else判断即可.public class CouponDiscountService { public double discount
2022-04-03 17:43:58
584
原创 设计模式 状态模式
文章目录状态模式状态模式实战.不使用状态模式的写法使用状态模式的写法状态模式状态模式的情景: 状态模式用于一个行为下的多种状态的变更.例如活动的审核 , 上线 ,下线状态等.状态模式实战.模拟活动的编辑 ,上线 , 审批拒绝, 审批通过等. 并且有些状态的流转是不可行的, 比如编辑中, 到下线.创建tutorials-22.0-1 模块.定义状态的枚举package com.thc.design;/** * 类名称:Status * 类描述: 活动状态枚举 * * 创建时间
2022-04-03 15:29:03
497
原创 设计模式 观察者模式
文章目录观察者模式观察者模式实战不使用观察者模式写法观察者模式写法观察者模式观察者模式场景: 当一个行为发生时, 传递信息给另外一个用户接收做出相应的处理. 两者没有直接的耦合关联.观察者模式实战模拟汽车摇号的结果进行通知.创建 tutorials-21.0-0 模块.进行汽车摇号服务的模拟public class MinibusTargetService { public String lottery(String uId) { return Math.abs
2022-04-03 10:27:09
348
原创 设计模式 中介者模式
文章目录中介者模式中介者模式实战不使用中介者模式写法使用中介者模式写法测试验证中介者模式中介者模式使用的场景: 把复杂功能的重复调用, 中间添加一层包装, 对外提供简单, 易扩展的服务能力. 例如中间件组提供的统一的接口与服务等.中介者模式实战模拟jdbc连接数据库的操作. 使用中介者模式,手写一个简易版的mybatis.不使用中介者模式写法创建模块tutorials-19.0-0 创建JDBCUtil类该类是纯手写jdbc的过程.public class JDBCUtil {
2022-04-01 22:35:27
786
原创 设计模式 备忘录模式
备忘录模式使用备忘录模式的情景:一般用于版本的回退, 页面上临时配置的回退等操作.备忘录模式实战模拟记录各个版本配置信息, 并实现配置的回退, 前进等操作.uml图如下配置信息类@AllArgsConstructor@NoArgsConstructor@Datapublic class ConfigFile { // 版本号 private String versionNo; // 内容 private String content; // 时
2022-03-31 22:24:30
394
原创 设计模式 迭代器模式
文章目录迭代器模式情景迭代器模式实战迭代器模式情景在jdk中已经提供了迭代器模式, 用于集合的迭代遍历.实现Iterable 接口, 通过next的方式, 获取集合元素. 同时具备对元素的删除等操作. 优点是以相同的方式遍历不同数据结构的元素, 不用去关心迭代的数据的结构, 让使用者变得统一易用.迭代器模式实战模拟公司部门迭代.创建雇员类 .@AllArgsConstructor@NoArgsConstructor@Datapublic class Employee { //
2022-03-30 23:29:29
208
Another-Redis-Desktop-Manager.1.3.7.exe
2020-07-14
FastDFS安装所需要的所有文件
2018-12-09
eclipse activiti的插件
2018-08-18
tomcat集群session共享jar包
2018-03-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人