作者:CHAITANYA SINGH

来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=3

JAVA由Sun Microsystems Inc于1991年开发,后来被Oracle Corporation收购。它由James Gosling和Patrick Naughton开发。它是一种简单的编程语言。在java中编写,编译和调试程序很容易。它有助于创建模块化程序和可重用代码。

Java术语

在我们开始学习Java之前,让我们熟悉常见的Java术语。

Java虚拟机(JVM)

这通常称为JVM。之前,我们讨论JVM让我们看看程序执行的各个阶段。阶段如下:我们编写程序,然后编译程序,最后运行程序。

1)程序的编写当然是由像你我这样的java程序员完成的。

2)程序的编译由javac编译器完成,javac是java开发工具包(JDK)中包含的主要java编译器。它将java程序作为输入并生成java字节码作为输出。

3)在第三阶段,JVM执行编译器生成的字节码。这称为程序运行阶段。

所以,现在我们知道JVM的主要功能是执行编译器生成的字节码。每个操作系统都有不同的JVM,但是在执行字节码后它们产生的输出在所有操作系统中都是相同的。这就是我们将java称为平台无关语言的原因。

字节码

如上所述,JDK的javac编译器将java源代码编译成字节码,以便它可以由JVM执行。字节码由编译器保存在.class文件中。

Java开发工具包(JDK)

在解释JVM和字节码时,我使用了JDK这个术语。我们来讨论一下。顾名思义,这是完整的Java开发工具包,包括JRE(Java运行时环境),编译器和各种工具,如JavaDoc,Java调试器等。为了创建,编译和运行Java程序,您需要在计算机上安装JDK。

Java运行时环境(JRE)

JRE是JDK的一部分,这意味着JDK包含JRE。如果在系统上安装了JRE,则可以运行java程序,但无法编译它。JRE包括JVM,浏览器插件和applet支持。当您只需要在计算机上运行java程序时,您只需要JRE。

这些是使java中的初学者感到困惑的基本java术语。有关完整的java词汇表,请参阅此链接:https://docs.oracle.com/javase/tutorial/information/glossary.html

JAVA的主要特点

Java是一种独立于平台的语言

编译器(javac)将源代码(.java文件)转换为字节代码(.class文件)。如上所述,JVM执行编译器生成的字节码。此字节代码可以在任何平台上运行,例如Windows,Linux,Mac OS等。这意味着在Windows上编译的程序可以在Linux上运行,反之亦然。每个操作系统都有不同的JVM,但是在执行字节码后它们产生的输出在所有操作系统中都是相同的。这就是我们将java称为平台无关语言的原因。

Java是面向对象的语言

面向对象编程是一种将程序组织为对象集合的方法,每个对象都代表一个类的实例。

面向对象编程的4个主要概念是:

抽象化

封装

继承

多态

简单

Java被认为是一种简单的语言,因为它没有像运算符重载,多重继承,指针和显式内存分配这样的复杂功能。

健壮的语言

稳健意味着可靠。Java编程语言的开发方式非常强调早期检查可能的错误,这就是为什么java编译器能够检测其他编程语言中不易检测的错误的原因。使其健壮的java的主要特性是垃圾收集,异常处理和内存分配。

安全

我们没有指针,我们无法访问超出绑定的数组(如果你试图这样做,你会得到ArrayIndexOutOfBoundsException)。这就是为什么在Java中无法利用堆栈损坏或缓冲区溢出等几个安全漏洞的原因。

Java是分布式的

使用java编程语言我们可以创建分布式应用程序 RMI(远程方法调用)和EJB(Enterprise Java Bean)用于在java中创建分布式应用程序。简单来说:java程序可以分布在多个使用Internet连接相互连接的系统上。一个JVM(java虚拟机)上的对象可以在远程JVM上执行过程。

多线程

Java支持多线程。多线程是一种Java功能,允许并发执行程序的两个或多个部分,以最大限度地利用CPU。

便携性

如上所述,在一台机器上编写的java代码可以在另一台机器上运行。平台无关的字节代码可以被携带到任何平台以便执行,从而使java代码可放到不同平台上运行。

最新文章

  1. 高级javascript---严格模式
  2. Yii2中如何将Jquery放在head中的方法
  3. Jenkins的配置(rpm red hat方式)
  4. [linux] linux shell 将解析完毕的文件备份至其他目录
  5. STL---vector(向量)
  6. POJ1364 King
  7. 提高 Linux 上 socket 性能
  8. dialog参数、方法以及事件
  9. silverlight视频、音频
  10. Appium Android Bootstrap源码分析之命令解析执行
  11. 教程,Python图片转字符堆叠图
  12. SpringCloud @FeignClient的类注解@ReqestMapping无效报错:No message available","path":"/xxxx
  13. 靠谱好用,ANDROID SQLITE 增删查改
  14. Python day 02
  15. Table的两种处理方法记录
  16. freeswitch 显示主叫名称和主叫号码
  17. 纯css3实现的动画导航菜单
  18. POJ 1035 Spell checker (模拟)
  19. Pytest - 进阶功能fixture
  20. 机器学习之路:python 字典特征提取器 DictVectorizer

热门文章

  1. LaTeX常用的符号
  2. HDU1852 Beijing 2008(快速幂+特殊公式)
  3. BZOJ_4809_皇后_爆搜
  4. mybatis编写流程(老版本的方式,新版本用接口式编程)
  5. 截图工具,更改系统默认快捷键,系统配置实用程序,以管理员身份运行cmd(win7)
  6. PHP 单引号与双引号的区别 SQL中的使用
  7. ceph学习之pool
  8. 关于git被误删除的分支还原问题
  9. 1、css选择器
  10. python类的特殊成员和方法