Java基础———什么是Java?

1.Java语言

对于多数程序设计语言,其程序运行要么采用编译执行方式,要么采用解释执行的方式。就比如我们比较熟悉的C语言就是采用编译执行方式。而Java语言的特殊之处在于,程序运行既要经过编译又要进行解释。
如图:
在这里插入图片描述
首先,我们要知道解释执行和编译执行的区别:

解释执行——程序运行,将源文件逐行解释为机器语言执行

编译执行——程序运行,将源文件全部编译为机器语言再执行

首先Java程序由编译器进行编译,产生一种中间代码,称为Java字节码。字节码是Java虚拟机JVM的代码,是平台无关的中性代码,因此不能在各种计算机平台上直接运行,必须在JVM上运行。Java解释器是JVM的实现,它把字节码转换为底层平台的机器码,使Java程序最终得以运行。

2.Java语言特点

Java属于面向对象语言,Java具有封装与数据隐藏,继承和多态特征。

封装:每个类不对外暴露其构造和实现,只展示自身的功能与作用。
继承:同一父类的子类共同持有父类的公有(非private)资源。
多态:同一父类的子类对于父类公有方法或资源,可以具备不同的表达方式。

3.Java技术体系

1.Java平台标准版 Java SE(Java Platform Standard Edition)
2.Java平台企业版 Java EE(Java Platform Enterprise Edition)
3.Java平台微缩版 Java ME(Java Platform Micro Edition)
在这里插入图片描述

4.什么是JDK

JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment)以及一堆Java工具和Java基础的类库(rt.jar)。
1、Java Development Kit(Java 开发工具包)的缩写。用于 java 程序的开发,提供给程序员使用。
2、使用 Java 语言编程都需要在计算机上安装一个 JDK。
3、JDK 的安装目录 5 个文件夹、一个 src 类库源码压缩包和一些说明文件
src.zip:Java 所有核心类库的源代码

JDK文件目录:
-bin目录:JDK开发工具的可执行文件。比如各种命令工具, java 源码的编译器 javac、监控工具 jconsole、分析工具 jvisualvm 等。
-lib目录:开发工具使用的归档包文件(类库 )。
-jre: Java: 运行时环境的根目录,包含Java虚拟机,运行时的类包和Java应用启动器,但不包含开发环境中的开发工具(Java 运行环境)。
-demo: 含有源代码的程序示例。
-include: 包含C语言头文件,支持Java本地接口与Java虚拟机调试程序接口的本地编程技术。(与 JVM 交互C语言用的头文件)。

JDK包含的基本组件包括:
·javac – 编译器,将源程序转成字节码
·jar – 打包工具,将相关的类文件打包成一个文件
·javadoc – 文档生成器,从源码注释中提取文档
·jdb – debugger,查错工具

5.JVM、JRE、JDK关系

5.1什么是跨平台?
平台:指的是操作系统(Windows,Linux,Mac)
跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行
原理:不同的编译器对于不同平台,获取后的class文件在相同JVM中运行

5.2JVM、JRE 、JDK说明

  • 什么是JVM?
    JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台。

  • 什么是JRE?(运行环境)

  • 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

    JRE:JVM+类库+运行工具(java.exe)
    
  • 什么是JDK?(开发环境)
    JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具(javac.exe) 、运行工具(java.exe)、打包工具(jar.exe)等。

  • 为什么JDK中包含一个JRE?
    JDK若无JRE则缺少虚拟机,而开发完的程序,需要运行一下看看效果。

  • JDK,JRE,JVM的作用和关系
    JDK包含JRE 和开发工具包
    JRE包含核心类库和JVM

  • 环境配置注意事项
    JRE不可以安装在JDK内部(javac无法执行)。

6.Java与其他语言比较

6.1Java与C语言对比
1、JAVA面向对象,C面向过程

    2、JAVA跨平台,C需要重新编译

    3、JAVA没有指针,无法高效运算

    4、JAVA能自动垃圾回收

    5、JAVA无法直接管理内存

    6、JAVA没有预处理器

6.2Java与C++对比
1、JAVA采用值传递

    2、JAVA不能多继承

    3、JAVA无法重载运算符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值