- 博客(377)
- 收藏
- 关注
原创 如何使用python做量化交易
它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式,通过学习各种图表的接口,可以做出让你满意的效果。我建议在windows下安装,可以使用, anaconda这个安装包,安装python环境的同时,并安装大量和计算相关的库,方便后续使用。实在是太方便了,你只要有一丢丢的编程基础就可以了。你只要在官网注册一个免费等级的账号,就能够满足你的需求;- Pandas纳入大量库和标准数据模型,提供高效的操作数据集所需的工具。数据的来源只要熟悉几个api接口的使用;,当然你也可以使用其他的接口。
2025-04-29 15:24:36
267
原创 一篇文章告诉你,C#、C++、Java、Python选哪个好
想学计算机的、或者想从事IT行业的朋友,经常会有这样的疑问:C#、C++、Java、Python这几门语言,选择哪个更好?本篇文章,结合我自己的经验以及同行的反馈,我了列举这4种语言的优缺点和应用情况。相信看完之后,你会对这4种计算机语言有一个更清晰的认识和判断。
2025-04-29 15:22:37
806
原创 传统架构已过时?揭秘互联网大厂疯抢的DDD技术:3步提升代码质量
防腐层:对于一些基础的接口有二次包装或者不同的需求,就以XXXManager进行封装成防腐层,对于一些二方微服务系统的调用,也建议设置成一个防腐层XXXServiceManager进行防腐管理,这样也就可以灵活的在领域层进行二方领域的简单调用,避免过多外部领域逻辑的侵入了。优点:贫血model偏重个性化,面向过程式。充血偏共性化,采用OO设计,类拥有其属性及对应的行为,通过将职责分配到相应的模型对象或Service,可以很好的组织业务逻辑,因此非常适合于复杂的企业业务逻辑的实现,以及可复用程度比较高。
2025-04-28 19:12:04
759
原创 深夜整理!55道BAT高频MySQL灵魂拷问,背完跳槽涨薪不再是梦想!
80%的求职者能写基本的CRUD,但被问到『mysql_fetch_array 和 mysql_fetch_object 的区别是什么?1、一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,35 、 mysql_fetch_array 和 mysql_fetch_object 的区别是什么?再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15?5 、 与 Oracle 相比 , Mysql 有什么优势?
2025-04-28 19:08:22
591
原创 Redis 缓存:穿透、雪崩、击穿原理,及最佳实践
缓存穿透:通过缓存空值和布隆过滤器解决。缓存雪崩:通过设置随机过期时间、多级缓存和异步更新解决。缓存击穿:通过互斥锁、热点数据永不过期和提前续期解决。通过合理设计缓存策略,可以有效避免 Redis 缓存三剑客问题,提升系统稳定性和性能。
2025-04-27 15:52:00
265
原创 如何使用 SQL SELECT 从表中检索出一个或多个数据列
目录本文介绍了如何使用 SQL 的 SELECT 语句来检索单个表列、多个表列以及所有表列。也介绍了如何返回不同的值以及如何注释代码。
2025-04-27 15:50:19
366
原创 记一次 xxl-job 实战
本篇文章主要记录项目中遇到的 xxl-job 的实战,希望能通过这篇文章告诉读者们什么是 xxl-job 以及怎么使用 xxl-job 并分享一个实战案例。那么下面先说明什么是 xxl-job 以及为什么要使用它。xxl-job 是什么?XXL-JOB 是一个,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。是将调度行为抽象形成平台,平台本身不承担业务逻辑,而是负责发起后,由接收调度请求并执行,这里的抽象为。通过这种方式即可实现与相互解耦,从而提高系统整体的稳定性和拓展性。
2025-04-26 13:56:54
715
原创 解决GC毛刺问题——转转搜索推荐服务JDK17升级实践
一方面,JDK17是目前最新的长期支持(Long Term Support,LTS)版本,相比其他版本,它能提供更稳定和持久的支持,同时也有大量企业应用了JDK17,有丰富成熟的使用经验。可以预见JDK17在未来一段时间也将会是主流版本,能得到更好的社区支持。另一方面,JDK17作为新一代版本,与旧版JDK8相比,既能与现有代码上保持兼容性,又在语法和GC算法等多个方面做出了重要改进和优化。如JDK17包含了可用于生产环境的ZGC,且它的性能在历代版本迭代下,得到大幅增强。类型推断。
2025-04-26 13:54:12
970
原创 Android gradle 依赖树变化监控实现(gradle dependency tree change
这里的方案是借鉴了 JakeWharton 大神的方案,在其基础之上进行了改造。原理大概如下分别计算当前,上一次的 dependency tree,用 Set<List> 储存,分别表示为 oldPaths,newPaths接着根据 oldPaths 和 newPaths 计算出 removedTree, addedTree, changedTree最后,根据 removedTree, addedTree 计算出 diff第一步。
2025-04-26 13:52:54
584
原创 后端接口性能差?试试这39个策略。两万字总结,太全了!
为了更好评估后端接口性能,我们需要对不同行为的耗时进行比较。从上图可以看出,一个CPU周期少于1纳秒,而一次从北京到上海的跨地域访问可能需要约30毫秒。怎么计算跨地域耗时呢?我们已知光在真空中传播,折射率为 1,其光速约为 c=30 万公里/秒,当光在其他介质里来面传播,其介质折射自率为 n,光在其中的速度就降为 v=c/n,光纤的材料是二氧化硅,其折射率 n 为 1.44 左右,计算延迟的时候,可以近似认为 1.5,我们通过计算可以得出光纤中的光传输速度近似为 v=c/1.5= 20 万公里/秒。
2025-04-25 13:45:02
739
原创 如何实现延迟任务,这11种方式才算优雅!
延迟任务在我们日常生活中比较常见,比如订单支付超时取消订单功能,又比如自动确定收货的功能等等。所以本篇文章就来从实现到原理来盘点延迟任务的11种实现方式,这些方式并没有绝对的好坏之分,只是适用场景的不大相同。
2025-04-25 13:32:42
613
原创 JVM参数太多?一网打尽常用JVM参数!
查看其他更多JVM相关参数可以参考官方文档:本篇文章介绍常用JVM参数,主要有GC日志、运行时数据区(栈、堆、元空间、直接内存)、OOM、垃圾收集器相关的参数,有效理解参数可以更好的进行JVM调优。
2025-04-25 13:24:12
579
原创 下载破10W+!2025Java面试终极八股文PDF,涵盖90%大厂真题
每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻炼几年,相信对自己能力的提升还是非常大的。从业十多年,我从面试者变成面试官,在 Java 面试上积累了比较丰富的经验。其实,很多面试者在搜集面试资料的时候都踩过一些为了规避这些“坑”,我跑了多家互联网公司,来确认 Java 面试中实际考察的和。
2025-04-24 17:08:01
1554
原创 OpenTelemetry日志体系
在当前OpenTelemetry的日志体系可以说是已经初步完成并且接近于GA了,但是从个人的观感上来说距离生产可用还是有一定的距离的。首先目前广泛使用的日志采集器Filebeat和Logstash本质上来说和OpenTelemetry Collector是二者取其一的关系,如果要完整启用OpenTelemetry日志体系,需要使用OpenTelemetry Collector来替换掉Filebeat和Logstash。
2025-04-24 14:06:03
820
原创 简单学习Java中的抽象语法树(AST)
抽象语法树(AST)是一种数据结构,代表了一种编程语言的抽象语法。它通常在编译器中用来解析源代码和生成机器代码。在Java中,AST通常由一个解析器创建,该解析器读取源代码并创建一个树状结构,代表代码的语法和结构。树中的每个节点都代表一个不同的语法结构,如类、方法或语句。使用AST,编译器可以更容易地分析源代码并识别任何错误或问题。例如,编译器可以使用AST来检查类型错误、未声明的变量或不当的控制流。一般来说,AST是编译器和其他需要分析和处理编程语言语法的工具的重要工具。
2025-04-24 13:53:52
358
原创 你是如何学习Java的?
下面是我给大家提供一个可以随便提问的Java交流群,我已经维护了3年多的时间,里面的人都是我认识了很多年的技术大佬,有问题可以在群里面提问,每天会有大佬专门给大家解答各种疑问,技术氛围非常好,如果你想快速提升,可以加入跟大家一起相互帮助,还有很多工作就业机会相互内推。一个好的程序员一定会利用好搜索引擎,我们现在学习Java所遇到的大部分问题基本都可以通过百度或者google解决,会搜索引擎本身也是一门技术,而很多Java初学者并不会使用搜索来解决自己的问题,通过搜索引擎可以很好的锻炼自己解决问题的能力。
2025-04-23 14:32:56
937
原创 Java 8系列之重新认识HashMap
作者:美团技术团队链接:https://zhuanlan.zhihu.com/p/21673805来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2025-04-23 14:30:04
977
原创 分布式系统架构终极指南:一文吃透核心技术栈与高薪进阶秘籍!
凌晨3点,张工程师盯着监控大屏上飙升的CPU曲线和雪崩式的服务超时报警,手指发抖地敲下了一行kill -9——这已经是本周第3次因分布式架构设计缺陷导致的全面崩溃。无论你是想从CRUD进阶为架构师,还是渴望用分布式经验拿下50万年薪,这篇指南都将成为你的终极跳板!掌握正确的技术栈与进阶路径,你完全可以用1年时间达到别人5年的架构水平!这些分布式核心难题时,都像在盲人摸象。,并揭秘大厂架构师绝不会外传的。事实上,90%的程序员在面对。
2025-04-22 14:39:42
733
原创 什么是看门狗机制?它是如何给Redis的Key续约?
看门狗”(Watchdog)是一个广泛应用于计算机科学和工程领域的术语,指的是一种监控机制,用于监督系统、应用程序或硬件的正常运行,并在检测到异常或故障时采取预定义的恢复措施。看门狗的主要目的是提高系统的可靠性和稳定性,防止系统挂起或出现长时间的无响应状态。本文,我们详细地分析了什么是看门狗以及Redisson 的看门狗机制,它通过自动续期锁的有效期,简化了分布式锁的管理,减少了开发人员手动处理锁续期的复杂性。然而,理解其工作原理和注意潜在的配置细节,对于确保系统的可靠性和性能至关重要。
2025-04-22 14:34:08
743
原创 SpringBoot自动配置的8个宝藏技巧!
作为开发者,我们也可以创建自定义的自动配置类,以便在特定条件下自动配置特定的 Bean。创建自动配置类:使用 @Configuration 和适当的 @Conditional 注解。@Bean}}在 spring.factories 中注册发布 Starter:将自动配置类打包在一个 Starter 中,供其他项目引入使用。通过上面 3个核心步骤,当我们在启动SpringBoot容器时,自定义的类就会被自动配置,实现我们要达到的预期。
2025-04-22 14:33:15
789
原创 大厂HR不会告诉你!阿里P8整理的25道Java场景题,刷完offer拿到手软!
在当今竞争激烈的 IT 行业中,Java 面试场景题具有至关重要的意义;首先,从企业的角度来看,场景题能够有效地评估候选人在实际工作中解决问题的能力。例如,当面试官提出一个关于高并发情况下 Java 程序性能优化的场景题时,候选人的回答能够反映出他们是否真正理解并掌握了相关的技术原理和实践经验。通过这种方式,企业可以筛选出那些不仅具备理论知识,还能在复杂的工作场景中灵活运用所学、迅速解决实际问题的优秀人才,从而降低招聘风险,提高团队整体的技术实力和工作效率。
2025-04-20 14:31:56
361
原创 SpringCloud OpenFeign + Nacos正确打开方式
OpenFeign 的全称是 Spring Cloud OpenFeign,它是Spring 官方推出的一种声明式服务调用和负载均衡组件。它的出现就是为了替代已经进入停更维护状态的 Feign(Netflix Feign)的。也就是说 OpenFeign(Spring Cloud OpenFeign)是 Feign 的升级版,它们的关系如下图所示:因为 Feign 停更维护了,所以 Spring 官方需要推出了一个新的新的框架来对 Feign 功能进行升级和扩展。
2025-04-20 14:28:06
694
原创 MySQL夺命15问?
原子性:事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;一致性:执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的;隔离性:并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;持久性:一个事务被提交之后。它对数据库中数据的改变是持久的, 即使数据库发生故障也不应该对其有任何影响。死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象。常见的解决死锁的方法。
2025-04-20 14:26:38
607
原创 深入理解java中“==”和“equals”的区别
了解 Java 中 == 运算符和 equals() 方法之间的主要区别,并了解在 Java 编程中如何有效地使用它们进行对象比较。ini复制代码;;;}}根据上面的代码,请看下列问题:a和b在内存中的表示是什么?编译时有什么优化策略吗?
2025-04-18 15:13:21
516
原创 Java多线程在实际工作中遇到的坑
当在Java中使用多线程时,尽管它有助于提升程序运行效率,但不恰当和不合理的使用可能带来灾难性的后果。因此,在实际项目中,强烈建议谨慎使用多线程。如果问题可以通过单线程解决,最好避免引入多线程,因为多线程的潜在问题确实不少且比较隐蔽。多线程编程中常见的问题包括竞态条件、死锁、上下文切换开销、资源限制以及线程间通信和协调等。这些问题可能影响程序的正确性和性能。因此,在讨论区,大家可以分享自己在实际项目中遇到的多线程问题,相互交流经验,共同进步。谨慎使用多线程并了解其潜在风险是确保程序稳定性和性能的关键。
2025-04-18 15:11:54
750
原创 阿里官方上线!号称国内Java八股文天花板(终极版)首次开源
失业潮即将来临,但还是有很多Java程序员没有找到工作或者成功跳槽,跳槽成功的也只是从一个坑中,跳入另一个坑中……在LZ看来,真正有意义的就业与跳槽,是要进入到一个有绝对潜力的行业或者薪资能实现爆炸式增长的。这件事不容易,但也没有想象的遥不可及,现在大环境不好,机会也不如以前多,除了让自身技术能力过硬,面试更是要好好准备!除了平时的技术积累与沉淀之外,剩下的就只能背八股了(虽然工作用不到,但面试就是要问,不背是不行的)。
2025-04-18 15:06:41
246
原创 年前福利,我愿称之为分布式事务最全面的总结
首先还是先说一下事务的定义吧,事务的英语是 transaction ,我们查找词典可以发现这个单词的中文解释是交易,买卖等含义,所以我们可以知道事务一定和交易密不可分他们才能共享一个英文单词,而交易的定义是什么呢?有句俗话说得好,一手交钱,一手交货,那这个就是交易的规则,而这个同时也是事务的定义。那么事务的官方定义是什么呢?事务是一系列操作的集合,这些操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的最小工作单元。
2025-04-17 12:57:17
877
原创 京东二面:MySQL 主备延迟有哪些坑?主备切换策略
主库完成一个事务,写入binlog。binlog 中有一个时间字段,用于记录主库写入的时间【时刻 t1】binlog 同步给备库,备库接收并存储到中继日志 【时刻 t2】备库SQL执行线程执行binlog,数据写入到备库表中 【时刻 t3】主备延迟时间计算公式:t3 - t1有没有简单命令,直接查看。在备库执行 show slave status 命令seconds_behind_master,表示当前备库延迟了多少秒。
2025-04-17 12:50:44
917
原创 SpringBoot接入轻量级分布式日志框架(GrayLog)
在文章正式开始之前,我分享下我以前负责过的一个系统,它的架构如下:每次当我查问题的时候,我都能把问题初步定位在,但为了能给业务方交代,我需要业务方面(日志信息就是铁证)。一个请求肯定是被这8台机器内的某一台处理,但具体是哪一台,我不知道。所以,我需要上每台机器上 grep 一把日志,然后才能找出对应的日志证明我的分析。有的时候,可能也需要一起参与进去,就排查一个问题,人都傻了了(翻看日志的时间占用了太久了)。
2025-04-17 12:49:25
603
原创 Redis+Caffeine两级缓存,让访问速度纵享丝滑
在高性能的服务架构设计中,缓存是一个不可或缺的环节。在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的压力。随着不断的发展,这一架构也产生了改进,在一些场景下可能单纯使用Redis类的远程缓存已经不够了,还需要进一步配合本地缓存使用,例如Guava cache或Caffeine,从而再次提升程序的响应速度与服务性能。
2025-04-17 12:47:36
923
原创 真的是最全的一致性hash环讲解了
一致性hash算法 由于 均衡性 持久性的映射特点 被广泛应用于负载均衡领域,比如 nginx 、dubbo 、等等 内部都有一致性hash 的实现 ,比如 dubbo ,当你调用rpc 接口的时候,如果有2个提供者,那么你可以通过配置 让其调用通过 一致性hash 进行计算 然后分发到具体的 某个实例接口上。
2025-04-17 12:42:48
774
原创 Netty之DefaultAttributeMap与AttributeKey的机制和原理
AttributeKey 可以想象成一个缓存 set ,存放了一组 key 的集合,与 DefaultAttributeMap 之间的关系是,后者中的一个 哈希图 存放键值对( k-v )的 v 即是 AttributeKey。有了 AttributeKey ,你自然会想到 Attribute ,两者之间又有什么关系呢?下面会讲,慢慢理解,跟着我思路!
2025-04-17 12:35:48
786
原创 一次 Spring 无法启动的问题排查(字节码篇)
有同学反馈,有一个项目从 kotlin 1.2 升级到 kotlin 1.3 以后 Spring 项目无法启动,报java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'xxx' method 错误没有引入任何其它变量,只是更改了 kotlin 的版本,猜测可能是编译出来的字节码不一样,出问题的函数如下。kotlin 处理函数中 default 值的方法是生成一个静态的函数,比如下面的函数。生成的部分字节码如下,主要看函数签名。
2025-04-17 12:33:38
606
原创 RabbitMQ 补偿机制、消息幂等性解决方案
首先我们要知道什么是幂等性,比如一个转账系统,A 要转给 B 100 元,当 A 发出消息后,B 接收成功,然后给 MQ 确认的时候出现网络波动,MQ 并没有接收到 ack 确认,那 MQ 为了保证消息被消费,就会继续给消费者投递之前的消息,如果再重复投递 5 次,则 B 在处理 5 次,加上之前的一次,B 的余额增加了 600 元,很明显是不合理的。,因为发送消息的过程中我们是无法确认消息是否能路由等,一旦消息丢失我们就无法处理,所以需要确认消息,避免消息丢失。
2025-04-17 12:32:16
310
原创 JVM 从入门到放弃之 ZGC 垃圾收集器精讲
本文主要是从概念上描述了 ZGC 的特征和工作过程。目前大多数互联网公司还是使用 jdk 8、jdk 11 主流使用的还是 ParNew + CMS 组合或者 G1。对于我们一线 Java 开发者应该具备新技术的学习热情和关注度,才能在激烈的社会竞争中保持优势。
2025-04-17 12:31:08
571
原创 synchronized底层细究(硬核)
synchronized 同步块是 Java 提供的一种原子性内置锁,Java 中的每个对象都可以把它当作一个同步锁来使用,这些 Java 内置的使用者看不到的锁被称为内置锁,也叫作监视器锁。
2025-04-16 13:59:47
742
原创 OpenFeign是如何识别RequestMapping注解的?
回到文章开头提的疑问,现在可以知道了 如果没有SpringMvc,OpenFeign能独立运行吗?答案是可以的,默认支持自己的注解,比如feign.RequestLine,feign.Body,OpenFeign如何做到支持SpringMvc注解的?通过实现Contract接口的SpringMvcContract, 里面会对SpringMvc注解的解析。
2025-04-16 13:58:02
1199
原创 全网注释第二全的GO教程-数组与切片(Array&Slice)
go复制代码package mainimport ("fmt""unsafe"// 切片也可以定义在全局// Steps1 定义切片// Steps 1-1: 类型 []T 表示一个元素类型为 T 的切片// 切片拥有长度和容量, 切片在添加数据时会自动扩容, 可以通过len(),cap()获取切片长度和容量// 类型为 int 的切片, 初始化后长度容量都为 0, 不指向任何底层数组&sliceInt,sliceInt,sliceInt,
2025-04-16 13:56:26
547
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人