Java 基础知识

前言

1、Java

  • Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由詹姆斯·高斯林 (James Gosling) 和同事们共同研发,并在 1995 年正式推出。

  • Java 分为三个体系

    • Java SE(J2SE)(Java 2 Platform Standard Edition,Java 平台标准版)
    • Java EE(J2EE)(Java 2 Platform Enterprise Edition,Java 平台企业版)
    • Java ME(J2ME)(Java 2 Platform Micro Edition,Java 平台微型版)
  • 主要发展历史

    • 1995 年 5 月 23 日,Java 语言诞生。
    • 2004 年 9 月 30 日 18:00PM,J2SE 1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5 更名为 Java SE 5.0。
    • 2005 年 6 月,JavaOne 大会召开,Sun 公司公开 Java SE 6。此时,Java 的各种版本已经更名以取消其中的数字 “2”:J2EE 更名为 Java EE, J2SE 更名为 Java SE,J2ME 更名为 Java ME。
    • 2009 年 4 月 20 日,甲骨文(Oracle)74 亿美元收购 Sun。取得 java 的版权。
  • 主要特性

    • Java 语言是简单的
    • Java 语言是面向对象的
    • Java 语言是分布式的
    • Java 语言是健壮的
    • Java 语言是安全的
    • Java 语言是体系结构中立的
    • Java 语言是可移植的
    • Java 语言是解释型的
    • Java 是高性能的
    • Java 语言是多线程的
    • Java 语言是动态的

2、JDK 环境配置

  • JDK 是 Java 开发工具包,除了运行和编译相关的工具外,最重要的是封装了很多方法(function/method/api)。

  • JDK 文件目录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    根目录:/Contents/Home/(macOS 系统)

    bin:目录下存放 JDK 用于开发的一些终端命令工具。常见的工具如:
    “javac” 的作用是将 java 源文件编译为 class 文件(即自解码文件);
    “java” 命令的作用是运行 class 文件。

    db: 目录下是 java 开发的一个开源的关系型数据库;
    include:目录下是一些 C 语言的头文件;
    jre: 目录下 JDK 所依赖的 java 运行时;
    lib: 目录下存放 JDK 开发工具所依赖的一些库文件;
    man: 目录下存放 JDK 开发工具的说明文档。
  • JDK 版本的选择

    • 安装 JDK 的时候,有的人推荐 1.6(也有叫 6.0 的),也有说用 1.7 和 1.8 的。

    • 1.5 和 1.6 就太老了,连 1.8,Oracle 都发出 2019 年 1 月停止更新的通知了。

    • 1.7、1.8、1.9 都是成熟版本,原则上都可以选用,公司的商业项目 JDK 一般不轻易升级。

    • 1.9 用的就比较少了,加上上面的配套框架升级速度的考虑,1.9 版本第二推荐位。

    • 1.8 和 1.7 的应用都比较广泛了,那自然选更新更高级的版本,所以,最推荐用 1.8 版本。

2.1 JDK 和 JRE

  • JDK 和 JRE 的区别

  • JDK(java development kit)是 Java 的开发工具包。

  • JRE (java runtime environment) 是 Java 程序的运行环境。

2.2 环境配置

2.3 相关文档

3、Java 程序

3.1 实例

  • 创建文件 Hello.java(文件名需与类名一致)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Hello.java

    public class Hello {
    // main methord
    public static void main(String[] args) {
    // Output: Hello, world!
    System.out.println("Hello, world!");
    }
    }

3.2 命令行编译运行

  • .java 文件是 Java 的源文件,但是不能直接运行,必须先被编译成为 .class 文件才能够执行。

  • 一个 .java 源文件中可以包括多个类,但是只能出现一个 public 修饰的类,但是可以出现多个非 public 修饰的类。

  • 编译

    1
    2
    # 将 java 源文件编译为 class 文件(即自解码文件)
    $ javac Hello.java
  • 运行

    1
    2
    3
    4
    5
    # 运行 .class 文件
    $ java Hello

    # 终端输出
    Hello, world!

3.3 服务部署

  • 运行 jar 包

    1
    2
    3
    4
    5
    # 运行 jar 包
    $ java -jar demo.jar

    # 后台运行 jar 包,输出日志到文件 nohup.out 中
    $ nohup java -jar demo.jar >nohup.out 2>&1 &
  • 查寻进程

    1
    2
    # 查寻 java 进程
    $ ps -ef|grep java
  • 杀死进程

    1
    2
    # 杀死进程,17933 为具体进程号
    $ kill -9 17933
  • 前端部署

    1
    2
    # 前端部署,直接替换打包文件
    $ scp -r demo root@domain_name.com:/var/www/html/
  • 后台部署

    1
    2
    3
    # 后台部署,先替换打包文件 -> 杀死当前进程 -> 重新运行 jar 包
    $ scp -r demo.jar root@domain_name.com:/var/www/demo/
    $ nohup java -jar demo.jar >/var/www/demo/nohup.out 2>&1 &

4、文本注释

  • 文本注释

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // I am a single line comment!

    /*
    And I am a
    multi-line comment!
    */

    /**
    * This
    * is
    * documentation
    * comment
    */

5、数学方法

  • 数学方法
方法 描述
Math.max(a, b) a 和 b 的最大值
Math.min(a, b) a 和 b 的最小值
Math.abs(a) 绝对值 a
Math.sqrt(a) a 的平方根
Math.pow(a, b) a 的 b 次方
Math.round(a) 最接近的整数,+0.5 取整数
Math.sin(ang) 正弦
Math.cos(ang) ang 的余弦
Math.tan(ang) ang 的切线
Math.asin(ang) ang 的反正弦
Math.log(a) a 的自然对数
Math.toDegrees(rad) 角度 rad
Math.toRadians(deg) 以弧度为单位的角度度
Math.random() 随机数 [0, 1)
Math.PI π
Math.E 自然常数

6、关键字

  • 关键字列表

        

7、开发工具

  • Java 语言开发尽量保证系统内存在 1G 以上。

  • Linux 系统或者 Windows 95/98/2000/XP,WIN 7/8/10/11 系统。

  • Java JDK 8 及以上版本。

  • Notepad 编辑器或者其他编辑器。

  • IDE:Eclipse 或者 Intellij IDEA

8、软件、工具

9、Java 学习路线

9.1 章节目录

10、Java 实例

11、Java 面试问题

文章目录
  1. 1. 前言
  2. 2. 1、Java
  3. 3. 2、JDK 环境配置
    1. 3.1. 2.1 JDK 和 JRE
    2. 3.2. 2.2 环境配置
    3. 3.3. 2.3 相关文档
  4. 4. 3、Java 程序
    1. 4.1. 3.1 实例
    2. 4.2. 3.2 命令行编译运行
    3. 4.3. 3.3 服务部署
  5. 5. 4、文本注释
  6. 6. 5、数学方法
  7. 7. 6、关键字
  8. 8. 7、开发工具
  9. 9. 8、软件、工具
  10. 10. 9、Java 学习路线
    1. 10.1. 9.1 章节目录
  11. 11. 10、Java 实例
  12. 12. 11、Java 面试问题
隐藏目录