乐趣区

关于java:每日学Java系列Java零基础学习笔记三

Java 语言的个性

一、简略性

在 Java 语言当中真正操作内存的是:JVM(Java 虚拟机)

所有的 java 程序都是运行在 Java 虚拟机当中的。

而 Java 虚拟机执行过程中再去操作内存。

对于 C 或者 C ++ 来说程序员都是能够间接通过指针操作内存的。

C 或者 C ++ 更灵便,能够间接程序员操作内存,然而要求程序员技术精湛。

C 语言或者 C ++ 更有驾驭感。

Java 语言屏蔽了指针概念,程序员不能间接操作指针,或者说程序员不能间接操作内存。这种形式有长处也有毛病:

  • 长处:不容易导致内存透露。(简略了。)
  • 毛病:效率问题,包含驾驭感比拟差。

飞机航行:

如果是 C 语言示意程序员是飞机驾驶员。

如果是 Java 语言示意程序员是飞机上的乘客。

Java 语言底层是 C ++,所以 JVM 是用 C ++ 语言写好的一个虚构的电脑。

JVM 在哪里?

通知大家,装置了 JDK 之后,JVM 就代表装置好了。

内存是什么?

对于计算机来说:最次要的几个部件是什么?

CPU:

中央处理器,相当于人类的大脑,负责发送并执行指令。

是整个计算机的指挥官。

CPU 是负责计算的,负责运算的。

10 + 20 = 30

CPU 负责将 30 这个后果计算出来。

然而在计算过程中有三个数据须要长期找个空间存储一下:

这三个数据别离是:10 20 30

内存:

程序运行过程当中的长期数据存储空间。

断电之后或者关机之后内存中的数据就隐没了。

硬盘:

长久化设施,硬盘上的数据不会因断电而失落。

主板:

相当于人类的躯干,是一个载体:

CPU、内存条、硬盘等次要的部件都是放在主板上的,主板上有很多线,将以上的部件链接起来。
…..

二、java 是堪称齐全面向对象的。

面向对象更容易让人了解,人类通常是以对象的形式认知世界的。

采纳面向对象的形式能够让简单问题简单化。

三、健壮性

次要是因为 Java 中有一种机制:

主动垃圾回收机制(GC 机制)。

java 语言是强壮的,绝对于 C 语言来说,C 语言没有 Java 强壮。

Java 不容易导致内存的透露。

C++ 或者 C 语言应用不过后很容易导致内存透露。

JVM 负责调度 GC 机制。程序员不须要干预。

以上解说中又形容了这几个术语:

JVM(C++ 语言写的一个虚构的计算机)、GC(垃圾回收机制)

四、java 齐全 / 完满反对多线程并发。

五、可移植性 / 跨平台

java 语言只有编写一次,能够做到到处运行。

例如:java 程序编写完之后,能够运行在 windows 操作系统上,不须要做任何改变能够间接运行在 Linux 操作系统上,同样也能够运行到 MaC OS 下面。

一次编写,到处运行。(平台扭转了,程序不须要改。)

1、JVM 这种机制实现了跨平台,那么这种机制长处和毛病别离是什么?

  • 长处:一次编写到处运行,能够跨平台。
  • 毛病:麻烦。对于运行 java 程序来说必须先有一个 JVM。

就像你要想在网页上看视频,你必须先装置一个 flash 是一样的。

2、Java 语言能够编写病毒吗?

能够,没问题。然而很难让用户中毒。

中毒的个别都是 java 程序员。所以很少有人编写 java 的病毒脚本。

3、JDK、JRE、JVM 三者之间的关系?

  • DK:Java 开发工具箱
  • JRE:java 运行环境
  • JVM:java 虚拟机

JDK 包含 JRE,JRE 包含 JVM。

JVM 是不能独立装置的。

JRE 和 JDK 都是能够独立装置的。

有独自的 JDK 安装包。

也有独自的 JRE 安装包。

没有独自的 JVM 安装包。

装置 JDK 的时候:JRE 就主动装置了,同时 JRE 外部的 JVM 也就主动装置了。

装置 JRE 的时候:JVM 也就主动装置了。

问题:

假如你在软件公司开发了一个新的软件,当初要去客户那边给客户把我的项目部署一下,把我的项目跑起来,你须要装置 JDK 吗?

只须要装置 JRE 就行了。

JRE 体积很小,装置十分便捷疾速。

问题:

为什么装置 JDK 的时候会自带一个 JRE?

因为 java 程序员开发完程序之后,要测试这个程序,让这个程序运行起来,须要 JRE。所以 JDK 装置的时候外部自带一个 JRE。

到目前为止,咱们接触过的重点术语,总结一下:

Java 体系的技术被划分为三大块:

  1. JavaSE:标准版
  2. JavaEE:企业版
  3. JavaME:微型版

装置 JDK 之后:

  • JDK:java 开发工具箱
  • JRE:Java 运行环境
  • JVM:Java 虚拟机

4、对 Java 的加载与执行的了解(实践比拟重要)

java 程序从编写到最终运行经验了哪些过程????

java 程序十分重要的两个阶段:

  • 编译阶段
  • 运行阶段

留神:java 程序员间接编写的 java 代码(一般文本)是无奈执行被 JVM 辨认的。java 程序员编写的 java 代码这种一般文本必须通过一个编译,将这个“一般文本代码”变成“字节码”,JVM 可能辨认“字节码”。

java 代码这种一般文本变成字节码的过程,被称为:编译。

java 代码这种一般文本被称为:java 源代码。(你编写的代码是源代码)源代码不能间接执行,须要先进行编译,生成源代码对应的“字节码”

JVM 能够辨认的是字节码。

编译阶段和运行阶段能够在不同的操作系统上实现吗?

在 windows 上编译,编译之后生成了“字节码”,把“字节码”放到 linux 上运行齐全能够,因为 Java 是跨平台的。

能够做到一次编写到处运行。

java 源代码一旦编译之后,源代码能够删除吗?只留下字节码能够执行吗?

齐全能够执行,因为源代码不参加程序的执行过程。

参加程序执行过程的是字节码。

然而最好不要删除源代码。因为有可能执行后果不是你须要的,当执行后果不是你须要的时候,你能够从新关上源代码进行批改,而后从新编译生成新的字节码,再从新执行。这样会有新的执行成果。
放源代码的文件扩展名必须是:xxx.java

并且须要留神的是:编译生成的字节码文件扩展名是:xxx.class

没有为什么,死记硬背吧!!!!

.java 文件就是源文件,这个文件中编写源代码。

.class 文件就是字节码文件,这个文件是编译源代码而失去的。

另外须要留神的是:

1 个 java 源文件是能够编译生成多个 class 文件的。

最终运行的是 class 文件。

问题:

字节码文件是二进制文件吗?

字节码文件不是二进制文件。

如果是二进制的话,就不须要 JVM 了。

因为操作系统能够间接执行二进制。

java 程序从开发到最终运行经验了什么?

编译期:(能够在 windows 上)

第一步:在硬盘的某个地位(随便),新建一个 xxx.java 文件

第二步:应用记事本或者其它文本编辑器例如 EditPlus 关上 xxx.java 文件

第三步:在 xxx.java 文件中编写“合乎 java 语法规定的”源代码。

第四步:保留(肯定要将 xxx.java 文件保留一下)

第五步:应用编译器(javac【JDK 装置后自带】)对 xxx.java 文件进行编译。

第六步:如果 xxx.java 文件中编写的源代码是合乎语法规定的,编译会通过,如果 xxx.java 文件中编写的源代码违反了语法规定,那么编译器会报错,编译器报错之后 class 文件是不会生成的,只有编译通过了才会生成 class 字节码文件。

并且一个 java 源文件是能够生成多个 class 文件的。(编译本质上是查看语法)

运行期(JRE 在起作用):

(能够在 windows 上,也能够在其余的 OS 上。)

第七步:如果是在 Linux 上运行,须要将 windows 上生成的 class 文件拷贝过来,不须要拷贝源代码,真正运行的是字节码。(然而源代码也不要删除,有用)

第八步:应用 JDK 自带的一个命令 / 工具:java(负责运行的命令 / 工具)执行字节码

第九步:往下的步骤就全副交给 JVM 了,就不须要程序员干预了。

JVM 会将字节码文件装载进去,而后 JVM 对字节码进行解释(解释器负责将字节码解释为 1010101010.. 等的二进制)

第十步:JVM 会将生成的二进制码交给 OS 操作系统,操作系统会执行二进制码和硬件进行交互。

留神:在以上的过程中,须要应用两个十分重要的命令?

  • javac 命令,负责编译
  • java 命令,负责运行

小插曲:

xxx.java 源文件通过编译之后生成了 A.class、B.class、C.class 等文件,那么咱们称 A 是一个类、B 是一个类、C 是一个类。其中 A、B、C 是类的名字。

没有为什么,死记硬背,SUN 公司的 java 语法就是这么规定的。

A/B/ C 是类的名称。A 类、B 类、C 类。

源文件中编写的代码叫做:源代码。

以上是一个简单的过程,那么缩减一下,程序员到底要干啥?

  • 新建 java 文件
  • 关上 java 文件
  • 写 java 源代码
  • 保留
  • javac 命令编译
  • java 命令运行
  • 编写、编译、运行

5、编写 java 中的第一个 java 程序:HelloWorld(你好世界:问世)

这个程序不须要大家了解,大家照抄就行,因为目前我也不会解说这个程序为什么这么写。

次要是为了搭建 java 的开发环境,测试 java 的环境是否能用。

第一步:装置文本编辑器(EditPlus)

第二步:装置 JDK(先下载 JDK)

装置 JDK13,间接下一步就行。

JDK13 装置的时候内置了一个 JRE,独立于 JDK 之外的 JRE 并没有生成。

对于 java13 来说,如果你心愿生成一个独立于 JDK 之外的 JRE 的话须要执行非凡的命令。

这里先不讲,前期用到的时候再说。

留神的是:

JDK8 装置的时候,不仅 JDK 内置了一个 JRE,而且还会在 JDK 目录之外独立的生成一个独自的 JRE。(以前低版本的时候,JRE 实际上是有 2 个。)

一个是 JDK 内置的,一个是独立于 JDK 之外的。

JDK 的 bin 目录下有:

  • javac.exe 负责编译
  • java.exe 负责运行

第三步:写代码

写一下第一个程序 HelloWorld。

这个代码在此强调:

文件名照抄

文件内容代码严格照抄

照抄大小写

照抄任何一个环节

照抄标点符号

不要问为什么。

前面会解释。

括号:
[]
()
{}
都要成对写。

第四步:编译

第五步:运行

最初

很多小伙伴心愿我举荐个比拟具体的 Java 零基础教程,上面这个是我看过的感觉挺不错的,值得观看珍藏。
分享给大家,点这里

https://www.bilibili.com/vide…

看完如果对你有帮忙,感激点赞反对~

退出移动版