目录
7.JDK、JRE、JVM之间的关系(都以c++为底层语言)
9.2 了解windows操作系统是如何搜索硬盘上|搜索某个命令的呢?
一.0基础前序知识
1.计算机包括两部分
-
硬件:鼠标、键盘、显示器、主机箱内部的cPU、内存条、硬盘等.
注意:计算机只有硬件是无法工作的,需要软件驭动硬件才能工作。
-
软件:
软件包括:系统软件和应用软件
①系统软件:
直接和硬件交互的软件,例如:window7、winxp、win8、win10、Linux操作系统
②应用软件:
应用软件通常运行在系统软件中,例如:QQ运行在windows操作系统上。
示例:
QQ就是应用软件。
win7就是操作系统软件。
2.作为程序员要求掌握最基本的windows相关DOS命令
-
DOS命令在哪里编写?
在DOS命令窗口当中编写DOS命令
-
DOS命令窗口怎么打开呢?
开始菜单-->运行-->输入cmd--(win+R)->回车【默认打开的是黑色的命令窗口,这就是DOS窗口】
-
常见的DOS命令?
(1)exit 退出当前DOS命令窗口
(2)cls清屏
(3)DOS窗口中的内容怎么复制:
在DOS窗口的任意位置,点击鼠标左键,接下来选中要复制的内容,在DOS窗口的任意位置点击鼠标右键,此时被复制的内容已经到剪贴板了。在需要 粘贴的位置粘贴即可。(需要开启DOS窗口的快速编辑模式,右键DOS窗口--属性--选项-->编辑选项--快速编辑模式->确定)
(4)dir列出当前目录下所有的子文件/子目录
(5)cd命令
cd命令表示:change directory 【改变目录】
cd命令怎么用呢?cd+ 空格+目录的路径
-
但是是路径包括绝对路径和相对路径
-
△绝对路径:表示该路径从某个磁盘的盘符下作为出发点的路径
-
△相对路径:表示该路径从当前所在的路径下作为出发点的路径
如:假设当前所在的路径是c:\Users\Administrator,那么在此时输入cd Desktop,那么其中Desktop就是一个相对路径,从当前所在的c:\Users\administrator这个路径作为出发点,开始找Desktop目录。
-
(5)cd..回到上级目录。
cd\直接回到根目录。
(6)怎么切换盘符:
c:回车
d:回车
e: 回车
-
3.什么是计算机<编程>语言?
提前的人为的制定好的一套交流规则,有的时候,有的语法是需要死记硬背的,不需要问为什么。而只要遵守这套语法规则,那么人和计算机之间就可以很好的沟通、交流。这就是计算机编程语言。计算机编程语言也有很多语种。例如:c语言、c++、Java、PHP....
4.计算机语言发展史
第一代语言:机器语言
主要编写二进制码,直接编写100101010101这样的二进制。以打孔机为代表。
第二代语言:低级语言
主要以汇编语言为代表。在低级语言当中已经引入了一些英语单词,例如变量赋值采用mv
第三代语言:高级语言
几乎和人类的语言完全相同,即使是没有学习过计算机编程,只要看到这段代码就知道该代码主要完成什么功能。 例如:c语言、c++、Java、.….…….
5.Java语言发展史
-
Java语言诞生于1995年。
-
其实在1995年之前SUN公司(太阳微电子公司:该公司目前被Oracle(甲骨文:做数据库的)收购了)为了占领智能电子消费产品市场,派James Gosling领导团队开发了一个oak(橡树)语言。
-
1996年:JDK1.0诞生
-
什么是JDK?
Java开发工具包
做Java开发必须安装的一个工具包,该工具包需要从官网下载。
目前sun被oracle收购.所以下载需要去oracle下载。Oracle | Cloud Applications and Cloud Platform
目前JDK最高版本是:Java22/JDK22
Java包括三大块:
- JavaSE(Java标准版)
- JavaEE(Java企业版)
- JavaME(Java微型版)
其中JavaSE是基础,也是我们0基础主要学习的
6.Java语言特性【开源、免费、跨平台、纯面向对象】
-
简单性
相对而言的,例如java中不再支持多继承,c++是支持多继承的,多继承比较复杂。C++中有指针,Java中屏ờ了指针的概念。所以相对来说Java是简单的。Java语言底层是c++实现的。不是c语言。
-
面向对象
Java是纯面向对象的。更符合的人的思维模式。更容易理解。
-
可移植性
java程序可以做到一次编译,到处运行。也就是说java程序可以在windows操作系统上运行;不做任何修改,同样的java程序可以直接放到Linux操作系统上运行,这个被称为Java程序的可移植性,或者叫做跨平台。|
windows操作系统内核和Linux操作系统的内核肯定不同,他们这两个操作系统执行指令的方式也是不一样的。 结论:显然java程序不能直接和操作系统打交道。因为java程序只有一份。
操作系统执行原理都不同。sun的团队很聪明,他们想了一个办法,他们让java程序运行在一台虚拟的计算机当中,这个虚拟的计算机叫做Java虚拟机,简称 JVM。Java虚拟机再和底层的操作系统打交道。
-
多线程
后面再讲(多线执行)
-
健壮性
和自动垃圾回收机制有关,自动垃圾回收机制简称GC机制 Java语言运行过程中产生的垃圾是自动回收的,不需要程序员关心
-
安全性
7.JDK、JRE、JVM之间的关系(都以c++为底层语言)
-
JDK:英文名称(Java Development Kit),Java 开发工具包。JDK是整个Java开发的核心,它集成了jre和一些好用的小工具,如javac.exe(java编译器,将xxx.java——>xxx.class),java.exe,jar.exe。要想做Java开发,必须安装对应版本JDK。
-
JRE:英文名称(Java Runtime Environment),我们叫它:Java运行时环境。它主要包含两个部分:
-
JVM的标准实现
-
Java的一些基本类库
JRE相对于jvm来说,多出来的是一部分的Java类库。Java要想运行,必须安装JRE
-
-
JVM: 英文名称(Java Virtual Machine),就是我们耳熟能详的Java虚拟机。它只认识xxx.class这种类型的文件,它能够将class 文件中的字节码指令进行识别并调用操作
系统向上的API完成动作。所以说,jvm是Java能够跨平台的核心
8.Java的加载与执行
-
Java程序的运行包括两个非常重要的阶段
-
编译阶段
-
运行阶段
-
8.1 编译阶段
编译阶段主要的任务是检查Java源程序是否符合Java语法,符合Java语法则能够生成正常的字节码文件(xxx.class),不符合Java语法规则则无法生成字节码文件
字节码文件中表示的不是纯粹的二进制(叫字节码文件),这种文件无法在操作系统中直接执行
-
编译阶段的过程:
程序员需要在硬盘的某个位置(位置随意)新建一个 . java扩展名的文件,该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。而这个源程序是不能随意编写,必须符合Java语法规则(Java语法规则是需要记忆的)
Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译。
javac怎么用呢?在哪用呢?
javac的使用规则:
Javac+空格+java源文件的路径 在DOS命令窗口中使用。
javac是一个java编译器工具/命令
一个java源文件,可以生成多个.class(字节码)文件class文件(字节码文件)是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行(但要修改最终执行效果,需要修改java源程序,然后再重新编译成新的class文件,再运行这个class文件,生成新的效果,所以java源文件一般也不删除。而生成的class文件,可以直接拷贝到其他/电脑操作系统上,进行运行,因为前面提到java可以跨平台,java文件运行在java虚拟机中,而java虚拟机可以说是屏蔽了操作系统间的差异)
(A.class,B.class ,其中,定义了两个类,A、B叫做这些类的类名;就像int a,定义了两个整型变量,a叫这个变量的“变量名”)
8.2 运行阶段:(可以在其他操作系统中,跨平台)
JDK安装之后,除了自带一个javac.exe之外,还有另一个工具/命令,叫做java.exe ,java.exe命令主要负责运行阶段。
-
java.exe在哪里用?
在DOS窗口中使用。
-
java.exe怎么用呢?
Java+空格+类名
例如:
硬盘上有一个A.class,那么就这样用:java A
硬盘上有一个B.class,那么就这样用:java B
硬盘上有一个c.class,那么就这样用:java C
千万要注意:不要写成这样:java a.class【这种方式是错误的】
-
运行阶段的内部过程
-
打开DOS命令窗口
-
输入:java A
-
java.exe命令会先启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader
-
ClassLoader会去硬盘上搜索A.class文件(字节码),找到该文件则将该字节码文件装载到 JVM中
-
JVM将A.class字节码文件解释成二进制,如1010101010这样的数据。
-
然后操作系统执行二进制和底层硬件平台进行交互。
-
过程大致如下:
9.JDK目录介绍
接下来,将Helloworld.java源程序通过javac工具进行编译
9.1 首先需要解决的问题是:javac命令是否可用
打开DoS命令窗口,直接输入javac,然后回车,出现以下报错:javac!不是内部或外部命令,也不是可运行的程序或批处理文件。
出现以上问题是因为:windows操作系统无法找到javac命令文件-怎么解决以上javac不可用的问题?(需要在JDK—bin目录(javac.exe所在目录)下运行)
9.2 了解windows操作系统是如何搜索硬盘上|搜索某个命令的呢?
-
首先会从当前目录下搜索
-
当前目录搜索不到的话,会从环境变量path指定的路径当中搜索某个命令
-
如果都搜索不到,则报错
9.3 配置环境变量path(计算机操作系统相关的知识点)
所以需要在path指定的路径下添加javac所在目录的路径
步骤:
我的电脑--右键属性--高级系统设置--环境变量--系统变量(所有用户)--path内添加路径(放javac.exe文件的目录路径)
-
即:javac要想在DOS命令中随意使用,需要配置环境变量path
运行:
-
直接javac+空格+把文件拖入DOS命令中(会生成绝对路径)或 在java源文件上目录上路径清空,输入cmd,即进入当前目录,直接javac+文件名即可(相对路 径)
-
随后会在目录下生成class文件
-
接着,运行java.exe—需要将DOS在进入(目标文件目录)当前目录下运行(相对路径下运行)(因为还没配置环境变量classpath)
java+空格+类名
打开DOS命令窗口,执行java HelloWorld,执行原理?
java.exe命令会启动JVM
JVM启动之后会启动类加载器classLoader
classLoader会在硬盘上的某个位置搜索Helloworld.class字节码文件
找到该文件则执行
找不到该文件则报错
疑问:ClassLoader是在哪个位置上搜索Helloworld.class字节码文件的?
-默认情况下,classLoader从当前路径下加载xxx.class字节码文件
-当然,也可以让classLoader去某个指定的路径下加载字节码文件,这时需要配置环 境变量classpath
-classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATH 环境变量属于操作系统】
-classpath是给classLoader类加载器指路的。
-设置这样的环境变量:classpath=D:\course\JavaProjects\02-JavaSE\dayo2
-打开dos命令窗口在任意位置,都可以执行:java Helloworld
-classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
-当classpath环境变量配置为某个指定的路径之后,类加载器只去指定的路径当中加 载字节码文件。
综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。
所以,每一次执行.class程序的时候,需要在DOS命令窗口中先切换到.class字节码文件所在的路径下。然后运行。
注意:
路径中“.."表示上级目录 路径中“."表示当前目录
设置步骤:
环境变量-----个人用户里新建 变量classpath 变量值为“.”(表文件所在路径,则Dos运行java时,要进入目标class文件所在文件目录下运行)或文件所在路径(直接运行java+类名即可)
10.其他
-
怎么查看本机的IP地址?
-
什么是IP地址?有什么用呢?
A计算机在网络当中要想定位到(连接到)B计算机,那么必须要先知道B计算机的IP地址,IP地址也可以看做计算机在同一个网络当中的身份证号(唯一标识)。
IP地址就相当于电话号码是一个意思。
-
在DOS命令中,输入“ipconfig”(ip地址的配置信息。)即可
-
“ipconfig/all”可以查看更详细的内容
每个网卡(笔记本上有两个网卡,手机上1个等等)只有一个物理地址,全球唯一的,也称为MAC地址
应用: 终极防蹭网:将要上网的MAC地址绑定到路由器上,则仅绑定的MAC地址可上网,但很麻烦
-
怎么查看两台计算机是否可以正常通信
DOS命令: ping+IP地址/域名
在后面加上“ 空格+‘-t’ ”则会一直发送,可以一直看丢包与时间情况,看网络是否真的很稳定(ctrl+c结束,其实一直运行DOS命令也可用)
另外,域名就是ip的引用(域名底层还是会被解析成ip地址的形式),可以之间域名访问
-
文本编辑器常见快捷键
重做是恢复撤销的内容
当光标在行尾,通过“shift+home“选中一行
当光标在行首,通过“shift+end“选中一行
鼠标左键点击三次,可选中一行
鼠标左键点击2次,可选中一个单词
Shift+箭头(如→等),选中一个内容
Ctrl+Shift+箭头,选中一个单词