这是我参与更文挑战的第22天,活动详情查看: 更文挑战
1, 前置学习
1, 位(bit) 一个数字0 或者一个数字1 ,代表一位
2,字节(Byte) 每逢8位是一个字节,这是数据存储的最小单位
1 Byte = 8 bit
1KB = 1024 Byte
1MB= 1024KB
1GB= 1024MB
1TB= 1024GB
1PB= 1024TB
3, CMD快捷键
1, 进入多级文件夹
cd a\b\c
2, 回到根目录
cd \
3, 显示目录
dir
4, 快速打开cmd
(1) win + R 输入 cmd
(2) 选择文件夹地址栏 直接输入 cmd 回车
5, 清屏
cls
6, 退出
exit
2, Java虚拟机
-
虚拟机(JVM)是运行所有Java程序的假象计算机,是java程序运行的环境,也是Java最具有吸引力的特性之一,我们编写的Java代码,都运行在JVM之上
-
跨平台 :Java编写的软件可以运行在任何操作系统上,这个特性称为java语音的跨平台特性,改特性是有JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
注意: JVM虚拟机本身不具备跨平台功能的,每一个操作系统下都有不同版本的虚拟机, windows系统有win版的JVM, linux系统有linux版本的JVM, MAC系统有mac版本的虚拟
3, JRE 和 JDK
- JRE(Java Runtime Environment): 是Java程序的运行时环境,包含JVM和运行时所需要的核心类库
- JDK(Java Development Kit): 是Java程序员开发工具包,包含JRE和开发人员使用的工具
前端同学可以理解为:JRE等同于前端的浏览器或者是nodejs
1, 如果我们想运行一个已有的Java的程序,那么只需要安装JRE即可
2, 如果我们想开发一个全新的Java程序,那么我们必须安装JDK工具包
JDK,JRE,JVM三者之间的关系如图:
4, JDK下载
https://www.oracle.com/java/technologies/javase-jdk16-downloads.html
window版本下载:jdk-16.0.1_windows-x64_bin.exe
mac版本下载:jdk-16.0.1_osx-x64_bin.dmg
1, 打开我的电脑—> 高级配置—> 环境配置—> 系统变量—> 点击新建
变量名:JAVA_HOME
变量值:C:\Java\jdk-16.0.1\bin
2, 双击PATH
新建: %JAVA_HOME%
3, 关闭所有的CMD窗口
4, 打开新建CMD
输入:java --version
java 16.0.1 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)
5, Hello World
开发环境搭建完之后,Java程序开发的三步骤: 编写,编译,运行
编写:Java源程序
编译: Javac.exe 编译器 —> 生成 java字节码文件 .class文件
运行:java.exe 解释器, 在JVM上运行,解释.class文件
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
C:\>javac HelloWorld.java
C:\>java HelloWorld
Hello World
注意: main方法是所有程序代码执行的起点
6, 基础知识
(1)关键字
关键字特点:
1, 完全小写的纯英文字母
2, 常见的关键字
public class main 太多,可自寻查询
(2)标识符
程序中自己定义的类名字,方法名字,变量名称都是标识符
1, 标识符可以包含英文字母,0-9数字,$ 美元符合, _ 下划线
2, 标识符不能以数字开头
3, 标识符不能是关键字
(3)命名规范
类名规范: 首字母大写,后面每个单词字母大写, 又称:大驼峰式
变量规范: 首字母小写,后面每个单词字母大写, 又称:小驼峰式
方法规范: 小驼峰式
(4)常量
在程序运行期间,固定不变的量
1, 字符串常量:凡是用双引号引起来的部分,叫做:字符串常量, 例如: “abc", "hello"
2, 整数常量:直接写上的数字,没有小数点, 例如: 100, 200
3, 浮点数常量:直接写上的数字,有小数点, 例如: 1.5, 3.14, -1.1
4, 字符常量:凡是用单引号引起来的单个字符,就叫做:字符常量, 例如: 'A', 'b' '中'
5, 布尔常量:true , false
6, 空常量: null 表示没有任何数据
注意: 字符串常量和字符串常量, 在前端同学眼里, 这两个是一样的,Java 语音是有区别的,且:两个单引号中间必须有且仅有一个字符,没有不行,有多个也不行
基本数据类型
整数型:byte, short, int, long
浮点型:float, double
字符型: char
布尔型: boolean
引用数据类型
字符串, 数组, 类, 接口, Lamba
| 数据类型 | 关键字 | 内存占用 | 取值范围 |
|---|---|---|---|
| 字节型 | byte | 1个字节 | -128~127 |
| 短整型 | short | 2个字节 | -32768~32767 |
| 整型 | int | 4个字节 | 负的2的63次方~2的63次方-1 |
| 长整型 | long | 8个字节 | |
| 单精度浮点数 | float | 4个字节 | |
| 双精度浮点数 | double | 8个字节 | |
| 字符型 | char | 2个字节 | 0~65535 |
| 布尔型 | boolean | 1个字节 | true, false |
注意:
1, 字符串不是基本类型,而是引用类型
2,浮点类型可能只是一个近似值,并非精确的值
3,数据范围与字节数不一定相关,float数据范围比long更加广泛,但是float是4字节,long是8字节
4,浮点数默认类型:double, 如果一定要使用float类型,需要加上一个后缀:F
5,整数类型默认类型:int, 如果一定要使用long类型,需要加上一个后缀:L, 推荐使用大写字母后缀
(5)变量
程序运行期间,内容可以发生改变的量
创建一个变量并且使用的格式:
数据类型 变量名称 = 数据值;
创建变量注意事项:
1, 如果创建多个变量,那么变量之间名称不能重复
2,对于float, long类型来说,字母后缀F和L不能丢掉
3,如果使用byte, short类型的变量,那么右侧的数据值不能超过左侧类型的范围
4,没有进行赋值的变量,不能直接使用,一定要赋值之后才能使用
5,变量使用不能超过作用域的访问
什么是作用域?
从定义变量的一行开始,一直到直接所属的大括号结束为止。
(6)类型转换
1, 自动类型转换(隐式)
1, 特点: 代码不需要进行特殊处理,自动完成
2, 规则: 数据范围从小到大
2,强制类型转换(显示)
1, 特点: 代码需要进行特殊的格式处理,不能自动完成
2,规则: 范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据
int num = (int) 100L;
注意:强制转换容易导致数据溢出, 精度损失
byte/short/char 这三种类型都可以发生数学运算, 在运算的时候,都会被首先提升成为int类型
(7)ASCII码表
常用的:
48: 0
49:1
65:A
66: B
97: a
98: b
(8)运算符
1,/ 取商
2,% 取余数
3,运算当中有不同类型的数据,那么结果将会是数据类型范围大的那个
4,任何数据类型和字符串进行连接的时候,结果都会变成字符串
5, 单独使用:num++ , 和 ++num 没啥区别
混合使用:++前,那么变量立刻加 +1, 然后在拿着结果进行使用
后++, 那么首先使用变量本来的值,然后再让变量加+1
6,只有变量才能使用赋值运算符,常量不能进行赋值
a +=3 相当于 a = a + 3
b -=3 相当于 b = b - 3
c *=3 相当于 c = c * 3
d /=3 相当于 d = d / 3
7,&& 全都是true, 才是true
|| 至少有一个是true, 才是true
! 本来是true, 变成false
8, 三元运算符: 数据类型 变量名称 = 条件判断 ? 表达式A :表达式B;
注意事项:必须同时保证表达式A和表达式B都符合左侧数据类型的要求
9,
7, jshell
什么时候用jshell工具,简单的测试可以jshell
打开cmd, 直接输入jshell
C:\WINDOWS\system32>jshell
| 欢迎使用 JShell -- 版本 16.0.1
| 要大致了解该版本, 请键入: /help intro
jshell>
注意事项:
1, 如果byte,short,char三种类型,右侧赋值的数值没有超过范围,那么javac编译器会自动的隐含的为我们补上一个(byte)(short)(char),也就是强转。
8, 总结
不想成为全栈的前端不是好前端。