Java教程

Day1. Java的特性和优势

本文主要是介绍Day1. Java的特性和优势,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java的特性和优势

八大特性

  1. 跨平台/可移植性

    这是Java的核心优势。Java在设计时就很重视移植和跨平台的问题。eg: Java的int永远都是32位。

  1. 安全性

    Java适合网络/分布式环境

  1. 面向对象

    面向对象是一种程序设计思想,适合大型软件的设计和开发。C++由于兼容C,使自身成为了带类的C语言,而Java则是完全的面向对象语言

  2. 简单性

    Java是C++语法的简化版。把C++的一些内容去掉了,eg: 头文件、指针、结构、联合、操作符重载、虚基类等。 但是语法也是基于C的。

  3. 高性能

    Java语言自身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(Just in time)即时编译技术提高运行效率。将一些热点字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。

6.分布式

Java是为Internet的分布式环境设计的,因为它能处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用RMI(Romote Method Invocation)使程序能通过网络调用方法。

7.多线程

多线程的使用可以带来更好的交互响应和实时行为。Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

8.健壮性

Java是一种健壮的语言,吸收了C/C++语言的有点,但去掉了其影响程序健壮性的部分(比如指针、内存的申请和释放等)

核心优势

源文件(.java)编译 字节码文件(.class)解释执行 JVM for Windows/Unix/Other

Java三大版本

  1. Java SE: Java的标准版,是基础和核心。也是Java EE 和 Java ME的基础,主要用于开发桌面应用程序。

  2. Java ME: Java的微缩版,主要应用于嵌入式开发,比如手机程序的开发。

  3. Java EE: Java的企业版,提供企业级应用开发的完整解决发难,比如开发网站和企业的一些应用系统,是Java应用最广泛的领域。目前还是主要偏向于Web开发。

JDK 和 JRE

JDK : Java Development Kit

包含了编译器和调试器等用于程序开发的文件

JRE: Java Runtime Environment

包含了Java虚拟机、库函数、运行Java应用程序和Applet所必须的文件

Java运行环境的三项主要功能:

  • 加载代码:由 class loader完成

  • 校验代码:由 bytecode verifier完成

  • 执行代码: 由runtime interpreter 完成

区别和联系:

JDK是JRE的超集,是在JRE基础上增加了编译器和其他的开发工具

JRE就是java运行时的环境,包括了JVM和其他一些java核心api,任何一台电脑,只有安装了JRE才能运行Java程序

如果只需要运行Java程序,那么只需要JRE(通常很小,包含了JVM),但是如果要开发Java程序,就需要安装JDK.

初识JVM

JVM: Java Virtual Machine

JVM是一种规范,可以使用软件来实现,也可以使用硬件来实现,就是一个虚拟的用于执行byte-codes字节码的计算机。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。

JVM负责将Java字节码解释运行,边解释边运行,这样速度会受到影响。JAVA提供了另一种解释运行的方法JIT(Just in time),可以一次解释完,再运行特定平台的机器码。

  1. JVM是指在一台计算机上由软件或者硬件模拟的计算机,类似于一个小巧而高效的CPU.

  2. byte-code代码是与平台无关的,是虚拟机的机器指令

  3. java字节码运行的两种方式

    • interpreter(解释)

      运行时解释字节码并执行

    • Just-in-time(即时编译)

      由代码生成器将字节码转换成本机的机器码,可以以较高速度执行

Java跨平台实现的核心就在于不同的平台使用不同的虚拟机

不同的操作系统有不同的虚拟机,Java虚拟机屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。

Java程序运行机制

编译型语言

编译型语言先将源码编译成机器语言,再由机器运行机器码,这样执行效率比较高,C和C++都是编译型语言

解释型语言

解释性语言在运行时才进行编译,每次运行都需要编译,效率比较低。JavaScript, Python都是解释型语言

二者区别

书籍翻译就是编译,同声传译就是解释。编译效率高,翻译一次可以多次运行;解释效率低,每次运行都需要重新翻译,但是跨平台性好。

Java运行机制

Java属于二者都有,既有编译过程,又是解释型语言。

Java语言虽然比较接近解释型特征,但是在执行之前已经预先进行了一次预编译,生成的是介于机器码和Java源码之间的中介代码,运行的时候则是由Java虚拟机解释执行。

第一步:编译

利用编译器(javac)将源程序编译成字节码文件 字节码文件名:原文件名.class

第二步:运行

利用解释器(虚拟机 JVM)解释执行class字节码文件

这篇关于Day1. Java的特性和优势的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!