一、Java SE课程概述
1.1 课程概述
- Java语言核心结构:数据类型、变量、流程控制、数组。
- Java面向对象核心逻辑:封装、继承、多态、抽象、静态、接口。
- Java高级应用:集合、I/O、多线程、网络编程、反射。
- MySQL/JDBC:将程序中的数据存储到数据库里,实现持久化存储。
1.2 计算机
- 一台设备。由硬件和软件组成。
- 硬件:
- CPU、内存、硬盘、输入设备(键盘、鼠标、指纹录入)、输出设备(显示器、打印机)
- 软件:
- 系统软件:操作系统。
- 应用软件:安装在操作系统上的软件。
- 人机交互:
- 图形化界面:苹果是鼻祖。windows是后来的。
- 命令行方式:将来运行的程序在服务器上。服务器是没有图形化界面的。纯靠命令。
1.3 常用的DOS命令
- 打开DOS命令窗口:
-
win键+r键,输入cmd打开命令窗口
-
切换盘符:盘符名称: :是英文的
-
查看当前目录的内容:dir
-
切换/进入文件夹: cd 文件夹名
-
返回根目录:cd\
-
切换/进入多级文件夹:cd 文件夹名\文件夹名\文件夹名
-
返回上一级:cd…
-
清屏:cls
-
打开一个新窗口:start
-
退出窗口:exit
-
创建文件夹:mkdir 文件夹名称
-
创建多级文件夹:mkdir 文件夹名称\文件夹名称
-
删除文件夹:rd 文件夹名称 只能删除空目录 不走回收站(操作不可逆)
-
删除非空文件夹: rd /s/q 文件夹名称 /s 是递归删除 /q 别问!
-
创建文件:type nul > 文件名
-
删除文件:del 文件名.后缀名 不走回收站 不可逆
-
后缀批量删除:del *.后缀名
-
删除某些统配文件: del a*.txt 删除a开头的.txt文件
-
经验总结:
- 快速进入某个文件夹,在文件夹的上方,地址栏里输入cmd,打开窗口即在当前目录。
- 上下方向键,可以快速输入之前输入过的命令
- 文件夹名称过长,可以按tab键。如果出现多个前缀相同的文件或文件夹,按tab键选择,或多打个名称
- 查看文件,如果没有.txt这种后缀名,则在上方点击查看,勾选文件扩展名。
-
1.4 计算机编程语言
- 第一代:机器语言:二进制 0101
- 第二代:汇编语言:增加助记符,简化了对应的命令执行操作。 最终还是要转换为机器语言。
- 第三代:高级语言:独立性,不与硬件绑定。需要编译器,编译成对应的机器码文件,再执行。
- 不管是什么语言,不管第几代语言,最终都会向机器语言靠拢,不管是啥,cpu都只认识0和1.
二、Java语言概述
2.1 Java语言概述
- 是一种面向对象的编程语言,主要开发web程序。应用程序。
- Java之父:詹姆斯*高斯林
- IDEA->Java写的
- Hbuilder->Java写的
- Java渗透到各个领域了。。
- 目前学习的是JDK17.虽然jdk21是下一个稳定长期支持的版本,但是太年轻了。还有待观望。
2.2 Java三个版本
- Java SE:标准版,Java基础语法。
- Java EE:企业版,开发企业级应用的。
- Java ME:小型版,小型机、电视。
2.3 JDK的安装
-
下载地址:Oracle官网:www.oracle.com
-
software文件夹里,给大家提供jdk17。
-
卸载:
- 控制面板、应用设置、360、腾讯电脑管家,将jdk卸载掉
-
安装:
- 直接双击安装包,更换目录即可。
-
配置环境变量前奏:
- 查看系统环境变量:
- 右键此电脑->属性->高级系统设置->环境变量->path:
- C:\Program Files\Common Files\Oracle\Java\javapath
- 此路径帮助我们定义了开发Java程序的基本命令。
- 查看系统环境变量:
-
配置完整的Java开发的命令环境变量:
-
最直接的方式:只配置path: (不推荐)
- 将jdk的目录,到bin目录里,整体的路径复制一份到path里。
-
配置JAVA_HOME:第三方的软件在调用JDK的时候,不是调用的path,而是调用JAVA_HOME**(推荐)**
- 先在path中删除jdk17自动生成的 C:\Program Files\Common Files\Oracle\Java\javapath
- 找到jdk所在的目录,bin的上一级。目录复制。
- 到环境变量中的系统变量下,新建JAVA_HOME
- 输入 E:\Program Files\jdk-17
- 到path环境变量里,点击新建,引用:%JAVA_HOME%\bin
-
2.4 Java开发环境
- JVM:Java虚拟机,运行Java程序的环境,是一个假象的计算机。在任何一台操作系统上,安装了一个运行Java的环境。
- JRE:Java运行环境,Java的运行所需的部件,包含了JVM和核心类库
- JDK:Java开发工具包,包含了JRE和开发工具(javac 、 java命令)
三、Java开发第一个程序
3.1 HelloWorld
- 编写:
- 在文件夹里创建一个文件,修改后缀名为.java
- 一定要让后缀名显示出来
- 编译:
- 将.java文件,编译成.class字节码文件,JVM只认识.class文件。
- javac HelloWorld.java
- 运行:
- 运行编译后的.class字节码文件。
- java HelloWorld 此处不用加.class JVM已经认识class文件
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
3.2 第一个程序遇到的问题
- 乱码问题:
- windows控制台是GBK,notepad++编写文件的编码是UTF-8.不一致导致乱码。
- 在notepad++里,找到编码,点击转为ANSI编码
- .java源文件发生更改:
- 记得要重新编译。
- jdk新特性:动态编译:
- 可以直接使用java命令 运行.java文件。
- 原理是程序员可以不用编译了,但是实际上再JVM中还是要经过javac编译,不产生.class文件,而是直接由jvm运行了。
- 源文件名与class类名的关系
-
class类名是public的,则class类名必须和源文件名一致。
-
注意:动态编译不检测这个规则
- 类是否有public修饰
- 一旦类名用public修饰,则必须和原文件名一致。
- 不用public修饰,则可以源文件名和类名不一致
- 一个源文件中,只能写一个class类吗?
- 一个源文件中,可以定义多个class。 (不推荐这么做!)
- 一个源文件中,只能有一个public修饰的class。
3.3 配置Notepad++
- 设置->首选项->新建—>编码选择ANSI,文件类型选java
3.4 println和print
public class Test{
public static void main(String[] args){
System.out.println("Hello");
System.out.println("World");
System.out.print("Hello");
System.out.print("琦玉");
}
}
println:打印并换行
print:打印不换行
四、注释
4.1 作用
- 解释代码:给自己看,同事看。
- 让我写注释的。 我接手的代码他没有注释就得一行一行看,比较麻烦。
4.2 注释的分类
-
单行注释:解释一行代码的。
-
多行注释:解释一段代码。
-
文档注释:生成代码的文档的。
-
// 单行注释 /* 多行注释: */ /** * 这是文档注释 * @author s * @version 1.0.0 */
-
生成文档的命令:javadoc -d 生成文档保存的文件夹名称 -author -version 源文件名称.java
//这是一个注释测试类
public class CommentTest{
/**
* 这是程序的入口
* @author s
* @version 1.0.0
*/
public static void main(String[] args){
//是一行输出语句
System.out.println("你好~安琪拉");
/*
多行注释:下面是英雄介绍!
*/
System.out.println("你好~妲己");
System.out.println("你好~甄姬");
System.out.println("你好~王昭君");
}
}
4.3 第一个程序做解释
/*
public :公共的访问权限
class : 类,Java中代码最小组成单元,所有的代码都要写在类里。
DescriptionTest:类名 自定义的。 首字母大写。拼接的单词首字母大写
*/
public class DescriptionTest{
//程序的入口:Java程序要执行,都要通过main方法。
public static void main(String[] args){
//输出语句:输出""里的内容到控制台 cmd
System.out.println("你好,李青");
}
}
注意:
- 类名和源文件名一致。
- 所有的符号都是英文的。
- 程序中出现的括号都是成对的。
- 一行只写一句代码,以;为结尾
- 不要讲main写成mian。饿了咱就订外卖,别依赖程序。
- String和System首字母都是大写的。
五、JVM
5.1 Java的特点
-
跨平台:
- 跨越,不关心操作系统。
- 平台:操作系统
- 在不同的操作系统中,安装了jdk后,会自带jvm。jvm会屏蔽不同操作系统间的底层差异。我们程序员运行程序在JVM里,JVM调用本地计算机的硬件。
-
面向对象。。。。。后续的学习逐步我们去接受、理解即可。
六、关键字和标识符
6.1 什么是关键字
- 在Java中,被赋予了特殊含义的单词/字符串 class public static
- 关键字里还有保留字:占用一些单词,当前没有意义,但是后续的版本,该单词会被赋予特殊含义。
6.2 标识符
/*
关键字:具备特殊含义的
标识符:自定义的单词或名称。 类名、变量、常量名、包名
命名规则:规定:你必须这么做
1.字母(A-z)数字(0-9)下划线_ $美元符
2.数字不能开头
3.严格区分大小写 String System
4.千万不能和关键字重名
命名规范:约定:你这么做,大家都这么做。
1.见名知意 Test 测试 Comment 注释
2.类名 首字母大写,拼接的单词首字母大写
3.对变量名 方法名 首字母小写,拼接的单词首字母大写。
getName studentAge
4.常量名 单词全大写 多个单词用_拼接 MAX_AGE MAX_SCORE
5.包名,必须全部小写。 com.atguigu.demo
*/
class ApplicationContext{
public static void main(String[] args){
System.out.println("Hello Class");
}
}