Docker运行Java出现Could not create Java Virtual Machine或insufficient memory或Cannot create GC Thread的原因 Docker运行Java出现Could not create Java Virtual Machine或insufficient memory或Cannot create GC Thread的原因
开源词法句法语法解析工具 Github链接地址:https://github.com/aiyojun/GrammarParser感兴趣的给个star,支持一下吧~这个小型开源项目是我自己维护的,里面提供了一些语法解析的解决方案。目前,项目包括:1. 用于解析SQL-Where子句,基于antlr的java语言工具,提供字符串语句到AST(抽象语法树),AST到字符串,AST到mongodb查询语法之间的转换。2. 简单的lex&yacc工具的用法介绍,用于解析条件表达式的,和SQL-Where子句类似。.
推荐一个超好用的视觉算法可视化分析工具 First of all, 先甩个项目github链接:https://github.com/aiyojun/cv-algo-analysis如果觉得不错的给个star吧~~鉴于视觉软件的开发成本太高,所以本人基于历史经验写了一个超级方便的可视化视觉算法的工具。帮助视觉发开者快速构建视觉算法模型,并同时快速验证算法模型的结构。视觉软件的开发成本高,主要是因为视觉涉及的技术栈复杂度较高。像C++开发者,需要学习opencv的C++ api。写cpp源代码,构造图像矩阵,调用api...到最后编.
关于GO语言的结构体和接口使用 GO的结构体与接口go使用结构体来封装基本类型,达到构造复杂数据结构的目的。golang提供了类似于面向对象思想中的var.method()写法,由于不提供class,所以go借助struct和interface来实现这种写法的。从语言的设计层面上讨论,任何的函数,方法或成员函数,都只是一段数据集上的操作。这也是为什么说:计算机程序是由数据结构和算法组成的。一段数据集是指数据结构,函数就是算法。结构体和函数接口在go中都是单独声明的,在实现接口的时候,将数据结构(struct)与接口函数(int
golang中的一些重要概念 基础概念1. go语言早期使用GOROOT,GOPATH等环境变量来构建项目2. GOROOT设置为go语言(如/usr/lib/go)的根目录3. GOPATH设置为项目根目录4. 使用GOPATH构建项目时,需要保持project/src,project/bin的目录结构5. go1.11之后引入mod概念,使用go.mod构建项目6. 使用go.mod构建项目时,无需project/src路径;go.mod只放于根路径下;子包使用pkg/subpkg作为包名被引入7. 使用go开发动
聊聊软件架构 刚好今天1024程序员节,来简单聊聊软件架构。软件架构在互联网企业用的比较多,主要是因为互联网企业构造的软件相对较大,需要实现的功能较多。所以在对这些很多功能进行实现时,需要进行规划,以便整个系统在运行时能按既定逻辑运作。也不是说其他领域的软件不需要架构,当然如果需要实现的软件达到一定规模时,也是要考虑使用设计良好的架构。随着近几年互联网行业的迅速发展,越来越多的开发者团队和个人贡献了很多开源软件。大家对各领域软件的设计也有各自的心得,像之前广为流传的领域驱动设计。这里说一下领域驱动设计,不讲概念,
从技术小白到编程大神的技术书籍推荐 本人算不上大神,也非计算机专业出身,本着一股热爱技术的精神,研究过各种计算机技术。对于知识的索取方式,比较习惯看书。当然,随着认识的加深,以及新技术的层出不穷,也常接触各种技术文档。早些时候阅读过很多不错的计算机书籍,对于计算机底层的深入认识很有帮助,这里整理记录下来,供感兴趣的人参考。第一阶段,大脑对于计算机的认识应该是一张白纸,要看的其实还是专业课要学习的东西。主要有1. C语言 - 计算机领域的大门,如果你开始就想往深处研究,C语言是逃不掉的,C语言是所有语言的开始2. 数据结构与算法(最好
LEX&&YACC--编译界的神 最近研究lex&&yacc,记录并总结一些重要的概念和解释。lex&&yacc是gnu开源的全文解析工具,lex用于词法解析,yacc用于语法解析。lex一般也称为token scanner/lexer,yacc称为parser generator(语法解析器生成器)。lex&&yacc这两个工具已经很老了,现代版本的工具为flex&&bison。两个工具可以结合使用,也可以只使用bison。基本原理lex词法解析,使用正则表达式进
带你领会真正的shell编程 关于linux的shell编程,由于网上缺乏系统的学习资料,部分教程也不够全面,有些博客只介绍了部分shell命令。根据我个人编写shell脚本的经验,对shell编程做个总结,带领大家深入地认识一些shell编程。首先,看一下这个:上面这段shell代码摘自我很久之前写过的一个项目,不过也是因为该脚本的需求简单,所以只是单纯的几条命令。在我看来,简单命令的堆积还算不上是真正的shell编程。真正的shell编程在我看来,应该是:本需要通过重量级的语言编写的程序,可以通过shell脚本快速的构建
arm-none-eabi与arm-none-linux-gnueabi的区别 ARM交叉编译工具有多个版本,注意区分。abi(application binary interface): 二进制程序接口eabi(embedded): 嵌入式二进制程序接口arm-none-eabi: 无操作系统,不支持系统调用的函数,如fork等。其使用专用于嵌入式开发的C程序库。arm-none-linux-eabi: 用于linux,使用glibc。GCC编译器arm-none-eabi-gcc: 编译裸机程序或系统,适用于ARM7/Cortex-M/Cortex-R