- 博客(31)
- 收藏
- 关注
原创 高并发下设计秒杀系统
布隆过滤器是一种概率型数据结构,用于快速判断某个元素是否属于一个集合,它可以高效地判断一个元素是否一定不存在于集合中,但存在一定的误判率。
2023-07-17 11:02:06 335
原创 tree-sitter-java使用方法
前提条件:需启动dockerjava-tree-sitter项目使用Docker来确保构建环境的一致性。在java-tree-sitter的构建过程中,Docker被用来创建一个包含所有必要依赖的环境,然后在这个环境中编译项目。这样可以确保无论你在哪里构建项目,都能得到相同的结果,避免了"在我机器上可以运行"的问题。在 Mac 中生成的库后缀为.dylib,笔者得到 libjava-tree-sitter-cpp-c-java.dylib 文件。
2023-07-07 13:33:35 1259
原创 读书笔记-异类
基于统计数据分析成功人士成功的原因,结果表明个性并非个人成功的决定因素,真正的决定性因素是你何时何地出生,父母如何营生,成长环境是怎样的。写作背景:14年国内出版,但分析的历史事件跨度主要在20世纪谁应该读这本书:希望了解成功的秘密的人提出的问题:为什么这些人会成功?真的是“异类”吗?
2023-07-05 14:48:47 494
原创 java中执行shell脚本
文章目录明确场景代码总结命令本身与参数一定要分离明确场景在项目中需要执行shell脚本或者shell命令。具体而言:需要通过一个文件夹路径,获取路径下所有git库路径。而我本身已经有了这个shell脚本如下:#!/bin/bash path=${1} cd $path for git_path in `find . -name ".git" | awk -F . '{print $2}'` do dir=$path${git_path} dir=${
2022-05-21 11:39:32 5494
原创 19. 删除链表的倒数第 N 个结点
LeetCode原题链接明确题意删除链表节点的问题。删除方式:删除节点的是找到该结点的上一个结点node:node.next = node.next.next;那么题目中要删除倒数第N个结点就意味着,我们找到倒数第N+1个结点位置即可。解法在单链表找到倒数第N的结点的方法可以是:先找到正序第N个结点,两个指针分别指向头结点和第N个结点,循环直至第N个结点的next为null,head指向的即是倒数第N+1个结点位置。Coding通过题意直接在本地通过TDD(测试驱动开发)的方式写算法题
2022-05-11 08:55:23 333
原创 146.LRU 缓存机制
LeetCode原题链接明确题意什么是LRU缓存需要进行的操作是存和取。不同的缓存算法主要体现在当缓存已满的时候,通过什么机制选择出需要删除的key。LRU是Least Recently Used的缩写,即最近最少使用。当缓存已满时删除最近最少使用的值。解法由于题目要求函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。所以选择使用哈希表以及双链表的方式实现。Coding通过题意直接在本地通过TDD(测试驱动开发) 的方式写算法题。首先编写测试用例如下:package
2022-05-08 22:25:00 487
原创 Error parsing Mapper XML. No typehandler found for property
解决项目启动时Mybatis解析xml报错的bug
2022-05-03 08:00:00 1231
原创 机器学习概览
传统程序和机器学习的区别传统程序是按照我们制定的规则处理数据以及推断答案。而机器学习是通过数据以及答案归纳出规则!机器学习的本质特征是什么通过数据生成规则机器学习中的自变量和因变量分别叫什么?自变量是 特征因变量是 标签什么是机器学习中的数据集?一组特征以及标签数据的集合。监督学习和无监督学习的区别主要的差异在于数据,监督学习的数据是带有标签的。半监督学习是有的数据有标签,有的数据没有标签根据标签的特点,监督学习可以分为哪两类?什么特点?标签如果是连续的,则是回归问题。标签.
2022-05-01 11:37:58 248
原创 异步编程: 通过CompletableFuture提升程序性能
并发是提升程序性能的利器。并发提升程序性能的关键是提高计算机硬件的利用率。在大多数情况下,我们并没有充分利用我们的硬件资源。合理的增加运行线程就是一个方法。异步编程是其中的重要手段,同步的方式,或者说串行的方式效率低下。我们需要识别出系统中可以并行的部分,并将其并行化。Example对于下载库操作,我们需要更新commit表,也需要更新account人员信息,而这两部分可以并行。使用CompletableFuture进行异步处理,最后合并通知下载完成可以扫描。 Com
2022-05-01 11:11:20 283
原创 Java 注解理解与实践
Java 注解理解与实践文章目录Java 注解理解与实践注解Demo@SuppressWarnings理解注解元注解@Target:表示注解的目标@Retention:注解保留到什么时候@Inherited:继承@Documented:形成文档注解类型标记注解元数据注解内置注解Demo: @InjectResource1. anntation2. Config3. 使用注解Demo@SuppressWarnings压制Java的编译警告,它有一个必填参数,表示压制哪种类型的警告,它也可以修饰大部分代
2022-03-12 21:25:06 728
原创 《后疫情时代:大重构》
《后疫情时代:大重构》克劳斯·施瓦布 蒂埃里·马勒雷文章目录《后疫情时代:大重构》一句话概括章节观点当今世界的三大特征经济复苏需求服务业就业社会的重构地缘政治的重构环境的重建技术的重构微观层面的大重构(行业和企业)重新定义人性应用一句话概括评价新冠疫情对宏观上包括经济、社会、地缘政治、环境以及技术,微观上包括数字化进程的加速以及对行业发展的影响,最后提到对人性的改变。章节观点当今世界的三大特征“先是每况愈下,然后一泻千里。”重大系统性转变和颠覆往往也是如此:事情通常先是缓慢渐变,然后在某个时间
2022-02-09 12:03:34 5408
原创 结合面向对象设计原则分析正方形是否为长方形的子类
结合面向对象设计原则分析正方形是否为长方形的子类关于父类与子类,看了看面向对象的设计原则,其中里氏代换原则提到关于父类与子类:所用引用基类的地方必须透明地使用其子类的对象。老师也反复强调,其实就是基类的类型可以接受子类的实例,也不多讲,觉得越讲反而会越糊涂。长方形和正方形的区别在于正方形的长和宽是相等的。如果不假思索认为正方形是长方形的子类,那么老师也没要出题的意义了。按里氏代换原则如果一个方...
2020-04-07 18:23:52 4585
原创 谈谈对类和接口粒度的理解(根据面向对象设计原则)
类谈到类,我们从可以这一方面开始想,为什么要有类?我们会不假思索地说是因为一种面向对象思想,那么面向对象思想是什么?面向对象方法是把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。(来自百度词条)看起来已经很有道理了,但是好像还不够实际。再换一个角度,如果没有类,那么会发生什么?一个程序就会变成一堆凌乱的数据和方法,编辑一个复杂的程序极其困难。...
2020-04-07 18:23:17 4036
原创 Matlab2018a第一次安装打不开 查找程序安装类时出错
Matlab2018a第一次安装打不开 查找程序安装类时出错笔者按照安装教程一步步操作,安装完成之后,发现桌面并没有快捷启动方式,所以在win页面搜索matlab,出现了启动方式,点击启动显示“查找程序安装类出错”处理方法如下:Step①:安装完成之后应该在安装目录的lib文件夹下点击setup.exe文件启动,完成激活状态,再右键发送快捷启动方式即可,如果仍然异常Step②:去别人安装...
2020-02-23 17:36:59 5127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人