day 03 课堂笔记

文章目录

      • Java语言的特性
          • 简单性
          • 完全面向对象
          • 健壮性
          • Java完美支持多线程并发
          • 可移植性/跨平台
      • JDK JRE JVM三者之间的关系是什么?
      • Java的加载与执行
      • Java程序从开发到最终运行经历了什么?
      • 编写java的第一个程序!

Java语言的特性

简单性,完全面向对象,健壮性,多线程,可移植性。

简单性

在Java语言中,真正操作内存的是:JVM(Java虚拟机),Java语言的底层是c++,所以JVM是用c++语言写好的一个虚拟的电脑,JDK安装完成后,JVM就安装好了。

所有的Java程序都是在Java虚拟机中运行的,而Java虚拟机在执行过程中去操作内存,

c或者c++是可以直接通过指针操控内存的,更灵活,更有驾驭感,Java语言屏蔽了指

针,程序员不能直接操控内存。

优点:内存泄露不会发生,简单

缺点:效率问题,驾驭感比较差

内存是什么?

对于计算机说,最主要的部件:

CPU:中央处理器,相当于人类的大脑,负责发送并执行指令,是整个计算机的指挥官,负责计算

内存:程序运行过程中,临时数据存储空间,断电/关机之后,内存中的数据消失。

硬盘:持久化设备,硬盘上的数据不会因断电/关机而丢失。

主板:相当于人类的躯干,是一个载体:CPU,内存条,硬盘等等都是放在主板上的。

完全面向对象

采用面向对象的方式,可以让复杂问题简单化,Java 中提供了封装、继承、多态等面向对象的机制。

健壮性

主要是因为Java中有一种机制:自动垃圾回收装置(GC机制)

Java相当于c/c++健壮,Java不容易引发内存泄露,JVM负责调度GC机制,程序员不需要管。

缺点:GC机制只有积攒一定的垃圾后才会调度。

Java完美支持多线程并发

可以同时启动

可移植性/跨平台

Java语言只需要编写一次,可以到处运行,凭借JVM机制实现,Java在JVM中运行,不直接与操作系统打交道

例如:Java程序编写完成之后,可以在Windows操作系统上运行,不需要做任何修改,

就可以在linux操作系统上运行,同样也可以在Mac OS上运行。

优点:一次编写,到处运行

缺点:麻烦,运行Java程序必修有一个JVM

**Java语言可以编写病毒吗?**可以,但是很难让用户中毒,中毒的都是含有JVM的Java程序员

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GSsOyYFG-1598765561739)(…/%E5%9B%BE%E7%89%87/%E5%8F%AF%E7%A7%BB%E6%A4%8D%E6%80%A7.png)]

JVM屏蔽了操作系统之间的差异,Windows和Mac的JVM不一样,JVM是直接跟操作系统打交道的,所以JVM肯定不一样

JDK JRE JVM三者之间的关系是什么?

JDK(Java Development Kit): Java 语言的软件开发工具包

JRE((Java Runtime Environment):Java 运行环境

JVM(Java Virtual Machine):Java 虚拟机

JDK包括JRE和JVM,JRE包括JVM,有单独的JDK安装包,也有单独的JRE安装包,没有单独的JVM安装包,如果只需要运行Java程序,只用安装JRE,如果要开发Java软件,必须安装JDK。

Java的加载与执行

Java程序经历的两个阶段:编译 运行

Java程序员直接编写的是“源代码”,无法被JVM识别,即不能直接执行,必须经过编译变为“字节码”,才能被JVM识别,“字节码”不是二进制,JVM可以识别字节码,操作系统识别二进制。

问:编译阶段和运行阶段可以在不同的操作系统上完成吗?

可以,在Windows系统上编译生成“字节码”,在linux系统上运行,完全可以,一次编写,到处运行。

Java源代码生成字节码之后,源代码可以删除,但是最好不要删除,防止出现错误需要改源代码。

源代码文件:xxx.java

字节码文件:xxx.class

Java程序从开发到最终运行经历了什么?

编译期间

①在硬盘的某个位置新建一个xxx.java文件

②打开xxx.java文件

③使用文本编辑器编写符合java语法规则源代码

④保存

⑤使用编译器javac【jdk安装后自带】对xxx.java文件进行编译

⑥如果xxx.java中的源代码符合java语法规则,编译通过,生成xxx.class

字节码文件,如果语法错误,编译器报错,class文件不会生成。

运行期间

⑦若在linux上运行,需要将字节码class文件拷贝过去

⑧使用JDK自带的一个命令:java(负责运行)

⑨JVM对字节码进行解释,解释成二进制文件

⑩JVM将二进制文件发给操作系统,操作系统会执行二进制代码和硬件进行交互。

javac负责编译

java负责运行

如果xxx.Java源文件生成 A.class B.class C.class,那么A B C都是类的名称,(一个源文件可以有多个类)

编写java的第一个程序!

①安装文本编译器

②安装JDK14(内置一个JRE),JDK的bin目录下:

javac.exe 负责编译

java.exe 负责运行

③写代码

④编译

⑤运行

你可能感兴趣的:(Java)