JavaSE第一章 Java开发环境搭建

Java自我学习路线

  • 一、常用DOS命令
    • 1.1 怎么打开DOS命令窗口
    • 1.2 什么是DOS命令?
    • 1.3 DOS命令窗口复制
    • 1.4 切换盘符
    • 1.5 切换目录
    • 1.6 路径
  • 二、文本编辑快捷键
  • 三、计算机编程语言(固定语法规则)发展史
  • 四、Java语言的概述
  • 五、Java语言特性
    • 5.1 简单性(相对而言)
    • 5.2 面向对象
    • 5.3 健壮性
    • 5.4 完全支持多线程并发
    • 5.5 可移植性/跨平台
  • 六、JDK、JRE、JVM三者之间的关系
  • 七、Java的加载与执行
    • 7.1 Java两个重要阶段:编译、运行
    • 7.2 Java程序从编写到最终运行经历的过程
    • 7.3 程序员工作:编写、编译、运行
  • 八、编写Java中的第一个Java程序:HelloWorld(搭建环境、测试环境)
    • 8.1 安装文本编译器
    • 8.2 安装JDK
    • 8.3 写代码
    • 8.4 编译
    • 8.5 运行
    • 8.6 JDK新特性
    • 补充

一、常用DOS命令

1.1 怎么打开DOS命令窗口

win+r

1.2 什么是DOS命令?

一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令:
mkdir创建目录、cls清屏、dir查看当前目录下所有子文件或子目录、exit退出DOS命令窗口、tab自动补全、del删除文件或目录(支持模糊匹配)、ipconfig查看IP地址配置等信息(/all)、ping(-t一直ping查看网络是否稳定,域名底层最终会解析成IP地址的形式;ctrl+c终止)…

1.3 DOS命令窗口复制

win7 标记、右键
win10左键选中,右键单击

1.4 切换盘符

盘符 + “:”
D:回车 “当前路径是当前所在路径”

1.5 切换目录

使用cd命令(change directory改变目录)cd 路径

1.6 路径

相对路径、绝对路径
相对路径:从路径形式看,相对路径一定不以盘符开始,一定是相对于当前所在“位置”而言,从当前所在位置作为起点
绝对路径:在Windows中凡是路径起点是盘符的都是绝对路径
C:\Program Files\Android
F:\eclipse
cd …(回到上级路径)一个.代表当前路径
cd \(回到根路径)

二、文本编辑快捷键

  • 提升开发效率(强迫使用)
  • 常用快捷键
    重做:ctrl+y
    查找:ctrl+f
    回到行首/尾:home键、end键
    当光标在行尾/首选中一行:shift+home/end
    回到文件头/尾:ctrl+home/end
    选中一个单词:鼠标双击;ctrl+shift+⬅/➡
    选中一行:鼠标三击

三、计算机编程语言(固定语法规则)发展史

  • 第一代语言:机器语言。直接编写二进制
  • 第二代语言:低级语言。汇编语言,比机器语言更接近人类自然语言
  • 第三代语言:高级语言
    c(面向过程)
    c++(一半面向过程,一半面向对象)
    Java(完全面向对象)Java语言底层实际上是c++实现的
    python(面向对象)

四、Java语言的概述

JDK:Java开发工具箱,做Java开发必须安装的,是Java最核心的库,JDK不是集成开发环境
98年,Java升级到JDK1.2,Java被分为三大块:
J2SE(JavaSE):标准版(基础,学Java必学,基础语法+基础库)
J2EE(JavaEE):企业版(专门为企业开发软件,为企业提供解决方案。eg:OA办公系统、金融系统、医院系统)
J2ME(JavaME):微型版(专门为微型设备做嵌入式开发)

五、Java语言特性

5.1 简单性(相对而言)

在Java语言中真正操作内存的是JVM(Java虚拟机:用c++语言写好的虚拟计算机,安装了JDK之后,JVM就代表安装好了)所有的Java程序都是运行在Java虚拟机中的,Java虚拟机执行过程中再去操作内存。对于c/c++来说,程序员都是可以直接通过指针操作内存的,Java屏蔽了指针概念,程序员不能直接操作指针、内存。
优点:不容易导致内存泄漏;缺点:效率问题

5.2 面向对象

面向对象更容易让人理解,使复杂问题简单化

5.3 健壮性

自动垃圾回收机制(GC机制)JVM负责调度GC机制,程序员不需要干涉

5.4 完全支持多线程并发

5.5 可移植性/跨平台

Java语言编写一次,可以做到到处运行(windows、linux、mac os)Java语言实际上并没有直接和操作系统打交道,而是通过JVM(JVM不一样,分版本)。JVM屏蔽了操作系统之间的差异,实现了跨平台,但比较麻烦,因为运行Java程序必须先有一个JVM。
Java语言可以编写病毒,但很难让用户中毒,中毒的一般都是Java程序员,所以很少编写Java的病毒脚本

六、JDK、JRE、JVM三者之间的关系

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

  • JDK包括JRE,JRE包括JVM;JVM不能独立安装,JRE和JDK可以独立安装;安装JDK的时候,JRE就自动安装了,同时JRE内部的JVM也就自动安装了;安装JRE的时候,JVM也就自动安装了
  • 假设你在软件公司开发了一个新的软件,现在要去客户那边给客户把项目部署一下,把项目跑起来,你需要安装JDK吗?
    不需要,只需要按照JRE即可(JRE体积很小,安装便捷快速)

七、Java的加载与执行

JavaSE第一章 Java开发环境搭建_第1张图片

7.1 Java两个重要阶段:编译、运行

  • 编译:Java程序员直接编写的Java源代码(普通文本)是无法直接执行与被JVM识别的,必须经过一个编译,将普通文本代码变成“字节码”,JVM能够识别“字节码”。转变的过程成为编译
  • 编译阶段与运行阶段可以在不同的操作系统上完成(跨平台)
  • Java源代码一旦编译之后,源代码可以删除吗?只留下字节码可以执行吗?
    完全可以执行,因为源代码不参与程序的执行过程,参与程序执行过程的是字节码。但是最好不要删除源代码,因为有可能执行结果不是你需要的,你可以直接打开源代码进行修改,重新编译,重新执行,会有新的执行效果
  • 放源代码的文件扩展名必须是:xxx.java(源文件)
  • 编译生成字节码文件的扩展名是:xxx.class(字节码文件,字节码文件不是二进制文件,JVM将字节码文件解释为二进制文件供操作系统识别执行,与硬件平台交互)
    一个Java源文件是可以编译生成多个class文件的,最终运行的是class文件

7.2 Java程序从编写到最终运行经历的过程

  • 编译期
  1. 在硬盘的某个位置,新建一个xxx.java文件
  2. 使用记事本或者其他文本编辑器打开xxx.java文件
  3. 在xxx.java文件中编写“符合Java语法规则”的源代码
  4. 保存xxx.java文件
  5. 使用编译器(javac【JDK安装后自带】)对xxx.java文件进行编译
  6. 若xxx.java文件中编写的源代码是符合语法规范的,编译会通过,若违背语法规则,则编译器会报错,class文件不会生成。编译实质上检查语法的
  • 运行期
  1. 若是在Linux上运行,需要将Windows上生成的class文件拷贝过去。不需要拷贝源代码,真正运行的是字节码(但是不删除源码)
  2. 使用JDK自带的一个命令/工具:Java(负责运行的命令/工具)执行字节码
  3. 以下步骤交给JVM,不需要程序员干涉:JVM会将字节码文件装载进去,然后JVM对字节码进行解释(解释器负责将字节码解释为二进制数)
  4. JVM会将生成的二进制码交给OS操作系统,操作系统会执行二进制码和硬件进行交
    在以上的过程中,两个非常重要的命令:
    javac命令,负责编译
    java命令,负责运行

7.3 程序员工作:编写、编译、运行

  1. 新建Java文件
  2. 打开Java文件
  3. 写Java源代码
  4. 保存
  5. javac命令编译
  6. Java命令运行

八、编写Java中的第一个Java程序:HelloWorld(搭建环境、测试环境)

8.1 安装文本编译器

8.2 安装JDK

低版本的时候,JRE实际上有两个,一个是JDK内置的,一个是独立于JDK之外的;高版本安装的时候内置了一个JRE,独立于JDK之外的JRE没有生成,想生成需要执行特殊的命令
JDK的bin目录下有:java.exe负责运行;javac.exe负责编译

8.3 写代码

程序写完之后ctrl+s保存;Java源代码只要修改,必须重新编译生成新的字节码文件

8.4 编译

  • 使用的命令:C:\Program Files\Java\jdk1.8.0_241\bin\javac.exe
    先测试此命令,打开DOS窗口,看javac是否可用
    报错:‘javac’ 不是内部或外部命令,也不是可运行的程序或批处理文件
    这说明Windows操作系统没有发现“javac.exe”命令(文件)在哪里,Windows操作系统中有一个这样的环境变量:Path
    修改完环境变量之后,DOS命令窗口必须关闭程序打开才会起作用
  • 配置环境变量Path的步骤:计算机右键–>属性–>高级系统设置–>环境变量,将C:\Program Files\Java\jdk1.8.0_241\bin配置到Path中
    环境变量包括“系统变量”和“用户变量”
    系统变量:范围比较大,系统变量会让计算机所有用户都起作用
    用户变量:范围比较小,用户变量只是作用于当前用户
    Path环境变量的作用就是告诉Windows操作系统去哪里找命令文件;Path环境变量中可指定多个路径,路径与路径之间用英文“;”隔开
  • javac命令怎么用?
    语法格式:javac java源文件的路径
  • 什么是java源文件?
    java源文件的名字以“.java”结尾,该文件中写了java源代码
  • java源文件的路径是什么意思?
    路径永远包括绝对路径和相对路径
    以下的四种方式使用javac命令编译,第一种方式是绝对路径,剩下三种方式都是相对路径
    C:\Users\lzj>javac D:\Users\lzj\Desktop\HelloWorld.java
    D:>javac Users\lzj\Desktop\HelloWorld.java
    D:\Users\lzj>javac Desktop\HelloWorld.java
    D:\Users\lzj>Desktop\javac HelloWorld.java
    错误示范1
    C:\Users\lzj>javac Users\lzj\Desktop\HelloWorld.java
    javac: 找不到文件: Users\lzj\Desktop\HelloWorld.java
    用法: javac
    -help 用于列出可能的选项
    以上报错的原因是:java源文件的路径写错了
  • 怎么在DOS命令窗口中快速定位到某个路径呢?
    打开计算机–>打开文件夹–>在地址栏上直接输入cmd回车,这样直接就过去了
    编译报错的时候不会生成class字节码文件!

8.5 运行

运行的前提是:class文件(字节码)生成了。没有字节码文件程序是无法运行的

  • 怎么运行,使用哪个命令?
    使用JDK的bin目录下的:java.exe命令来运行。
    先在DOS命令窗口中测试java.exe这个命令是否可用:java -version
  • "java.exe"这个命令怎么用,语法格式是什么?
    语法格式:java 类名
  • java HelloWorld.class 对不对?
    不对!
    正确的写法是:
    java HelloWorld
    千万千万要注意:java这个命令,后面跟的是“类名”,而绝对不能跟“文件路径”,因为java命令后面跟的不是文件,是一个“类名”。
    对于这个字节码:Test.class,应该为:java Test
    对于这个字节码:A.class ,应该为:java A
    对于这个字节码:Hello.class,应该为:java Hello…
  • 运行java程序需要哪些步骤呢?
  1. 先使用cd命令切换到xxx.class文件所在的路径(当前路径)
  2. 执行java xxx
    切记:java命令后面只要是跟路径,就一定不行。java命令后面只能跟类名
  • 到目前为止一共配置了哪些环境变量?
    目前只配置了一个环境变量path,并且这个环境变量path和java实际上没关系,是windows操作系统的机制。
  • JAVA_HOME:
    对于Java的JDK所属的环境变量,有一个叫做:JAVA_HOME
    这个JAVA_HOME目前我们不需要,不配置这个环境变量也不会影响当前java程序的运行。但是后期学习到JavaWEB的时候需要安装Tomcat服务器,那个时候JAVA_HOME就必须配置了。
    除了JAVA_HOME环境变量之外,JDK还有其他相关的环境变量
  • "java HelloWorld"的执行过程以及原理
  1. 会先启动JVM(java虚拟机)
  2. JVM启动之后,JVM会去启动“类加载器classloader”
    类加载器的作用:加载类。本质上类加载器负责去硬盘上找“类”对应的“字节码”文件。假设是“java HelloWorld”,那么类加载器会去硬盘上搜索:HelloWorld.class文件。假设是“java Test”,那么类加载器会去硬盘上搜索:Test.class文件…
  3. 类加载器如果在硬盘上找不到对应的字节码文件,会报错,报什么错?
    错误: 找不到或无法加载主类
    类加载器如果在硬盘上找到了对应的字节码文件,类加载器会将该字节码文件装载到JVM当中,JVM启动“解释器”将字节码解释为“101010000…”类似的二进制码,操作系统执行二进制码和硬件交互。默认情况下,类加载器去硬盘上找“字节码”文件的时候,类加载器(classloader)默认会从当前路径下找
  • 能不能给类加载器指定一个路径,让类加载器去指定的路径下加载字节码文件?
    可以。但是我们需要设置一个环境变量,叫做:classpath。classpath是一个环境变量,是给“类加载器”指路的。classpath环境变量不属于windows操作系统,classpath环境变量隶属于java,是java特有的。
    classpath=A路径;B路径;C路径…
    classpath是一个变量名
    A路径;B路径;C路径…是变量值
  • 配置classpath,这个环境变量在windows中没有,需要新建:计算机–>右键–>属性–>高级系统设置–>环境变量–>新建…
  • 变量名不能随意写(大小写无所谓),但必须叫做:classpath
    如:CLASSPATH
    ClassPath
    Classpath
    classpath
    到目前为止:classpath环境变量不需要配置,但必须理解classpath环境变量的作用
  • 配置了classpath环境变量后,类加载器不再从当前路径下找,而是从指定路径下找,所以到目前为止classpath环境变量不需要配置
    Path Java_Home classpath,这3个环境变量Path需要配置,后面两个暂时不配置

8.6 JDK新特性

  • 在高版本的JDK当中,有这样的一个新特性,可以直接这样一步到位:
    java x/y/z/xxx.java
    即java后面直接加java源文件的路径
    这个特性是为了简化开发而提出,但实际上底层的实现原理还是和以前一样的,以上命令在执行过程中,还是会先进行编译,然后再运行。并且以上的运行方式,
    编译生成的class文件在硬盘上不存在,看不到
  • 注释
    注释信息只保存在Java源文件中,Java源文件编译生成的字节码class文件中没有注释信息
// 单行注释
/*
	多行注释
*/
/**
* javadoc注释:这里的注释信息可以自动被javadoc.exe命令解析提取并生成到帮助文档当中
*/

补充

  • Java中可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同。

你可能感兴趣的:(JavaSE学习路线)