七、Java特点
- 是一种高级计算机语言
- 开源
- 开放源代码
- 跨平台(最明显的特征)
- 定义
- 程序写出后,可以在多种平台上运行
- 平台就是操作系统,包括:Windows、Linux、Unix、Mac OS、Android、鸿蒙、ios
- 程序写出后,可以在多种平台上运行
- 特征
- 高级语言中唯一一个可以跨平台的语言;Java语言是平台无关的,C/C++是平台相关的
- 跨平台实现核心(通过JVM和字节码文件实现)
- JVM
- 在运行的操作系统上安装一个JVM,由它负责Java程序在该系统中的运行
- 字节码文件(.class)
- 体系结构中立
- 实现了体系结构中立,可以在任何系统中运行
- 解释型
- 可以实现在任何系统的解释器中运行
- 体系结构中立
- JVM
- 跨平台实现过程
- 编译器将程序编译为.class,JVM的解释器将.class翻译为机器码文件,执行对应机器码
- 跨平台实现图示
- 作用
- 避免导致程序语言在不同操作系统编译时产生不同机器代码,降低程序开发和维护的成本
- 安全
- 不能写出病毒或木马;没有指针,外界无法通过伪造指针指向存储器
- 在编程时不显示存储安排决策,不能猜测出类的实际存储安排
- 存储是在运行时由Java解释程序决定的
- 提供了一个安全机制(类ClassLoader)以防恶意代码攻击
- 分配不同名字空间以防替代本地的同名类、字节代码检查
- 简单
- 提供最基本的方法完成指定的任务,理解基本概念来编写各种情况的应用程序
- 摒弃C++中运算符重载、多继承等;引用代替指针;提供自动垃圾回收机制,解决要管理内存问题
- 面向对象
- 特点
- Java语言是一种完全面向对象编程的语言
- 核心由类和对象组成,通过二者描述实现事物间关系,有利于对程序理解、分析等
- 提供了类、接口、继承等原语
- 只支持类之间的单继承,但支持接口之间的多继承,并支持类和接口间的实现机制
- 全面支持动态绑定;C++只对虚函数使用动态绑定
- Java语言是一种完全面向对象编程的语言
- 作用
- 有利于对复杂程序的理解、分析、设计、编写和维护
- (原生)支持多线程
- 定义
- 多个任务可以并发执行,提高执行效率
- 特征
- 线程是一种特殊的对象,必须由Thread类或其子孙类创建
- 分布性
- Java是分布式语言,既支持各种层次的网络连接,又可通过Socket类支持可靠的流网络连接
- 用户可以产生分布式的客户机和服务器,网络编程软件应用的分布式运载工具
- 支持Internet应用开发,在基本的应用编程接口(java net)提供了用于网络应用编程的类库
- URL、URLConnection、Socket、ServerSocket
- RMT(远程方法激活)机制是开发分布式应用重要手段
- 性能略高
- 与那些解释型的高级脚本语言相比,Java性能还是较优的
- 健壮
- 吸收C/C++优点,去掉影响健壮部分(指针、内存申请与释放)
- 强类型机制、异常处理、垃圾自动收集、提供相对安全内存管理访问机制是健壮性重要保证
- 解释型
- Java程序被编译为字节码格式,可以实现这个Java平台任何系统解释器中运行
- 易学
- 与C和C++接近,使得容易学习和使用Java
八、核心机制
- Java虚拟机(JVM)
- 定义
- 虚拟的计算机(操作系统),具有指令集并使用不同的存储区域;是软件,不是硬件
- 作用
- 负责执行指令,管理数据、内存、寄存器;不同平台有不同虚拟机;屏蔽了底层运行平台差异
- 只有某平台提供了对应的Java虚拟机,Java程序才可以在此平台运行
- 关系
- 垃圾回收机制
- 其他编程语言
- 不再使用的内存空间应该回收;在C/C++等语言中, 由程序员负责回收无用内存
- Java中垃圾回收
- 操作
- 消除了程序员回收的责任
- 提供了一种系统级线程跟踪存储空间的分配情况
- 在JVM空闲时,检查并释放可被释放的存储空间
- 结果
- 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预
- 注意
- Java程序还会出现内存泄漏和内存溢出问题
- 操作
九、理解术语(Java中的专业名词)–JDK、JRE、JVM
9.1 名词解释JDK、JRE、JVM
- JDK(Java Development Kit)
- 介绍
- Java开发工具包(Java开发环境),开发Java程序必须安装JDK;JDK8较稳定,市场上主流版本
- 包含的部分
- Java编译器(javac.exe);Java打包工具(jar.exe);Java运行工具、Java文档生成工具等
- 为了方便使用,在JDK工具中封装了一个JRE工具,即开发环境中包含运行环境
- JRE(Java Runtime Environment)
- 介绍
- 是Java运行环境
- 作用
- JDK的开发工具完成java程序,交给JRE运行;若想运行开发好的Java程序,计算机只需安装JRE
- 包含的部分
- JRE中只包含Java运行工具,不包含Java编译工具;还包括JVM和Java程序所需的核心类库
- JVM(Java Virtual Machine)
- 是Java虚拟机



549

被折叠的 条评论
为什么被折叠?



