结合代码理解Class文件中的Flags(2) 接《结合代码理解JVM中的Flags》着展开。 方法加同步标志后,在Class文件中会出现ACC_SYNCHRONIZED,但是它是如何运行的呢? image-20230320193543234 翻了下虚拟的介绍,虚拟机遇到此标志时会转成monitor,而且也介绍了它的逻辑与代码块的同步还是非常相近的(暂不展开虚拟机的实现),来看下代码块的同步是怎样的。如下图中所示,synchronized 2023-03-20 JAVA > Class文件 #JAVA #Class文件
结合代码理解Class文件中的Flags 本文重点在后面两张图。 JVM类标志: Flag Name Value Interpretation ACC_PUBLIC 0x0001 公有类 ACC_FINAL 0x0010 Final标识,不可是超类 ACC_SUPER 0x0020 在被调用的特殊指令调用时,特别处理超类方法 ACC_INTERFACE 0x0200 接口类 ACC_ABSTRACT 0x0 2023-03-17 JAVA > Class文件 #JAVA #Class文件
InnerClass有无static主要区别 非 static 类实现,为了能访问外部类,增加了this$0成员属性; 因为有了成员属性,所以在调用外部类时也就从了局部变量的加载操作,如下图所示,putfield后再调用init 现static的直接init有鲜明对比。 内部类有无Static区别 2023-03-16 JAVA > Class文件 #JAVA #Class文件 #InnerClass
【队列应用】Breadth First Search (BFS) 宽度优先搜索 Breadth First Search (BFS) 宽度优先搜索,顾名思义,搜索的过程是平铺开进行搜索,即从起点开始,将所有相邻的节点都搜索一遍,然后再搜索这些相邻节点的相邻节点,一层一层铺开。其搜索过程就像水中的涟漪,从中心开始,向四周进行扩散,直到遍历完。有兴趣可查看历史文章 img 之前有很多题都是以递归实现算法,今天讲的是结合队列实现。正如上面所说的,需要将所有和它相邻的节点都搜索 2023-03-11 算法 > BFS #算法
Calcite 应用于非大数据场景 问题1、关于 order by 问题 如下图1,Mysql 中子查询中有 group by ... order by ...,父查询中不再有相关排序操作,结果能保证子查询的结果顺序不被改变。 但是在 Calcite 中同样操作,结果就会不一致。究其终极原因是 Calcite 面向大数据场景,并且能在可度量的时间范围内交付结果。 The story for ORDER BY is similar 2023-03-08 大数据 > Calcite #大数据
PHP 项目的 env 文件替换方案 读完本文,宁宁组希望读者能从中了解到: .env 文件内容越多,服务资源消耗越大 .env 的替换方案有很多,ini 文件其实与 .env 没有区别,扩展的形式可尝试,但是对扩展的稳定性有要求 要适当的选择 require/require_once 问题描述 基于 Lumen 框架开发的项目,5 台 8c16g 的 cvm,跑空接⼝,当 qps 达到 3600+ 时,cpu 就已经达到了 60 2023-02-27 后端 > PHP #PHP #env
算法套路 - 双指针 以前读过关于算法的10+种解题套路。如《【算法】一篇讲完12种方法》、《总结 2021 面试中的常见 14 种算法套路》等。小编非常同意这些总结,也推荐读者朋友们去一个一个方法突破。不过,小编今天想说的是,结合不同的数据结构来理解算法套路将会事关功倍(不绝对)。 双指针是各种算法套路总结中都会提到的一种。今天小编也来讲讲。 小编认为双指针其实是一种范围较大的方法,它其实还可以再细分: 快慢指针 2023-02-26 算法 > 双指针 #算法
gRPC 连接池的一种实现方案 Google远程过程调用(Google Remote Procedure Call,gRPC)是基于HTTP 2.0传输层协议承载的高性能开源 RPC 软件框架,为管理和配置网络设备提供了一种 API 接口设计的方法。gRPC提供了多种编程语言,如C、Java、golong、python等。 gRPC可以作为数据传输协议与Telemetry技术配合使用,可实时、高速、精确的监控网络设备的运行状态 2023-02-19 算法 > 连接池 #算法
String 本学习计划适用于那些想要准备技术面试但不确定他们应该关注哪些问题的人。这些问题经过精心策划,因此 Level 1和 Level 2 将指导初级和中级用户解决涵盖大多数中端公司面试所需的数据结构和算法的问题。而 Level 3 用来帮助以顶级公司为目标的学习小伙伴。 本学习计划的题目小编解答在英文版 LeetCode 中尽可能超越 100% 提交。 第一题:同构字符串 从题目条件中可以分析出 2022-12-03 算法 > String #LeetCode
Prefix Sum 本学习计划适用于那些想要准备技术面试但不确定他们应该关注哪些问题的人。这些问题经过精心策划,因此 Level 1和 Level 2 将指导初级和中级用户解决涵盖大多数中端公司面试所需的数据结构和算法的问题。而 Level 3 用来帮助以顶级公司为目标的学习小伙伴。 本学习计划的题目小编解答在英文版 LeetCode 中尽可能超越 100% 提交 。 前缀和(Prefix sum)是算法题中比 2022-11-30 算法 > Prefix Sum #LeetCode