- 博客(17)
- 收藏
- 关注
原创 AST(抽象语法树)分析用于C/C++ 源文件头文件对比
文章目录AST(抽象语法树)分析用于C/C++ 源文件头文件对比背景分析与设计词法解析:C系列代码文本转化为对象遍历语法树:寻找感兴趣的元素抽取收集:针对特定AST节点问题1:参数的命名空间问题,纯虚函数不一点要实现问题问题2:类中类嵌套的层次关系问题如何表达问题3: 函数指针被误识别为函数声明问题问题4:头文件直接对函数进行inline实现问题5: 默认返回值问题问题6:宏展开导致语法结构,不做文件联动(include宏定义)无法解析数据结构:承载结果输入输出:序列化、反序列化对比能力:最终实现寻找差异程
2021-03-15 10:49:39
5878
原创 java核心技术 基础知识<14章 并发 part2>
文章目录java核心技术 基础知识<14章 part2>14章 part214.7 线程安全的集合14.7.2 map条目的原子更新14.7.3 并发散列的批操作14.7.4 并发Set视图14.7.5 写数组的拷贝14.7.6 并行数组算法14.7.7 较早的线程安全集合java核心技术 基础知识<14章 part2>14章 part214.7 线程安全的集合包前缀:java.util.concurrent.XXXConcurrentLinkedQueue<E>// 无边界非阻塞的
2020-09-12 09:40:47
279
原创 java核心技术 基础知识<集合&并发part1>
文章目录java核心技术 基础知识<第9及14章>9 泛型程序设计9.5 算法9.6 遗留的集合14 并发java核心技术 基础知识<第9及14章>9 泛型程序设计9.5 算法排序和混排:java.util.Collectionsstatic <T extends Comparable<? super T>> void sort( List<T> elements); // 归并排序static void shuffle(List<?> ele
2020-09-09 14:35:09
238
原创 java核心技术 基础知识<第8-9章>
文章目录java核心技术 基础知识<第8-9章>8 泛型程序设计8.1 为什么要使用泛型程序设计8.2 定义简单泛型类8.3 泛型方法8.4 类型变量的限定8.5 泛型代码和虚拟机8.6 约束与局限性8.7 泛型类型的继承规则8.8 通配符类型8.9 反射和泛型9 集合9.1 Java集合框架9.2 具体的集合9.3 映射9.4 视图与包装器java核心技术 基础知识<第8-9章>泛型的经典应用即集合。8 泛型程序设计Java 泛型更加详尽的信息Generic programming。8.1 为
2020-09-03 19:42:38
233
原创 java核心技术 基础知识<第6-7章>
文章目录java核心技术 基础知识<第6-7章>6 接口、lambda表达式与内部类6.4 内部类6.5 代理7 异常、断言和日志7.1 处理错误7.2 捕获异常7.3 使用异常机制的技巧7.4 使用断言7.5 记录日志7.6 调试技巧java核心技术 基础知识<第6-7章>6 接口、lambda表达式与内部类6.4 内部类详解内部类使用javap反编译.class内部类是一种编译器现象!与虚拟机无关,编译器会把内部类翻译成$分隔的外部类名与内部类名的常规类文件,而虚拟机对此一无所知。为什么要
2020-09-01 19:32:58
239
原创 java核心技术 基础知识<第5-6章>继承,接口
文章目录java核心技术笔记5 继承5.2 Object: 所有类的超类5.3 泛型数组列表 ArrayList<>5.4 对象包装器与自动装箱5.5 参数数量可变的方法5.6 枚举类5.7 反射5.8 继承的设计技巧6 接口、lambda表达式与内部类6.1 接口6.2 接口示例6.3 lambda表达式java核心技术笔记5 继承C++注释:C++用冒号,且有私有继承、公有继承和保护继承。Java中只有公有继承。public class Manager extends Employe
2020-08-31 16:02:39
183
原创 java核心技术 基础知识 阅读笔记<1-4章>
文章目录java核心技术笔记1 概述2 环境3 基本结构4 对象与类5 继承6 接口、lambda表达式与内部类7 异常、断言和日志8 泛型9 集合10 图形程序设计11 事件处理12 Swing用户界面组件13 部署14 并发java核心技术笔记1 概述2 环境3 基本结构4 对象与类5 继承6 接口、lambda表达式与内部类7 异常、断言和日志8 泛型9 集合10 图形程序设计11 事件处理12 Swing用户界面组件13 部署14 并发...
2020-08-29 16:23:32
229
原创 基于AST分析的源码定制化修复扩展方案
文章目录基于AST分析的源码定制化修复扩展方案预备知识解决方案AST分析思路1. 待修改代码筛选filter2. 原代码与目标代码之间的差异分析3. AST Node替换4. 重新生成文件goland自动保存效果演示:基于AST分析的源码定制化修复扩展方案背景:编程语言: golangIDE: jetbrains系列,goland业务需求:某种代码(例:日志打印)写作规范需要修改。修改规则略复杂,简单替换无法完成,现存代码量极大。进阶需求:由于DFX等原因,造成代码引入额外代码,比较丑陋。
2020-08-06 15:30:55
641
原创 java学习笔记 head first java
文章目录golang to javaHead First Javagolang to javagolang工程师,最近开始学习一些javaHead First Javainstanceof相当于断言Dog d = new Dog()Object o = dif (o instanceof Dog) { Dog d = (Dog)o}interface在java和golang中基本一致,java中的interfece是一个100%抽象类,所有函数都是抽象的。必须要用implements显
2020-07-30 11:01:14
1378
原创 《重构》——第二次阅读笔记。golang视角
文章目录第二次阅读再版序译序序前言第二次阅读这本是作者第二次阅读,首次阅读是任务驱动的,当时正在进行一项大型的重构,吸取袁英杰顾问的设计思路,对原来质朴的设计思想进行了归纳,对业务进行了更深度的建模,对代码写作模式进行了重定义。那时候为了追上顾问的思路,阅读了《重构》和设计模式相关资料,对个人提升作用很大。好书得读多遍,大半年后的今天,开始第二次阅读。这次阅读不带任务,纯粹是想从中再汲取些知识,也许会有更深刻的体验。再版序再版序中提到两种常见的观点。只要掌握重构思想就足够了,没必要记住详细的重
2020-07-06 23:08:43
502
原创 Leetcode每日一题——思路小记
文章目录LeetCode每日一题T15三数之和LeetCode每日一题T15三数之和不重复问题—>排序,遇到相同值直接跳过在排序数组中,Fix A, find B+C = -A的方式:双指针。x1 < x2 < x3 < x4 < x5求 xi + xj = -A的思路,双指针向内收缩,是可以遍历所有情况的。理解方式:双指针是对暴力法的一个剪枝。二、双指针法的应用(1)和为sum的两个数(2)判断链表是否有环(3)奇偶排序(4)求单链表的中间元素(5)
2020-07-06 21:50:01
262
原创 golang数据结构可视化分析
文章目录solution of golang数据结构分析问题来源go的背景介绍数据结构分析方案一——golang编译前端之AST阅读资料AST是什么方案的可行性分析优劣势分析还能用ast做什么数据结构分析方案二——golang反射特性阅读资料反射的简单解释可行性分析优劣势分析结果的呈现形式实验最终实验结果solution of golang数据结构分析问题来源工作中我们经常需要对数据结构进行各种维度的分析,例如,层次结构、静态规格、运行时内存大小、拥有的函数、实现的接口等等。作者前段时间在进行数据库
2020-07-06 10:03:41
1791
原创 关于会话标识的思考
会话管理的key专题一个会话可以理解为多个网元实体处理的一个共同的资源,这种资源通常是用户端和服务端之间创建的关联。通过这种关联,Client/Server两端就可以互相发送数据,就同一资源进行处理。在会话建立的过程中,可能有多个网络模块参与,且一个网络模块不仅服务于一个会话。这种多对多的关系如果处理不当,会导致“数据不通,记错费用,串号(对于通信领域)” 等严重的问题,因此如何合理的标识一个...
2020-05-07 20:12:03
3184
原创 我的golang学习之路
目录我的golang学习之路golang知识地图功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入我的golang学习之...
2020-05-04 23:13:37
731
原创 需求设计思维导图
需求设计的思维导图需求分析需求管理How : 需求分析What : 需求分析Why : 需求分析Why 需求管理What 需求管理How 需求管理基础概念分层分类(横纵项)需求分析中的问题磨刀不误砍柴工关键词:迭代过程,Use-Case,UML,质量准则分析活动过程:愿景->目标->特性->系统需求->功能需求->模块需求Use-Case分析法(UML用例图)伪需求...
2020-04-23 10:12:37
3301
原创 阿里2017算法工程师在线笔试编程——8月25日
题1:周期开放点的最短路问题题目描述:给定拓扑结构,两点间距离,源点,汇点,每个节点周期性开放关闭,各点周期不同。求:源点到汇点的最短时间。例子:90 31 52 73 34 55 76 97 38 5140 1 40 7 81 2 81 7 112 3 72 5 42 8 23 4 93 5 144 5 105 6 26 8 66 7 17 8 7
2017-08-29 17:56:34
3802
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人