什么是java
什么是java,我感觉这对大多数刚入门java学习的同学都想了解的一个问题,我作为一个java小白,也非常想知道什么是java,不会的问题问百度。在百度百科上对于java的解释如下:
java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承,指针等概念,因此java语言具有功能强大和简单易用两个特征。java语言作为静态面向对象编程语言的代表,极好的实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
java具有简单性、面向对象、分布式、健壮性、安全性、动态性等特点。java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等
这种官方的解释我也是看的一头雾水,我也看了好多其他博主的博客,大概总结了一下:
java其实就是一种语言,不同的物种之间通过不同的语言进行交流,像我们中国人用汉语交流,老外用英文进行交流,动物之间也用它们奇特的语言进行沟通交流。java作为一种语言,其实就是我们和计算机之间进行交流的语言,你想让计算机帮你干一件事,用我们的汉语给他说“帮我打开新闻”,计算机听不懂,肯定就不会执行,这时候,就需要发挥java语言的作用了,我们通过编写java语言让计算机明白我们的意思,从而执行相应的指令。java是一种计算机语言,也是一门编程语言,我们日常接触的其他编程语言还有C、C++、Python、Go等。
JDK、JRE、JVM
什么是JDK
JDK(Java Development Kit) 是java语言的软件开发工具包,是整个java开发的核心,包含了java开发工具,也包含了java运行环境JRE和java的基础类库。
什么是JRE
JRE(Java Runtime Environment,Java运行环境),包括了java虚拟机和java程序所需的核心类库等,核心类库主要是java.lang包。如果想要运行一个已经开发好的java程序,计算机中只需要安装JRE即可。
什么是JVM
JVM(Java Virtual Machine),即java虚拟机, java运行时的环境,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机。java程序需要运行在java虚拟机上,不同的平台有自己的虚拟机,因此java语言可以实现跨平台。
说到跨平台,可能会有人问什么是跨平台性?原理是什么?
所谓跨平台性,就是java语言编写的程序,一次编译后,可以在多个系统平台上运行。
实现原理:java程序是通过java虚拟机上在系统平台上运行的,因此,只要该系统上安装了相应的java虚拟机,该系统就可以运行java程序。
三者之间的关系
JVM不能单独完成class的执行,在解释class的时候JVM需要调用解释所需的类库lib,在JDK目录下的jre文件里有一个bin文件夹和一个lib文件夹,我们可以把bin看作JVM,lib则是JVM工作所需要的类库,所以jre = jvm+lib。
在我们利用JDK开发了自己的java程序之后,通过JDK的编译程序(javac)将java程序编译成class字节码文件,在JRE中运行class字节码文件,JVM解析这些字节码,最后由os进行调用。
以上所有内容仅作为自己学习过程中的小结,随着后期的深入学习还会对同步的内容进行补充和修改。如能对各位博友有所帮助不胜荣幸。