专栏首页不安分的猿人重新学Java系列之Java简介

重新学Java系列之Java简介

1. Java的历史

Java 是1991年由 Sun Microsystems 的 James Gosling 创建的一种编程语言。Java 的目标是编写一次程序,然后在多个操作系统上运行该程序。Java 的第一个公开版本(Java 1.0)于1995年发布。Sun 于2010年被 Oracle 收购。Oracle 现在具有 Java 的管理权。在2006年,Sun 开始根据 GNU 通用公共许可证(GPL)使Java 可用。Oracle 继续了这个名为 OpenJDK 的项目 。

Java 的组成有:编程语言,编译器,核心库和运行时(Java 虚拟机)。Java 运行时允许软件开发人员使用 Java 编程语言以外的其他语言编写程序代码,该语言也可在 Java 虚拟机上运行。在 Java 平台主要包括 Java 虚拟机和 Java 核心库。

Java 官方网址: https://www.oracle.com/technetwork/java/javase/overview/index.html

Java语言特性:

  • 与平台无关:Java 程序使用 Java 虚拟机作为抽象,并不直接访问操作系统。这使得 Java 程序具有很高的可移植性。Java 程序可以在所有支持的平台(例如 Windows 或 Linux)上直接地运行,即一处编译多出运行。
  • 面向对象的编程语言:除原始数据类型外,Java中的所有元素都是对象。面向对象编程好的好处可提高代码的复用率、代码的灵活性和代码的可扩展性。
  • 强类型的编程语言:Java 是强类型的。例如:必须预先定义所使用变量的类型,并且相对严格地转换为其他对象,在大多数情况下必须由程序员来完成。
  • 解释和编译的语言:Java 源代码被转换为字节码格式,该字节码格式不依赖于目标平台。这些字节码指令将由 Java 虚拟机(JVM)解释。JVM 包含一个所谓的 Hotspot-Compiler,它将可提高性能的关键字节码指令转换为本机代码指令。
  • 自动内存管理:Java 管理用于创建新对象的内存分配和取消分配。该程序无法直接访问内存。所谓的垃圾收集器会自动删除不存在活动指针的对象。

Java 语法类似于 C++ 。Java 区分大小写,例如:变量 mykey 和 myKey 表示不同的变量。

2. Hello world Java程序

public  class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

3. Java虚拟机

Java虚拟机(JVM)是计算机的软件实现,该计算机执行类似于真实计算机的程序。

Java虚拟机是专门为特定操作系统编写的,例如,对于 Linux 和Windows,都需要特殊的实现。Java 程序由 Java 编译器编译为字节码。Java 虚拟机解释该字节码并执行 Java 程序。

4. Java运行环境

Java发行版通常有两种形式,即 Java 运行时环境(JRE)和 Java 开发环境(JDK)。JRE 由 JVM 和 Java 类库组成。它们包含启动 Java 程序所需的功能;JDK 还包含创建 Java 程序所需的开发工具。因此,JDK 由 Java 编译器,Java 虚拟机和 Java 类库组成。

5. Java开发流程

Java 源文件被编写为纯文本文档。程序员通常在集成开发环境 (Eclipse、Idea)中编写 Java 源代码。开发工具支持程序员完成代码编写任务,有效的使用开发工具开发效率和事半功倍。例如:它提供源代码的自动格式设置,重要关键字的突出显示,快捷键进行全局查找等。

有些时候,程序员用开发工具调用 Java 编译器( javac )。Java编译器创建字节码指令。这些指令存储在 .class 文件中,可以由 Java 虚拟机执行。

6. 垃圾收集器

JVM 自动重新收集其他对象未引用的内存。Java 垃圾收集器检查所有对象引用,并找到可以自动释放的对象。

尽管垃圾收集器使程序员无需显式管理内存,但程序员仍然需要确保他不保留不需要的对象引用,否则垃圾收集器无法释放关联的内存。保留不需要的对象引用通常称为内存泄漏

7. 类路径

在类路径定义了 Java 编译器和 Java 运行时查找 .class 文件加载。这些指令可以在 Java 程序中使用。

例如,如果要使用外部 Java 库,则必须将此库添加到类路径中才能在程序中使用它。

本文分享自微信公众号 - 不安分的猿人(Restless-man),作者:不安分的猿人

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 副业刚需

    近一个词突然火了起来,叫 副业刚需。我们知道房子是有刚需这一说法,没想到副业也出现了刚需。

    不安分的猿人
  • 2020年-1024=996,当程序员太南...

    有的人觉得,行业工资太低、发展缓慢,焦虑之下频繁跳槽转行,最终在眼花缭乱的新闻和起伏不定的工资数字中迷失了自己。

    不安分的猿人
  • 一直在用windows,但是这些技巧你可能还没用过

    每次复制文件时,都需要手动改文件名,在文件名称上添加作者;有时我们想将一个目录下同一种格式的文件,文件名改成有规则的名字,我之前也一个一个改过,确实很费劲。今天...

    不安分的猿人
  • Java 主要特性 原

    在 Java 中,所有的都是对象。正式因为 Java 基于对象模型,所以 Java 更加容易进行扩展。

    HoneyMoose
  • 荐书在精不在多,推荐一份夯实Java基础的必备书单!

    每一年的年初都是买书学习热情高涨的时候,虽然不知道你们是让这些书吃灰还是真的会好好阅读,但是有一些书籍,我还是希望能够推荐给你们。

    黄小斜
  • 「JAVA」初识Java平台、以及Java的跨平台实现原理

    Java 是强静态类型的编程语言,是`Sun Microsystems`公司(简称sun,已于2009年被oracle收购)于1995年推出的高级程序设计语言;...

    老夫不正经
  • 速读原著-Java核心技术(一)

    1996 年 Java 第一次发布就引起了人们的极大兴趣。关注 Java 的人士不仅限于计算机出版界,还有诸如《纽约时报》《华盛顿邮报》《商业周刊》这样的主流媒...

    cwl_java
  • 速读原著-Java核心技术(关于Java的常见误解)

    cwl_java
  • 针对“Java老矣,尚能饭否?”,我们想说:驰骋码场,Java你英姿依旧!

    养码人B:JAVA是学院派的玩具,功能和架构非常完善,但笨重,开发效率太低,javascript、python和go语言将不断蚕食JAVA的市场。

    养码场
  • 开发有效地 Java微服务需要Effective Java

    编写好的软件需要使用正确的工具。选择正确的框架、库和设计“聪明”的系统。因为有这些东西需要学习和担心,很容易忘记另外一件非常重要的事情:明智地选择使用编程语言。...

    程序你好

扫码关注云+社区

领取腾讯云代金券