自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1201)
  • 资源 (1)
  • 收藏
  • 关注

原创 SpringCloud全家桶新人入门手册

作用:网关主要功能:限流(流量控制);重试(请求失败时重试,慎用);① 使用方法:其他项目引入server模块的jar包。0、检查idea是否在父模块pom中生成子模块。二、创建一个单pom项目改为父子pom项目。5、搭建业务模块-system处理业务逻辑。3、搭建server模块处理公共逻辑。② 注册到Eureka注册中心模块。2、使用Eureka搭建注册中心。第二步、增加配置,注册中心地址。4、搭建路由模块-gateway。1、子模块pom.xml添加。注册到注册中心逻辑同上。

2023-08-20 00:21:46 424 1

原创 你必须找到你所钟爱的东西

在那一年,我被炒了鱿鱼。嗯,在苹果快速成长的时候,我们雇用了一个很有天分的家伙和我一起管理这个公司,在最初的几年,公司运转的很好。后来有一天早上医生将一个内窥镜从我的喉咙伸进去,通过我的胃,然后进入我的肠子,用一根针在我的胰腺上的肿瘤上取了几个细胞。我的医生叫我回家,然后整理好我的一切,那就是医生准备死亡的程序。我失去了我的宿舍,所以我只能在朋友房间的地板上面睡觉,我去捡5美分的可乐瓶子,仅仅为了填饱肚子,在星期天的晚上,我需要走七英里的路程,穿过这个城市,只是为了能吃上饭——这个星期唯一一顿好一点的饭。

2023-06-09 17:55:22 289

原创 深入浅出Mysql

不同存储引擎的表数据存取方式不同,支持的功能也不同,在后面的文章中,我们会讨论到引擎的选择。但是全部使用长连接后,你可能会发现,有些时候 MySQL 占用内存涨得特别快,这是因为 MySQL 在执行过程中临时使用的内存是管理在连接对象里面的。平时我们使用数据库,看到的通常都是一个整体。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。

2023-03-13 10:34:07 777

原创 数据结构与算法

而快排正好相反,它的处理过程是由上到下的,先分区,然后再处理子问题。第 2、3、4 行代码,每行都需要 1 个 unit_time 的执行时间,第 5、6 行代码循环执行了 n 遍,需要 2n * unit_time 的执行时间,第 7、8 行代码循环执行了 n2遍,所以需要 2n2 * unit_time 的执行时间。基于数组实现的有界队列(bounded queue),队列的大小有限,所以线程池中排队的请求超过队列大小时,接下来的请求就会被拒绝,这种方式对响应时间敏感的系统来说,就相对更加合理。

2023-02-19 11:06:10 542

原创 并发设计模式

1、Immutability模式:如何利用不变性解决并发问题?“多个线程同时读写同一共享变量存在并发问题”,这里的必要条件之一是读写,如果只有读,而没有写,是没有并发问题的。解决并发问题,其实最简单的办法就是让共享变量只有读操作,而没有写操作。这个办法如此重要,以至于被上升到了一种解决并发问题的设计模式:不变性(Immutability)模式。所谓不变性,简单来讲,就是对象一旦被创建之后,状态就不再发生变化。换句话说,就是变量一旦被赋值,就不允许修改了(没有写操作);没有修改操作,也就是保持了不变性。(1)

2023-02-13 19:26:28 709

原创 Java 并发在项目中的使用场景

此外,如果这时有另外一个进程也读文件,读文件的操作就会排队,磁盘驱动在完成一个进程的读操作后,发现有排队的任务,就会立即启动下一个读操作,这样 IO 的使用率也上来了。在一个时间片内,如果一个进程进行一个 IO 操作,例如读个文件,这个时候该进程可以把自己标记为“休眠状态”并出让 CPU 的使用权,待文件读进内存,操作系统会把这个休眠的进程唤醒,唤醒后的进程就有机会重新获得 CPU 的使用权了。操作系统做任务切换,可以发生在任何一条 CPU 指令执行完,是的,是 CPU 指令,而不是高级语言里的一条语句。

2023-02-06 21:04:35 2988

原创 设计模式在项目中的应用场景

在参与大型项目开发的时候,要尽量避免过度设计、过早优化,在扩展性和可读性有冲突的时候,或者在两者之间权衡,模棱两可的时候,应该选择遵循 KISS 原则,首选可读性。能让我们在修改或者阅读代码的时候,聚集到在一个小范围的模块或者类中,不需要了解太多其他模块或类的代码,让我们的焦点不至于太发散,也就降低了阅读和修改代码的难度。面对复杂系统的开发,我们要善于应用分层技术,把容易复用、跟具体业务关系不大的代码,尽量下沉到下层,把容易变动、跟具体业务强相关的代码,尽量上移到上层。① 吹毛求疵般地执行编码规范。

2023-01-31 18:27:18 906

原创 设计模式与范式【二十三种设计模式的运用场景】

注意,这里所说的“实现”,也并非指“接口的实现类”,而是跟具体数据库相关的一套“类库”。② 如果对象中的数据需要经过复杂的计算才能得到(比如排序、计算哈希值),或者需要从 RPC、网络、数据库、文件系统等非常慢速的 IO 中读取,这种情况下,我们就可以利用原型模式,从其他已有对象中直接拷贝得到,而不用每次在创建新对象的时候,都重复执行这些耗时的操作。③还有一种情况,尽管我们不需要根据不同的类型创建不同的对象,但是,单个对象本身的创建过程比较复杂,比如前面提到的要组合其他类对象,做各种初始化操作。

2023-01-29 23:22:26 886

原创 JAVA性能统计项目

我们希望设计开发一个小的框架,能够获取接口调用的各种统计信息,比如,响应时间的最大值(max)、最小值(min)、平均值(avg)、百分位值(percentile)、接口调用次数(count)、频率(tps) 等,并且支持将统计结果以各种显示格式(比如:JSON 格式、网页格式、自定义显示格式等)输出到各种终端(Console 命令行、HTTP 网页、Email、日志文件、自定义输出终端等),以方便查看。被动表示用户触发统计,比如用户在网页中选择要统计的时间区间,触发统计,并将结果显示给用户。

2023-01-28 18:45:45 1235

原创 设计原则与思想【面向对象、设计原则、编程规范、重构技巧】

针对不同的功能,静态方法无需属性,设计不同的 Utils 类,比如 FileUtils、IOUtils、StringUtils、UrlUtils 等,不要设计一个过于大而全的 Utils 类。多态:在实际的代码运行过程中,调用子类新的功能逻辑,而不是在原有代码上做修改。①当我们添加一个新的功能代码的时候,原有的代码已经预留好了扩展点,我们不需要修改原有的代码,只要在扩展点上添加新的代码即可。②当我们要实现一个功能的时候,发现原有代码中,已经抽象出了很多底层可以复用的模块、类等代码,我们可以拿来直接使用。

2023-01-23 11:58:20 440

原创 spring boot全家桶新人入门手册

RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面。的注解,可用于类或者方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。@RequestMapping是一个用来处理请求。

2023-01-03 23:37:01 2242

原创 高级工程师做事方法总结篇

leader 在安排事情的时候是怎么安排的?为什么这件事给 A 做会觉得比较放心,给B做心里会没底?尝试从大佬们的角度去分析问题,会发现大佬们的一些做事的方法论。同一件事情,不同的人做,结果不一样,取决于有的人“会做事”、有的人“不会做事”;给 A 做比较放心,因为 A 一直都“会做事” 。一、闭环思维会做事的总体思维结构是:做事要有闭环思维, 也就是一件事情必须要做好“事前”、“事中”、“事后”这三个闭环。很多人“不会做事”,是因为都只关注到 “事中”,事前大部分都是 leader 安排好

2022-02-22 11:58:33 808

转载 大厂晋升学习方法一:海绵学习法

1、按平均每天投入 3 小时计算,10000 小时定律意味着,成为某个领域的专家需要花费 10 年时间。2、不同的领域,面对的问题和采取的思维方式也不同,投入的时间是不能叠加的。3、上班时间不能直接等价为有效的提升时间,我们每天下班后还应该主动投入 1 个小时来学习。4、海绵学习法不需要完全放弃休闲娱乐,也不需要强行打鸡血,只需要稍微克服一下人性的弱点,长期坚持,积少成多。挤时间的来源包括早晨 30 分钟、通勤 2 小时、上班第一个 30 分钟、睡前 30 分钟和周末 2 小时等。早晨 30 分

2022-01-19 15:57:56 469

原创 前端工程师晋升之路

程序员的标准与要求初级程序员仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发。通常是入行不久, 1 年及以下工作经验的同学。能力要求熟悉前端基础知识如 HTML、JS、CSS 。 能够使用一门 MVVM 框架进行简单的业务开发。 遇到复杂的组件和模块,会找现有的轮子使用。 会使用百度、google 等检索工具搜索问题。中级程序员(阿里 p5)在必要的辅导或标准流程支持下,能独立负责一个子模块或者一个项目的具体任务,对及时性和准确性负责。通常是 2-3 年工作经验的同学。

2021-03-16 09:49:36 1943 1

原创 小米笔记本出现no bootable devices

没拆过的小伙伴要搜一些视频哦,拆机也有很多坑,强拆把手都弄出血了。插进去的时候记得倾斜向下,完全插进去了之后再按下去,上螺丝。刚开始硬盘是在左边,把螺丝下了,扯出来,换到右边。之后马上开机试一下,可以打开的话,上螺丝。1、不妨翻个面敲几下,上下左右晃晃试试。没办法自己动手,买一套螺丝刀,拆机。好了,可以愉快的上我的网课去啦。前几次就是摇一摇,拍一拍就好了。搜了好多答案说是硬盘出了问题。2、这个问题也困扰我好久了。后来怎么拍也没有用了。

2024-03-16 14:22:34 448

原创 windows一开机一直循环:No Boot Device Found. Press any key to reboot the machine解决方法

二、选择Settiings/General/Boot Sequence。三、选择UEFI模式,四、选择下方APPLY。

2024-02-17 09:41:58 1124

原创 python量化开发笔记(二)

3、对比pandas列数据。5、工具函数:收集文件路径。

2024-02-07 09:11:09 390

原创 windows中多用户的pycharm无法打开的情况

1、原因:pycharm只能在一个用户下打开

2024-02-01 08:56:12 402

原创 python学习笔记

1、表示文件如果存在,在文件末尾添加二进制数据;不存在会创建一个新的二进制文件用于追加数据。6、数字长度不足2位,则左侧填充0。分笔数据计算秒钟数据和1分钟数据。2、将数据写入二进制文件。3、csv转Tick数据。4、删除成交额为0的数据。② 删除成交额为0的数据。15、从1分钟合成n分钟。17、整理分笔csv数据。1分钟数据合成n分钟数据。7、调整开盘和收盘价格。前复权、后复权、不复权。13、合成1分钟数据。① 删除不需要的数据。③ 获取上一个收盘价。④ 调整开盘数据时间。⑤ 调整收盘数据时间。

2024-01-22 09:56:26 383

原创 import data.stock as stModuleNotFoundError: No module named ‘data‘

2024-01-09 16:39:21 387

原创 python量化开发【中级进阶】

1、量化开发工程师:开发和测试量化交易系统软件,实现策略代码实盘运行。2、能够独立完成数据获取、数据采集、数据清洗、数据验证、挖掘特征等。1、证券机构:金融投研及金融工程团队、一般要求硕士以上。3、金融科技:通用策略模型开发、量化交易系统及平台开发。4、会计事务所:普华永道、Deloitte。2、证券公司:中信证券、国泰君安证券。1、投资银行:高盛、华泰联合证券。3、量化因子库开发及量化策略实现。3、私募基金:幻方量化、UBI。5、软件公司:蚂蚁集团、万得。1、量化数据采集、清洗及挖掘。

2023-12-22 18:47:50 1040

原创 python量化开发【初级入门】

α 策略:β 是与市场同涨共跌的部分,α 是独立于市场波动以外的部分,具体的做法可以通过做多股票组合(α+β),同时做空股指期货(-β),最终就剩下了绝对收益 α。利润表:净利润率【合同拿到手的钱】、期末现金及现金等价物余额【实际拿到的钱】通过参加股东大会、给企业高管打电话的方式:判断年报是否造假。2、技术面:股票收盘价、K线(日/周/月/年)、均线(5/10/20/60日)1、基本面:居民消费指数、人均国内生产总值(GDP)、净资产收益率(ROE)成交低靡:1%-2%成交温和:2%-3%

2023-12-11 22:05:36 1056

原创 炒股铁律执行

1、市场永远是对的,多找自己的原因。要适应市场,适应主力,抱怨外部因素没有任何意义。2、主力的对立面是散户,只有站在主力的角度去考虑问题,做散户情绪的利用者才是胜利者。3、若公司基本面无重大变化,股价远高于行业估值时释放利好要减仓,股价远低于行业估值时释放利空要加仓。4、精通研究一招,学多了会干扰你的判断。会千招,不如精一招。5、股市多变,逻辑不变。无非两种,一是短线资金情绪贯穿,二是长线公司经营价值体现,取其一即可。6、股市表面比的是技术,实际比的是认知和格局,交学费是必经过程,但要学

2023-12-11 21:20:26 67

原创 element表格第一个列变成最后一个处理方案

翻译过来就是这样子,说el-table不能嵌套el-table-column以外的元素。

2023-11-21 15:32:00 110

原创 Springboot 集成 mongodb

部分可以配置可以查看源代码 AbstractMongoClientConfiguration 类。三、MongoConfig配置类。二、yml 配置文件。

2023-11-07 17:10:15 790

原创 并发编程CompletableFuture用法

4.1 CompletableFuture的**get()**方法可以获取异步的结果,get方法是一个阻塞式等待的方法,也即get方法会等待异步任务的完成。4.3 异步任务完成时,whenComplete,exceptionally。4.关于CompletableFuture的其他相关用法。4.2 allOf : 等待所有任务完成完成。4.4 handle,方法完成后的后续处理。4.5 异步任务串行化。2.线程池参数配置类。

2023-10-21 15:20:52 250

原创 谷歌浏览查询http被自动转化成https导致页面读取失败问题处理

谷歌浏览器版本升级,安全问题考虑自动转化https。

2023-10-12 16:18:45 438

原创 日志巡检内容

2、redis容量是否充足,配置自动扩容(在扩容瞬间会有请求失效)3、APM高峰期:新生代、老年代、FullGC。3、容灾(自动重启、容器漂移 )4、websell查看核数和内存。2、日志巡检系统:权限申请。3、mq消费速率、消费堆积。QPS = 高峰点击/秒数。1、mysql慢查询。

2023-09-22 15:44:06 197

原创 java性能安全:OOM问题排查、Arthas分析高CPU问题、防止Dos攻击

4、由于 monitor、trace、watch 等命令是通过字节码增强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,因此诊断结束要执行 shutdown 来还原类或方法字节码,然后退出 Arthas。查看新生代最高1000M,如果大数据量调用,jvm会把产生的大对象分配在新生代,新生代full gc后放到老年代,老年代gc后触发OOM,就会像类似死循环一样,一直full gc了。3、如果调用入参不明确的话,可以使用 watch 观察方法入参,并根据方法执行时间来过滤慢请求的入参。

2023-09-21 20:53:30 1060

原创 DDD领域驱动设计

2、DDD 建立在面向对象方法学和敏捷软件开发方法之上,一方面保留了面向对象的精华,另一方面又弥补了早期方法的不足。4、DDD 的核心是领域建模。领域模型是浓缩的领域知识。此外,DDD 还重视业务与技术人员的沟通,以及如何应对变化。3、DDD 从面向对象和敏捷中提炼出了一套原则、模式和实践,使面向对象方法学在企业应用中更加容易学习和掌握。1、DDD 是一种开发复杂软件的系统化的方法学和思想。5、而 DDD 正是顺应了时代的要求,才日益普及起来。一、 DDD 的概念。

2023-09-05 11:56:39 186

原创 spring 错误百科

你可能忽略了 Sping Boot 中 @SpringBootApplication 是有一个默认的扫描包范围的。这就是一个隐私规则。如果你原本不知道,那么犯错概率还是很高的。类似的案例这里不再赘述。要完整接收到所有的 Header,不能直接使用 Map 而应该使用 MultiValueMap。你一定要意识到,当你的代码不变时,你的依赖变了,行为则可能“异常”了。一、使用Spring出错根源。

2023-09-01 21:24:23 414

原创 java代码设计方案

此外,MySQL 中的数据可以归档,我们可以在 ES 中保留更久的数据,而且查询历史数据一般并发不会很大,可以统一路由到 ES 查询。① 第一,从客户端的角度来说,缓存数据的特点一定是有原始数据来源,且允许丢失,即使设置的缓存时间是 1 分钟,在 30 秒时缓存数据因为某种原因消失了,我们也要能接受。a、方案一,对于不存在的数据,同样设置一个特殊的 Value 到缓存中,比如当数据库中查出的用户信息为空的时候,设置 NODATA 这样具有特殊含义的字符串到缓存中。直接查询聚簇索引,其性能会很高。

2023-08-31 20:51:44 442

原创 java安全问题处理

1、任何资金操作都需要在平台侧生成业务属性的订单,可以是优惠券发放订单,可以是返现订单,也可以是借款订单,一定是先有订单再去做资金操作。b、在测试阶段为了方便测试调试,我们通常会实现一些无需登录即可使用的接口,直接使用客户端传过来的用户标识,却在上线之前忘记删除类似的超级接口。1、用户密码不能加密保存,更不能明文保存,需要使用全球唯一的、具有一定长度的、随机的盐,配合单向散列算法保存。我们可以在页面或界面打开时请求固定的前置接口,为这个设备开启允许发送验证码的窗口,之后的请求发送验证码才是有效请求。

2023-08-31 16:41:01 318

原创 java定位问题工具

其中,S0 表示 Survivor0 区占用百分比,S1 表示 Survivor1 区占用百分比,E 表示 Eden 区占用百分比,O 表示老年代占用百分比,M 表示元数据区占用百分比,YGC 表示年轻代回收次数,YGCT 表示年轻代回收耗时,FGC 表示老年代回收次数,FGCT 表示老年代回收耗时。然后,Wireshark 捕捉这个网卡的所有网络流量。同样,如果没有条件使用图形界面(毕竟在 Linux 服务器上,我们主要使用命令行工具),又希望看到 GC 趋势的话,我们可以使用 jstat 工具。

2023-08-30 21:17:20 255

原创 java系统问题定位思路

这类问题,我们可以通过应用之前的负载均衡的流量或日志量来确认,诸如 Nginx 等反向代理都会记录 URL,可以依靠代理的 Access Log 进行细化定位,也可以通过监控观察 JVM 线程数的情况。2、如果是在测试环境排查问题,相比开发环境少的是调试,不过你可以使用 JDK 自带的 jvisualvm 或阿里的Arthas,附加到远程的 JVM 进程排查问题。③ 所有的中间件和存储都要做好监控,不仅仅是监控进程对 CPU、内存、磁盘 IO、网络使用的基本指标,更重要的是监控组件内部的一些重要指标。

2023-08-30 20:12:27 460

原创 后端工程师晋升之路

汇报其实是双向的,你跟上级多沟通的话,他可以反馈给你更多的信息,这个信息可能是你工作的方向,也可能是给你的一些资源,还可能是告诉你上级想要什么。因为高级语言的特性基本上都差不多,你只要学一些语法,用到的时候再去查更多的内容,然后做个项目,所以学一门语言可能也就需要一个月甚至会更快一些。而一些复杂的技术,虽然有先进的理念和设计,但你要驾驭它就需要很多成本,而且因为它的“新”往往还会存在各种各样的问题。在这个过程中,你会遇到很多困难,然后可能会想办法去学习一些现有技术的源码,这对技术深度的理解是非常有帮助的。

2023-08-30 19:15:00 310

原创 Java 8的重要知识点

场景:要通过 HashMap 实现一个缓存的操作,在 Java 8 之前我们可能会写出这样的 getProductAndCache 方法:先判断缓存中是否有值;如果没有值,就从数据库搜索取值;filter 方法传入一个 Predicate,实现对象的布尔判断,只保留返回 true 的数据;Lambda 表达式的初衷是,进一步简化匿名类的语法(不过实现上,Lambda 表达式并不是匿名类的语法糖)此外 Java 8 还提供了并行流的功能:通过 parallel 方法,一键把 Stream 转换为并行操作提。

2023-08-30 18:05:25 134

原创 java错误解决方案百科

② 二是,可能会极大地降低性能。场景:在一个类里有两个 int 类型的字段 a 和 b,有一个 add 方法循环 1 万次对 a 和 b 进行 ++ 操作,有另一个 compare 方法,同样循环 1 万次判断 a 是否小于 b,条件成立就打印 a 和 b 的值,并判断 a>b 是否成立。在 Java 中,CopyOnWriteArrayList 虽然是一个线程安全的 ArrayList,但因为其实现方式是,每次修改数据时都会复制一份数据出来,所以有明显的适用场景,即读多写少或者说希望无锁读的场景。

2023-08-29 20:56:45 288

原创 SpringBoot 模板模式实现优惠券逻辑

在这张图里,顶层接口 RuleTemplate 定义了 calculate 方法,抽象模板类 AbstractRuleTemplate 将通用的模板计算逻辑在 calculate 方法中实现,同时它还定义了一个抽象方法 calculateNewPrice 作为子类的扩展点。各个具体的优惠计算类通过继承 AbstractRuleTemplate,并实现 calculateNewPrice 来编写自己的优惠计算方式。一、计算逻辑的类结构图。

2023-08-21 17:34:08 400

原创 Spring Data JPA的@Entity注解

这时插入两条数据,数据库里面的值是MAIL/FMAIL,而不是男性、女性,如果是我们用@Enumerated(EnumType.ORDINAL),那么这时数据库里存储的是0,1。5、不同的关联关系的设置,@JoinCloum里面的name、referencedCloumName代表的意思是不一样的,很容易混淆,可以根据打印出来的sql调整。1、现在Entity里面定义@NamedEntityGraph,其他不变,其中,@NamedAttributeNode可以有多个,也可以有一个。

2023-08-21 14:43:48 1048

软件工具.zip

远程控制linux工具,Xshell,Xftp 6,可以远程上传文件,远程启动linux服务器

2019-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除