如何理解Java的跨平台特性操作

Java的跨平台特性

1、java的跨平台是指

java在运行时是凌驾于os之上,是在jvm中运行的,跟os没有直接联系。

2、java跨平台主要是由java的编译方式决定的

因为java是通过jvm先编译再执行,它编译的.class文件是底层的实现不是针对操作系统的,所以什么操作系统并不影响java代码的执行。

3、要运行Java程序

必须要安装JDK(Java Development kit),不同的系统需要有不同的JDK。因为JDK内部有JVM(虚拟机),通过虚拟机,可以将我们的原文件转化为机器最终可以识别的机器语言。虚拟机它其实是借助电脑本身的设备及其他功能来实现的一个模拟机器。

4、虚拟机是怎么样把我们的原文件变为机器可识别语言的呢?

  • 首先,我们编写的源程序(扩展名为.java),虚拟机通过JDK中的“javac.exe”此程序,就可以将我们的源程序转化为Java字解码程序(扩展名为.class)。
  • 其次,转化为了自解码程序后,通过“java.exe”程序,可以将自解码程序在对应的操作系统下将Java自解码解释执行。通过操作系统,就实现了机器可识别的语言了。
  • 值得注意的是,不是所有的系统都能运行Java的。因为如果此操作系统上,没有安装Java自解码程序,那么Java语言在这个平台上是运行不了的。

Java跨平台性及语言特点

1、请解释Java语言的跨平台特性

解析:虽然不知道什么是跨平台也可以使用Java语言进行编程,但是对于一个Java编程员来说,理解跨平台特性能够更深入掌握Java语言,所以企业中往往要求应聘者至少理解这个特性。

Java的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。他的意思就是如果用Java语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。之所以能实现跨平台的特性。主要得益于Java虚拟机(JVM),JVM解释器在运行Java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所以可以实现同样的应用在不同平台上都能运行。

2、请列举JAVA语言的主要特点

了解一门语言,往往从熟悉该语言的主要特点开始入手,所以企业也常常通过应聘者对JAVA语言特点的掌握程度而判断其语言基础是否扎实。

JAVA语言有很多特点,主要包括

  • ①跨平台性:一个应用可以不经过修改直接运行到不同的平台上。
  • ②面向对象:JAVA语言是一门面向对象的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。
  • ③解释执行JAVA应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。
  • ④自动回收:JAVA应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 深入理解Java虚拟机体系结构

    1概述 众所周知,Java支持平台无关性.安全性和网络移动性.而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么.正是得益于Java虚拟机,它号称的"一次编译,到处运行"才能有所保障. 1.1Java程序执行流程 Java程序的执行依赖于编译环境和运行环境.源码代码转变成可执行的机器代码,由下面的流程完成: Java技术的核心就是Java虚拟机,因为所有的Java程序都在虚拟机上运行.Java程序的运行需要Java虚拟

  • Java的特点和优点(动力节点整理)

    Java的特点 Java语言是一种优秀的编程语言.它最大的优点就是与平台无关,在Windows 9x.Windows NT.Solaris.Linux.MacOS以及其它平台上,都可以使用相同的代码."一次编写,到处运行"的特点,使其在互联网上广泛采用. 由于Java语言的设计者们十分熟悉C++语言,所以在设计时很好地借鉴了C++语言.可以说,Java语言是一种比C++语言"还面向对象"的一种编程语言.Java语言的语法结构与C++语言的语法结构十分相似,这使得C+

  • Java JDK1.5、1.6、1.7新特性整理

    一.Java JDK1.5的新特性 1.泛型: List<String> strs = new ArrayList<String>();//给集合指定存入类型,上面这个集合在存入数据的时候必须存入String类型的数据,否则编译器会报错 2.for-each 例如上面这个集合我们可以通过for-each遍历,这样更加简单清晰 for(String s : strs){ System.out.println(s); } 注意:使用for-each遍历集合时,要遍历的集合必须实现了It

  • 如何理解Java的跨平台特性操作

    Java的跨平台特性 1.java的跨平台是指 java在运行时是凌驾于os之上,是在jvm中运行的,跟os没有直接联系. 2.java跨平台主要是由java的编译方式决定的 因为java是通过jvm先编译再执行,它编译的.class文件是底层的实现不是针对操作系统的,所以什么操作系统并不影响java代码的执行. 3.要运行Java程序 必须要安装JDK(Java Development kit),不同的系统需要有不同的JDK.因为JDK内部有JVM(虚拟机),通过虚拟机,可以将我们的原文件转化

  • 初步理解Java的泛型特性

    在Java SE1.5中,增加了一个新的特性:泛型(日本语中的总称型).何谓泛型呢?通俗的说,就是泛泛的指定对象所操作的类型,而不像常规方式一样使用某种固定的类型去指定.泛型的本质就是将所操作的数据类型参数化,也就是说,该数据类型被指定为一个参数.这种参数类型可以使用在类.接口以及方法定义中.   一.为什么使用泛型呢?      在以往的J2SE中,没有泛型的情况下,通常是使用Object类型来进行多种类型数据的操作.这个时候操作最多的就是针对该Object进行数据的强制转换,而这种转换是基于

  • java学习之理解自动拆装箱特性

    目录 一.自动装拆箱是什么? 二.拆装箱的使用 1.引入包装类的原因: 2.自动拆装箱的运用 3.一些典型举例 一.自动装拆箱是什么? 有时,需要将int这样的基本类型转换为对象.所有的基本类型都有一个与之对应的类,例如 Integer类对应基本类型int.通常,这些类被称为包装器. 这些包装类对应基本数据类型: Integer , Long , Float , Short , Byte, Charater , Boolen; (前六个类派生于公共的超类Number) 包装类是不可变的,即一旦构

  • 深入理解Java之jvm启动流程

    jvm是java的核心运行平台,自然是个非常复杂的系统.当然了,说jvm是个平台,实际上也是个泛称.准确的说,它是一个java虚拟机的统称,它并不指具体的某个虚拟机.所以,谈到java虚拟机时,往往我们通常说的都是一些规范性质的东西. 那么,如果想要研究jvm是如何工作的,就不能是泛泛而谈了.我们必须要具体到某个指定的虚拟机实现,以便说清其过程. 1. 说说openjdk 因为java实际上已经被oracle控制,而oracle本身是个商业公司,所以从某种程度上说,这里的java并不是完全开源的

  • 深入理解Java class文件格式_动力节点Java学院整理

    Class文件在Java体系结构中的位置和作用 对于理解JVM和深入理解Java语言, 学习并了解class文件的格式都是必须要掌握的功课. 原因很简单, JVM不会理解我们写的Java源文件, 我们必须把Java源文件编译成class文件, 才能被JVM识别, 对于JVM而言, class文件相当于一个接口, 理解了这个接口, 能帮助我们更好的理解JVM的行为:另一方面, class文件以另一种方式重新描述了我们在源文件中要表达的意思, 理解class文件如何重新描述我们编写的源文件, 对于深

  • 深入理解Java虚拟机_动力节点Java学院整理

    什么是Java虚拟机 Java程序必须在虚拟机上运行.那么虚拟机到底是什么呢?先看网上搜索到的比较靠谱的解释: 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机有自己完善的硬体架构,如处理器.堆栈.寄存器等,还具有相应的指令系统.JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行. 这种解释应该算是正确的,但是只描述了虚拟机的外部行为和功能,并没有针对内部原理

  • Java 8新特性方法引用详细介绍

    Java 8新特性方法引用 对于引用来说我们一般都是用在对象,而对象引用的特点是:不同的引用对象可以操作同一块内容! Java 8的方法引用定义了四种格式: 引用静态方法     ClassName :: staticMethodName 引用对象方法:  Object:: methodName 引用特定类型方法: ClassName :: methodName 引用构造方法: ClassName  :: new  静态方法引用示例 /** * 静态方法引用 * @param <P> 引用方法

  • Java数组的特性_动力节点Java学院整理

    Java中的数组是对象吗? Java和C++都是面向对象的语言.在使用这些语言的时候,我们可以直接使用标准的类库,也可以使用组合和继承等面向对象的特性构建自己的类,并且根据自己构建的类创建对象.那么,我们是不是应该考虑这样一个问题:在面向对象的语言中,数组是对象吗? 要判断数组是不是对象,那么首先明确什么是对象,也就是对象的定义.在较高的层面上,对象是根据某个类创建出来的一个实例,表示某类事物中一个具体的个体.对象具有各种属性,并且具有一些特定的行为.而在较低的层面上,站在计算机的角度,对象就是

  • 深入理解Java反射

    要想理解反射的原理,首先要了解什么是类型信息.Java让我们在运行时识别对象和类的信息,主要有2种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息:另一种是反射机制,它允许我们在运行时发现和使用类的信息. 1.Class对象 理解RTTI在Java中的工作原理,首先需要知道类型信息在运行时是如何表示的,这是由Class对象来完成的,它包含了与类有关的信息.Class对象就是用来创建所有"常规"对象的,Java使用Class对象来执行RTTI,即使你正在执行的是类似

随机推荐