【Java基础】01 Java概述

目录


  • 介绍java和常用的工具包

1. java概述


1.1. 特性

1.1.1. try catch finally 机制

参考:

  1. java(3)-深入理解java异常处理机制

1.2. 概念

  1. UDF
    UDF(User Defined Function)即用户自定义函数。

2. JVM


2.1. JVM概述


2.2. OOM

  • 什么是OOM

    1. OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError
    2. 官方说明: 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.
      意思就是说,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个error(注:非exception,因为这个问题已经严重到不足以被应用处理)
  • 为什么会OOM

参考:

  1. 什么是OOM,为什么会OOM及一些解决方法

2.3.


3. Maven


3.1. 概述

3.1.1. Maven概念及特性

  1. 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.
    
  2. 特性

    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.
    

参考:

  1. Apache Maven
  2. Maven的作用

4. Antlr4

4.1. 概述

4.1.1. 概念

  1. 概念
    ANTLR 是用JAVA写的语言识别工具,它用来声明语言的语法,简称为“元语言”(meta-language)。

  2. 语法解析过程
    ANTLR 语法识别一般分为二个阶段:

    1. 词法分析阶段 (lexical analysis)
      对应的分析程序叫做 lexer ,负责将符号(token)分组成符号类(token class or token type)
    2. 解析阶段
      根据词法,构建出一棵分析树(parse tree)或叫语法树(syntax tree)

4.1.2. 补充

  1. 谁在使用 Antlr4
    Hive
    Spark
    Oracle
    Presto
    Elasticsearch

  2. 常见的语法分析器
    Antlr
    Javacc
    SqlParser (位于Alibaba的Druid库中)
    其中Antlr和Javacc都是现代的语法解析器,两者都很优秀,其中Antlr要更胜一筹。而SqlParser只能解析sql语句,功能比较单一。


上一篇:c++(qt)播放wav文件的四种方式


下一篇:2022互联网年终奖大赏