Java基础—Java语言概要

概要

Java是使用最流行与最广泛的编程语言和平台。平台是帮助开发与运行程序的一种环境,而运行的应用程序可以使用该平台支持的任何语言进行编写。

Java是快速、可靠且安全的。从桌面程序到应用程序,超级计算机到游戏控制台,移动电话到互联网,Java被用于每一个领域。

Java易于学习,句法规则简单且容易理解。它是基于C++开发的。Java删除了一些容易让人混淆并且极少用到的一些功能,比如显示的指针、操作符重载等。相对于C++,Java负责内存管理(而C++是由程序员自已负责内存管理),它提供自动的垃圾回收。垃圾回收器自动回收未使用的对象。

Java历史

  • java就是一个名字,这个名字来源于印度尼西亚的一个小岛的名字
  • Java从1995年到如今(2022年)已经发布了18年版本,最新的为java18

Java的一些术语

1、JVM

即Java Virtual machine(JVM),通常称为JVM。一个程序有三个执行阶段。分别是编写、编译和运行。

  • 一个Java的程序员编写一个程序
  • 通过JAVAC编译器完成编译,javac是包含在Java开发工具包(JDK)中的主要java编译器。它接受Java程序作为输入,并且生成字节码作为输出。
  • 在程序的运行阶段,JVM执行通过编译器生成的字节码。

现在,我们知道了JVM的一个功能就是执行通过编译器生成的字节码。每一个操作系统都有不同的JVM,但是所有的操作系统执行完字节码后产生的输出都是相同的。这是为什么Java会被称为跨平台程序设计语言。

2、字节码

如1中所述,JDK的Javac编译器将Java的源代码编译成字节码,所以它才能通过JVM来运行。它能过编译器保存在以“.class”为结尾的文件中。如果想浏览字节码,可以使用像javap一样的反编译器。

3、JDK

即Java Development Kit(Java开发套件),当我们想要学习有关于字节码和JVM的时候,我需要用到JDK。所以,故名思义,它是一个完整的Java开发工具套件,包括编译器、Java运行环境、java的调试工具、java文档工具等。为了在Java中运行程序,我们需要安装JDK到我们的计算机上,以达到创建、编译以及运行java程序的目的。

4、JRE

即Java Runtime Environment(JRE),Java运行环境。JRE安装到我们的计算上之后,可以运行Java程序,但是它不能编译java源代码。JRE包含JVM、applet(java小程序)和插件。

5、垃圾回收器

即Garbage Collector,垃圾回收器,也叫GC。

在Java中,程序开发者不需要删除对象。为了删除和回收内存,JVM中有一个程序叫做垃圾回收器。垃圾回收器可以回收不再被引用的对象。所以Java通过自动的内存管理让程序员的生活更轻松。然而,程序员应该注意他们的代码,是否他们正在使用中的对象已经被使用了很长时间(持有对象的引用时间过长)。因为垃圾回收器不能回收正在被引用的内存中的对象。

6、类路径

即ClassPath。ClassPath是Java运行时和Java编译器查找要加载的.class文件的文件路径。默认的情况下,包括JDK提供很多类库。如果你想引入扩展类库,那么它们也应该添加到ClassPath中以后才能被使用。

Java语言的主要特性

1、跨平台

编译器将源代码转换成字节码,然后JVM执行通过编译器生成的字节码。字节码可以在任何平台上运行,比如,Windows、Linux或者macOS。意味着如果你在Windows上编译一个程序,那么它可以在Linux上运行,反之亦然。每一个操作系统都有不同的JVM,但是执行字节码后,所有操作系统产生的输出都是相同的。这就是为什么我们叫Java语言为跨平台编程语言。

2、面向对象编程语言

Object-Oriented,面向对象。根据对象的集合来组织程序是面向对象编程的一种方式,每个对象代表类的一个实例。

面向对象编程的四个概念是:

  • 抽象
  • 封装
  • 继承
  • 多态

3、简单

Java是一门简单的语言,它没有复杂的特性,象指针、操作符重载、多继承和显示的内存分配。

4、稳定

Java语言是稳定的,意思是可靠。它的开发方式是将大量的精力放在尽可能早的检查错误上,Java编译器能够检查出比其他语言更不容易检查出来的更多的错误。让Java变得稳定的主要功能是垃圾回收器、异常捕获和内存分配。

5、安全

在java中,我们没有指针,所以我们不能访问越界数组,也就是说,如果你尝试这样做的话会返回一个ArrayIndexOutOfBound的异常。这是为什么几个安全的漏洞,像堆栈溢出及缓冲区溢出不能在Java中被利用。还有java程序运在依赖于操作系统(环境)的一个环境中也使Java程序更加安全。

6、分布式

我们可以使用Java的编程语言创建分布式的应用程序。在java中,远程方法调用和企业Java Bean是用来创建分布应用程序的。Java程序可以很容易的分布到一个或更多的系统,只需要这些系统都通过网络连接在一起。

7、多线程

Java支持多线程。它是java的一个特性,允许并发运行两个或多个部分的程序,最大限度的利用CPU。

8、可移植性

我们都知道,在一台机器上编写的java代码可以运行在其他的机器上。java的跨平台特性(独立的字节码可以被任何接受的平台所执行)使得Java具有了可移值性。

9、高性能

Java的体系结构是以这样一种方式定义的,它降低了运行时的开销,有时候java使用即时(JIT-Just in Time)编译器,即时编译器编译代码是以灵活性为基础的,它只编译那些可以使应用程序运行得更快的那些被调用的方法。

10、动态的灵活性

Java是完全的面向对象,使用我们增加类变得更灵活,在一个已经存在类中添加一个新的方法,甚至通过子类可以在其内部创建一个新的类。java甚至支持使用其他语言(像C、C++)编写的方法,这些函数被称为本地方法。这是来自于Java的反射机带来的好处。

11、沙盒式执行

Java程序是运行在一个独立的空间的,它允许用户执行应用程序而不影响低层系统,这是在字节码校验机的帮助下完成的。字节码校验机还提供附加的安全机制,它的任务是检查代码是否存在任何的违规的访问权限。

12、一次写任何地方运行

Java应用程序生成一个“.class”文件,他们与我们的应用程序相对应,只是它包含的是二时制格式的代码。它提供了带来了体系中立架构的便利性,这是由于字节码不依赖于任何机器的体系架构。这就是Java在全球范围内的企业IT产业应用很广泛的原因。

13、编译和解释的实力

很多语言都有着它们的设计目的,要么是编译语言,要么就是解释语言。但是Java的对二者整合提升强大的实现。像Java编译器将源代码编译成字节码,并且JVM将字节码执行成依赖于操作系统的机器执行码。

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注