【Java】零基础学习3_Java特点、核心机制及JDK、JRE、JVM

七、Java特点

  1. 是一种高级计算机语言
  2. 开源
  • 开放源代码
  1. 跨平台(最明显的特征)
  • 定义
    • 程序写出后,可以在多种平台上运行
      • 平台就是操作系统,包括:Windows、Linux、Unix、Mac OS、Android、鸿蒙、ios
  • 特征
    • 高级语言中唯一一个可以跨平台的语言;Java语言是平台无关的,C/C++是平台相关的
  • 跨平台实现核心(通过JVM和字节码文件实现)
    • JVM
      • 在运行的操作系统上安装一个JVM,由它负责Java程序在该系统中的运行
    • 字节码文件(.class)
      • 体系结构中立
        • 实现了体系结构中立,可以在任何系统中运行
      • 解释型
        • 可以实现在任何系统的解释器中运行
  • 跨平台实现过程
    • 编译器将程序编译为.class,JVM的解释器将.class翻译为机器码文件,执行对应机器码
  • 跨平台实现图示
    • 在这里插入图片描述
  • 作用
    • 避免导致程序语言在不同操作系统编译时产生不同机器代码,降低程序开发和维护的成本
  1. 安全
  • 不能写出病毒或木马;没有指针,外界无法通过伪造指针指向存储器
  • 在编程时不显示存储安排决策,不能猜测出类的实际存储安排
    • 存储是在运行时由Java解释程序决定的
  • 提供了一个安全机制(类ClassLoader)以防恶意代码攻击
    • 分配不同名字空间以防替代本地的同名类、字节代码检查
  1. 简单
  • 提供最基本的方法完成指定的任务,理解基本概念来编写各种情况的应用程序
  • 摒弃C++中运算符重载、多继承等;引用代替指针;提供自动垃圾回收机制,解决要管理内存问题
  1. 面向对象
  • 特点
    • Java语言是一种完全面向对象编程的语言
      • 核心由类和对象组成,通过二者描述实现事物间关系,有利于对程序理解、分析等
      • 提供了类、接口、继承等原语
      • 只支持类之间的单继承,但支持接口之间的多继承,并支持类和接口间的实现机制
      • 全面支持动态绑定;C++只对虚函数使用动态绑定
  • 作用
    • 有利于对复杂程序的理解、分析、设计、编写和维护
  1. (原生)支持多线程
  • 定义
    • 多个任务可以并发执行,提高执行效率
  • 特征
    • 线程是一种特殊的对象,必须由Thread类或其子孙类创建
  1. 分布性
  • Java是分布式语言,既支持各种层次的网络连接,又可通过Socket类支持可靠的流网络连接
  • 用户可以产生分布式的客户机和服务器,网络编程软件应用的分布式运载工具
  • 支持Internet应用开发,在基本的应用编程接口(java net)提供了用于网络应用编程的类库
    • URL、URLConnection、Socket、ServerSocket
    • RMT(远程方法激活)机制是开发分布式应用重要手段
  1. 性能略高
  • 与那些解释型的高级脚本语言相比,Java性能还是较优的
  1. 健壮
  • 吸收C/C++优点,去掉影响健壮部分(指针、内存申请与释放)
  • 强类型机制、异常处理、垃圾自动收集、提供相对安全内存管理访问机制是健壮性重要保证
  1. 解释型
  • Java程序被编译为字节码格式,可以实现这个Java平台任何系统解释器中运行
  1. 易学
  • 与C和C++接近,使得容易学习和使用Java

八、核心机制

  1. Java虚拟机(JVM)
  • 定义
    • 虚拟的计算机(操作系统),具有指令集并使用不同的存储区域;是软件,不是硬件
  • 作用
    • 负责执行指令,管理数据、内存、寄存器;不同平台有不同虚拟机;屏蔽了底层运行平台差异
    • 只有某平台提供了对应的Java虚拟机,Java程序才可以在此平台运行
  • 关系
    • 在这里插入图片描述
  1. 垃圾回收机制
  • 其他编程语言
    • 不再使用的内存空间应该回收;在C/C++等语言中, 由程序员负责回收无用内存
  • Java中垃圾回收
    • 操作
      • 消除了程序员回收的责任
    • 提供了一种系统级线程跟踪存储空间的分配情况
      • 在JVM空闲时,检查并释放可被释放的存储空间
    • 结果
      • 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预
    • 注意
      • Java程序还会出现内存泄漏和内存溢出问题

九、理解术语(Java中的专业名词)–JDK、JRE、JVM

9.1 名词解释JDK、JRE、JVM

  1. JDK(Java Development Kit)
  • 介绍
    • Java开发工具包(Java开发环境),开发Java程序必须安装JDK;JDK8较稳定,市场上主流版本
  • 包含的部分
    • Java编译器(javac.exe);Java打包工具(jar.exe);Java运行工具、Java文档生成工具等
    • 为了方便使用,在JDK工具中封装了一个JRE工具,即开发环境中包含运行环境
  1. JRE(Java Runtime Environment)
  • 介绍
    • 是Java运行环境
  • 作用
    • JDK的开发工具完成java程序,交给JRE运行;若想运行开发好的Java程序,计算机只需安装JRE
  • 包含的部分
    • JRE中只包含Java运行工具,不包含Java编译工具;还包括JVM和Java程序所需的核心类库
  1. JVM(Java Virtual Machine)
  • 是Java虚拟机

9.2 请说明JDK、JRE、JVM的关系

  • 在这里插入图片描述
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值