JavaSE第一章 Java开发环境搭建

一、常用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 路径
    cd …(回到上级路径)一个.代表当前路径
    cd \(回到根路径)

1.6 路径

相对路径、绝对路径
相对路径:从路径形式看,相对路径一定不以盘符开始,一定是相对于当前所在“位置”而言,从当前所在位置作为起点
绝对路径:在Windows中凡是路径起点是盘符的都是绝对路径

二、文本编辑快捷键

  • 提升开发效率(强迫使用)
  • 常用快捷键
    重做: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不是集成开发环境
1998年,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开发工具箱(Java Development Kit)
JRE:Java运行环境(Java Runtime Environment)
JVM:Java虚拟机(Java Virtual Machine)

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

七、Java的加载与执行

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目录下有:javac.exe负责编译;java.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这个命令,后面跟的是“类名”,而绝对不能跟“文件路径”
    对于这个字节码: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环境变量不需要配置

8.6 JDK新特性

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

补充

  • Java中可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jayco江柯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值