Java语言特性以及编译和运行

java语言的特性【开源、免费、纯面向对象、跨平台】

简单性:

相对而言的,java中不再支持多继承,c++中支持多进程,c++中有指针,java中已经屏蔽了指针的概念
java语言的底层是c++,而不是c语言。

面向对象:

java是纯粹面向对象的,更符合人的思维模式。

可移植性:

什么是可移植性?
java程序可以说是一次编译,到处执行。
也就是说java程序可以在windows上运行,不做任何修改,同样也可以直接Linux操作系统上运行,这个叫做java程序的可移植性,也叫做跨平台。
但我们都知道windows和Linux内核肯定是不同的,执行执行指令的方式也是不一样的。显然java程序不能直接和操作系统打交道。因此sun团队想了一个办法,让java程序运行在一个虚拟的计算机操作系统中,这个虚拟的计算机就叫做java虚拟机,简称JVM。JVM在和操作系统打交道。

多线程

这也是java语言的一大特点,怎么理解呢?
我们这样理解:假如我们今天有一个任务,任务是把车上的砖块卸下来,那我们一个人肯定会耗时耗力,那可以多人一起来完成这个任务,是不是效率就更了呢?这个多人工作的模式就叫做多线程。

健壮性:

GC机制。在c/c++语言中使用完一块内存后需要手动的释放内存,不然会造成内存泄露,而java当中我们只需要把这块空间给他开辟出来,它的释放不需要我们关心,自动垃圾垃圾回收机制会帮我们回收。

安全性

……

java的加载与执行

java程序的运行包括两个非常重要的阶段

编译阶段

在这里插入图片描述

  • 编译阶段的主要任务是检查源文件是否符合java语法。

  • 图中的java是java的源文件,这里编写的东西是java的源代码,那我们这个源文件写完直接放到JVM中运行肯定是不可能的,只能通过编译之后形成class文件也叫做字节码文件,才能放到JVM中,但这个文件也肯定不是完全的二进制文件,如果是二进制文件就可以直接在操作系统上运行,要JVM干什么

  • 通过JDK中自带的javac.exe来进行Java程序的编译。

  • 编译结束之后,可以将class文件拷贝到其他操作系统中运行【跨平台】

运行阶段
  • JDK安装之后,除了自带一个javac.exe之外,还有一个叫做java.exe命令,主要负责java运行阶段
  • 格式为:java 类名
  • 运行的过程是:
    打开DOS窗口–>java 类名 -->java.exe命令启动JVM,JVM启动类加载器–>类加载器就会去硬盘搜索 类名.class文件,搜索到之后会将过该字节码文件装在到JVM当中–>JVM将字节码文件解释称二进制文件–>操作系统执行二进制文件和底层的硬件平台交互。

在这里插入图片描述
这是在记事本写的一个java源文件,我们来看一看在DOS中如何运行
在这里插入图片描述

JDK、JRE、JVM的关系

JDK:
– 什么是JDK?
Java开发工具包
做Java开发必须安装的一个工具包,该工具包需要从官网下载。
目前sun已经被oracle收购了,所以下载需要去oracle下载。
http://www.oracle.com.
Java包括三大块:
– JavaSE(Java标准版)—基础
– JavaEE (Java企业版)
– JavaME (Java微型版)
JRE:
java运行时环境,意思是当java程序开发完成后,只要有一个jre就可以运行java的程序,假如说,我不需要在这台电脑上做java开发的只在这台电脑上运行的话,我就不需要安装JDK只需要安装JRE就可以,JRE中包括JVM

JVM:
所有的java程序最终是要在jvm中运行的
在这里插入图片描述

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值