目录
参考:
什么是OOM
java.lang.OutOfMemoryError
。Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector.
为什么会OOM
参考:
Maven 概念
1. Apache Maven is a software project management and comprehension tool. 2. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
特性
Feature Summary The following are the key features of Maven in a nutshell: Simple project setup that follows best practices - get a new project or module started in seconds Consistent usage across all projects - means no ramp up time for new developers coming onto a project Superior dependency management including automatic updating, dependency closures (also known as transitive dependencies) Able to easily work with multiple projects at the same time A large and growing repository of libraries and metadata to use out of the box, and arrangements in place with the largest Open Source projects for real-time availability of their latest releases Extensible, with the ability to easily write plugins in Java or scripting languages Instant access to new features with little or no extra configuration Ant tasks for dependency management and deployment outside of Maven Model based builds: Maven is able to build any number of projects into predefined output types such as a JAR, WAR, or distribution based on metadata about the project, without the need to do any scripting in most cases. Coherent site of project information: Using the same metadata as for the build process, Maven is able to generate a web site or PDF including any documentation you care to add, and adds to that standard reports about the state of development of the project. Examples of this information can be seen at the bottom of the left-hand navigation of this site under the "Project Information" and "Project Reports" submenus. Release management and distribution publication: Without much additional configuration, Maven will integrate with your source control system (such as Subversion or Git) and manage the release of a project based on a certain tag. It can also publish this to a distribution location for use by other projects. Maven is able to publish individual outputs such as a JAR, an archive including other dependencies and documentation, or as a source distribution. Dependency management: Maven encourages the use of a central repository of JARs and other dependencies. Maven comes with a mechanism that your project's clients can use to download any JARs required for building your project from a central JAR repository much like Perl's CPAN. This allows users of Maven to reuse JARs across projects and encourages communication between projects to ensure that backward compatibility issues are dealt with.
参考:
概念
ANTLR 是用JAVA写的语言识别工具,它用来声明语言的语法,简称为“元语言”(meta-language)。
语法解析过程
ANTLR 语法识别一般分为二个阶段:
谁在使用 Antlr4
Hive
Spark
Oracle
Presto
Elasticsearch
常见的语法分析器
Antlr
Javacc
SqlParser (位于Alibaba的Druid库中)
其中Antlr和Javacc都是现代的语法解析器,两者都很优秀,其中Antlr要更胜一筹。而SqlParser只能解析sql语句,功能比较单一。