- 前言:课程链接:【黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)】
- 本文资料都会分享在阿里云盘上,所以想要资源需要事先下载阿里云盘并且有一个账号
1.Java入门
- 施乐--第一个提出并使用图形界面公司,之后才是微软、苹果等
- 图形化界面的弊端:消耗内存和图形化资源,所以我们要学会使用命令行运行部分程序
1.1打开/进入cmd
- cmd中文名是命令提示符
- win+R按键同时按进入运行
- (同时按下win+e打开'我的电脑',这里不演示)
- 输入cmd
- 回车
1.2常见cmd命令
- cmd命令并不区分大小写,但是对中英文符号有区别,这点需要注意
- 盘符名称+冒号表示盘符切换,可以不切换盘符运行命令,这里的冒号必须是英文冒号,eg:
D: dir表示查看当前路径下的内容cd ..表示返回上一级目录cd dirname表示进入目录,dirname是目录名字,可以用\分开进入多级目录cd \回退到盘符目录cls清屏exit退出命令提示符- 命令行可以直接运行exe文件,比如在qq的程序目录下,在命令行中输入
qq.exe就可以直接执行,如果想要在任何地方都可以输入qq.exe就直接运行,在windows中需要修改环境变量就行
- 配置环境变量:
①找到设置(我的电脑是windows11版本,界面长这样)
②找到编辑系统环境变量,找到环境变量
③找到系统变量的Path,双击进去,新建后将绝对路径添加进去。在这里添加进去之后,在cmd中输入命令如qq.exe如果系统没有这类命令就会从这里的路径从上往下开始查找,所以顺序越上搜索到的速度就越快,之后的很多应用如java、python等需要配置环境变量的都会复习一遍。想要在任意目录打开相应软件,就可以把软件所在目录配置到环境变量。
1.3Java是什么
- 一门编程语言
- ......
1.4Java下载与安装
- 相当于游戏的下载与安装,我们也需要安装下载该应用软件
- 阿里云盘jdk8链接:jdk-8u371-windows-x64.exe
- 下载完成直接安装就行了,可以更改目录,但是要记住你的安装目录,并且安装目录不含中文,你需要记住你的安装目录,可以用记事本记住,后面会用到
- 官网下载地址:Download Java for Windows,这个网址是下载jre的,不是jdk,jdk8官网下载地址,只建议安装jdk8版本,注意是下载jdk而不是jre哈,jre是java运行环境,jdk是java开发工具包,才是java运行核心包括了jre,高版本jdk17以上会有中文乱码问题,官网下载需要有一个Oracle账号,并且网速可能不是很好,所以推荐使用阿里云盘链接。
- 安装完成后有关目录介绍:
- bin:各种工具命令,其中比较重要的有javac和java
- conf:相关配置文件目录
- include:存放一些平台特定的头文件
- jmods:存放各种模块
- legal:存放各模块的授权文档
- lib:工具的补充jar包
1.5配置环境变量
- 进入环境变量的编辑(这里使用win10,win11类似或者按照上述步骤)
- 选择高级系统设置
- 选择环境变量
- 选择系统变量里的新建
- 新建
JAVA_HOME变量,变量值为你的jdk安装的绝对路径,如C:\Program Files\Java\jdk1.7.0_80
- 修改
PATH变量,变量值为%JAVA_HOME%\bin(这个值固定不变,建议复制粘贴,自己输入,容易出错)
或者:
看你遇到的是哪种情况
- 点击确定,关闭环境变量配置界面
- 如果你遇到重启系统之后环境变量就失效的bug,需要直接将绝对路径添加到环境变量Path上,这里可能会因为%开头的缘故无法直接正确加载环境变量,所以%%里面的环境变量一般不要放在最上面
- 在cmd中输入java验证结果
- PS:其实上述关于环境变量的描述中已经说明了,在配置jdk环境变量主要是将bin目录配置到Path(也可以大写PATH)中去,只不过用了一个
%JAVA_HOME%代替了前面的部分,实际上还是一个完整的目录,为了后续其他软件的方便,这个JAVA_HOME变量还是很有必要的哦
1.6Java初体验
- 首先在代码中不要出现中文,我们之后会解释
- 新建一个文本文件HelloWorld.txt,如果你的电脑没有看到文件后缀名,需要自己修改一下
- 修改后缀名为.java,即将文件的整个文件名修改为HelloWorld.java
- 右键文件选择打开方式,用记事本打开文件
- 开始写代码:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello world");
}
}
- 注意保存代码,可以使用快捷键
ctrl+s - 切换到代码文件所在的路径
- 输入
javac HelloWorld.java,命令行没有任何提示表示成功编译,成功后会成成一个字节码文件,此文件不能用记事本打开(javac是jdk提供的编译工具,我们可以通过这个工具,把当前路径下的HelloWorld.java文件编译成class文件) - 输入
java HelloWorld,屏幕中打印出"Hello World"表示成功(java命令会运行字节码文件)
1.7Hello world常见问题
- bug(小虫子)是程序出错问题的代称
- 标点符号问题:中英文符号,无论是逗号还是分号都需要使用英文符号,在编写代码的过程中,除非特定字符串,都不能出现中文字符
- 可以直接在目录上输入cmd直接进入当前文件夹:
2.文本编辑器Sublime Text
- 可以免费使用
- 支持语言多,有高亮、行数
- x64 windows系统阿里云盘下载:Sublime Text Build 3211 x64 Setup.exe
- Sublime Text下载官网:Download - Sublime Text
3.Java基本知识
3.1Java的发展历史
- 为了与时俱进java更新很快,为了减少程序员负担,所以分为过渡版本和长期支持版本(LTS),其中常用的稳定版本为8.0,很多公司也一直使用这个版本
3.2Java的分类
- JavaSE,但是最常见的是桌面应用开发语言是C/C++,学习JavaSE还有一个好处是为JavaEE打下基础
- JavaME,目前已经被取代了,很少或者没有相关职位,安卓可以使用java写
- JavaEE,主要用于服务器开发
3.3Java能做什么
- Java为什么这么火?--与时俱进(6个月更新一次),......
3.4 Java主要特性:
* 面向对象:很重要,后面需要理解
* 安全性:不言而喻
* 多线程:......
* 开源:免费并且知道源代码,Java是开源的,但是Java程序不是开源的
* 简单
* 跨平台:能够在很多平台上运行
3.5Java跨平台原理
- 高级语言的编译运行方式:编程(写代码)、编译(将代码翻译成机器认识的语言)、运行(让机器执行编译后的代码)
- 高级语言的编译运行方式可以分为编译型、解释型和混合型(半编译、半解释)
- 编译型:编译型语言,需要整体编译,即将源代码编译成另外一个文件(C语言:.c文件变为.obj文件;Java:.java文件变为.class文件)
- 解释型:特点是按行翻译,即不需要生成一个新的文件,只需要一行一行翻译,翻译后直接运行
- 混合型:Java是混合型语言,这里引入JVM(Java虚拟机)和虚拟机的概念,暂时不需要深究,Java的跨平台原理就是虚拟机
3.6 JDK & JRE
- Java Development Kit: java开发工具包
- Java Virtual Machine:(JVM)Java虚拟机,是java真正运行程序的地方
- 核心类库:是java已经写好了的东西,是事先定义好的内容、格式等
- 开发工具:我们之前用来编译以及运行的都是靠java提供的工具来的,如:编译工具javac,运行工具java,调试工具jdb,内存分析工具jhat
- Java Runtime Environment:(JRE)Java的运行环境,是指已经有了class文件,我们运行java程序还需要的java工具,包括JVM、以及核心类库和运行时必要的开发工具,也称运行工具
4.注释
- 文档注释有专门的工具来写,暂时不介绍,后面有详细地介绍
public class HelloWorld{
//叫做main方法,表示程序的主入口
public static void main(String[] args){
/*
叫做输出语句(打印语句),会把小括号里面的字符输出。
注释信息不会被执行,只是给人看的,如果将代码注释,那么代码将不会被执行
注释信息不能嵌套,只的是不能再这个注释里面继续使用/ * 和 * /连在一起了
*/
System.out.println("Hello world");
}
}
- 有关注释的深入,在代码规范中有很强的限制哦
5.关键字
- 指的是那些被java赋予了含义的单词,例如class ,public等
- class关键字表示定义一个类,类是java对象的一个特殊名称,后面会理解,最外层类名需要和文件名一致
- public关键字表示权限,到后面才会加深理解(新建一个文件名为HelloWorld,就需要在文件里面定义类public class HelloWorld{})
6.字面量(常量)
6.1分类
新建文件名:test1.java
public class test1{
public static void main(String[] args)
//整数
System.out.println(1);
//小数
System.out.println(3.14);
//字符串
System.out.println("Hello world");
//字符
System.out.println('A');
//布尔
System.out.println(true);
//空
System.out.println(null);
}
运行:在命令行输入javac test1.java然后输入java test1
6.2特殊字符
- 制表符'\t',作用是为了对齐,在打印的时候把字符串的长度补齐到8或者8的倍数
7.变量
- 变量的定义:数据类型 变量名 = 数据值; test.java
public class test1{
public static void main(String[] args)
//数据类型int 变量名i 数据值1
int i = 1;
//输出i的值
System.out.println(i);
int b = 10;
int c = a + b;
//输出c的值
System.out.println(c);
//修改a的值
a = 100;
//一条语句定义多个变量
int d=100,e = 290,f = 300;
//定义与赋值可以分开写,但是在使用之前必须赋值
int gg;
gg = 1000;
}
- java中的变量名不能重复,即不能重复定义一个变量,但是在Python当中这是符合语法的
- 变量只能存一个值
- 一条语句可以定义多个变量
- 变量在使用之前需要赋值
- 代码规范:一条语句只声明一个变量,变量声明的时候需要初始化一个值
8.计算机的存储规则
- 在计算机中,任意数据都是以二进制的形式来存储的
8.1常见的进制
- 二进制:由0和1组成,以
0b开头,注意是零b - 十进制:由0-9组成,前面不加任何前缀
- 八进制:由0-7组成,代码中以
0开头,是数字0 - 十六进制:由0-9还有a-f组成,代码中以
0x开头,是零x - 进制是在jdk7以后提出来的
//这里省略的文件类名和入口函数
int a = 0b100111;
int b = 12;
int c = 03;
int d = 14f;
8.2进制之间的转换
- 任意进制转十进制
- 任意进制之间的转换
- 建议好好学习一下进制之间的转换,本文不做详细介绍
8.3码表
- ascii码表中每一个字母与一个二进制进行对照,但是没有中文收录在里面
- GB2312这个码表才有中文
8.4图片数据
- 常见名词
- 标红为常见的分辨率
- 这里的1920表示1920个像素点
8.4.1黑白图
8.4.2灰度图
8.4.3彩色图
- 光学三原色:红绿蓝
- 通过三种颜色的搭配可以表现任何颜色,如43,123,194,通过三原色的值来确定一个颜色,每个颜色是有取值范围的,都是0-255,0表示没有,255表示该颜色最深的颜色,顺序为红绿蓝,这个也称为RGB三原色,当然既可以是十进制形式,也可以是十六进制形式如(255,255,255)和(FFFFFF)
8.5声音数据
- 波形图,通过对每个点进行采样得到数据,采样点多还原率高,实际上就是一串二进制数据来进行存储
9.数据类型
- 基本数据类型
- 取值范围
//...
byte a = 10;
short b = 18;
int c = 29;
//如果要定义以一个long类型数据需要再后面添加一个大写或者小写的L作为后缀
long d = 123L;
//与long同理,大写或者小写F是后缀
float e = 3.14F;
double f = 123.0;
char g = 'A';
boolean h = true;
- 大小关系
- 其他
9.1 练习:
- 字符串:String,之后会详细介绍
//...
String name = "黑马程序员";
int age = 18;
char gender = '男';
double height = 180.1;
boolean flag = true;
System.out.println(name);
System.out.println(age);
System.out.println(gender);
System.out.println(height);
System.out.println(flag);
10.标识符
- 命名需要按照规范:Java开发手册,这里不展开来讲
- 硬性要求:
- 关键字需要自己在使用中了解,不需要去记,用着就知道了
- 软性建议:见名知意,以及对应使用小驼峰命名法和大驼峰命名法,还可以写注释
10.键盘录入
- Scanner类的使用
- 步骤:
import java.util.Scanner;
System.out.println("请输入一个整数:");
Scanner sc = new Scanner(System.in);
//表示接受一个整数
int i = sc.nextInt();
System.out.println(i);
//再次接受一个数据
int j = sc.nextInt();
11.IDEA
11.1概述
- 唯一缺点:运行项目时CPU占用率高,接近2G
11.2下载和安装
- 官网下载地址
- 社区版阿里云盘下载地址,文件有点大,632MB的安装包:ideaIC-2023.1.exe
- 社区版是免费的,专业版是收费的,但是有30天的免费试用时间,可以下载社区版使用,本文不提供破解教程
- 安装步骤,除了以下需要修改,其他直接点击下一步和安装即可:
11.3开始使用
- 项目结构
- 新建项目
- 新建模块
①第一种方法,不推荐
②第二种方法
File--Settings--Project Structure--Modules
--点击加号
- 基本目录结构
- 新建包(目录):右键day02
- 新建类
- 快速生成main函数(入口函数):输入
psvm然后回车
- 输入
sout回车快速生成输出函数 - 右键运行
11.4设置外观
- File--Settings
- File--Settings下滑找到背景图的选项,就可以自定义背景图了
- 可以拖动窗口大小进行预览和设置Opacity调节透明度
- 调节字体大小,更换字体:File--Settings--Editor--Font,这里可以调节字体大小和字体,更换成Lucida Console防止小写字母i和字母l和数字1傻傻分不清的情况,当然也可以换成其他你觉得好看的字体
- 注释颜色修改:File--Settings--Editor--Color Scheme--Language Defaults--Comment
- 其中Block comment是块注释,Line comment是行注释
11.5快捷方式
- sout:输出函数
- psvm:主函数
- ctrl+/:注释