共计 4027 个字符,预计需要花费 11 分钟才能阅读完成。
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 体系的技术被划分为三大块:
- JavaSE:标准版
- JavaEE:企业版
- 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…
看完如果对你有帮忙,感激点赞反对~