项目名:乐编教育
后端架构:springboot+maven+mybatis+mysql
开发工具:idea
环境:jdk1.8 、apache-maven-3.6.1、mysql5.7
java1.8Api:https://www.matools.com/api/java8
一、基础概括
java历史:
1.java之父:
詹姆斯·高斯林
2.java原名:OAK
3.java体系
①javaSE,标准版,各应用平台的基础,桌面开发和低端商务应用的解决方案。
②javaEE,企业版,以企业为环境而开发应用程序的解决方案。
③javaME,微型版,致力于消费产品和嵌入式设备的最佳方案。
4.java可以做什么
①开发桌面应用程序。
②开发面向Internet的web应用程序。
③提供各行业的解决方案。
④开发android手机应用程序。
5.java的特性
①一种面向对象的编程语言。
②一种与平台无关的语言(根据JVM实现的)。
③一种健壮性语言。
④具有较高的安全性。
6.java应用程序的运行机制
先编译(.class),在解释运行。
7.java程序开发的三个步骤
①编写源程序,java源代码文件。
②编译源程序,编译器编译编译成java字节码文件。
③运行,java虚拟机(JVM)。
1.Java虚拟机——JVM
JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的 运行环境,是Java 具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。
跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系 统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM 运行在操作系统上。
解释:
java虚拟机实际上只是一层接口,一层Java程序和操作系统通讯的接口。java文件编译生成class文件而java虚拟机就是这些class文件能够在上面运行的一个平台,你把class文件看成一个软件,java虚拟机就是这个软件可以运行的操作系统。
2.JRE 和 JDK
JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。 JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。
我们想要运行一个已有的Java程序,那么只需安装 JRE 即可。 我们想要开发一个全新的Java程序,那么必须安装 JDK 。
3.jdk下载与配置安装
Jdk1.8的下载:
<u>https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html</u>
配置环境变量:
<u>https://www.cnblogs.com/evolve/archive/2019/11/11/11837869.html</u>
1.HelloWord入门小案列
①Java程序开发三步骤:编写、编译、运行
javac.exe 编译器
java.exe 解释器
②正常来说,我们编写的代码,jvm是看不懂得,要想他看懂,我们得把代码变成.class(字节码)文件
我们在D盘根目录下新建一个记事本,修改名字为HelloWord,后缀名字为.java 输入内容为:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("你好世界~");
}
}
打开dos命令,在黑窗口中输入javac HelloWord.java;这个时候呢,去D盘目录下查看,会发现神奇的多出了一个.class文件,没错!就是jvm能读懂的东西啦!
这时,我们在黑窗口输入 java HelloWord 那么我们将看到我们刚才编写的代码的输出内容:"你好世界~"
至此,你已经成功的编写一个可被jvm识别的java代码了
补充:
启动: Win+R,输入cmd回车
切换盘符 盘符名称:
进入文件夹 cd 文件夹名称
进入多级文件夹 cd 文件夹1\文件夹2\文件夹3
返回上一级 cd ..
直接回根路径 cd \
查看当前内容 dir
清屏 cls
退出 exit
2.编译和运行
① 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们 所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
②运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了
3.main方法
main方法:称为主方法。写法是固定格式不可以更改。main方法是程序的入口点或起始点,无论我们编写多 少程序,JVM在运行的时候,都会从main方法这里开始执行。
4.关键字
是指在程序中,Java已经定义好的单词,具有特殊含义。 HelloWorld案例中,出现的关键字有 public 、 class 、 static 、 void 等,这些单词已经被 Java定义好,全部都是小写字母,在我们即将使用的编译器会有颜色区分哦~
5.命名规范
①标识符:
是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。 HelloWorld案例中,出现的标识符有类名字 HelloWorld 。
②命名规则:
- 标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
- 标识符不能以数字开头。
- 标识符不能是关键字。
③命名规范:
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
变量名规范:全部小写。
4.idea的安装
idea的下载:
https://www.jetbrains.com/idea/download/#section=windows
idea的安装:
https://blog.csdn.net/qq_21225505/article/details/81285745?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
idea快捷键:
Alt+Enter 导入包,自动修正代码
Ctrl+Alt+L 格式化代码
Ctrl+/ 单行注释
Ctrl+Shift+/ 选中代码注释,多行注释,再按取消注释
Alt+Ins 自动生成代码,toString,get,set等方法
idea工具的使用:
https://blog.csdn.net/daponi/article/details/94504677
idea中配置jdk:
https://blog.csdn.net/qq_28289405/article/details/82698856
二、基础语法
1.常量
常量:是指在Java程序中固定不变的数据
示例:
public class ConstantDemo {
public static void main(String[] args){
//输出整数常量
System.out.println(123);
//输出小数常量
System.out.println(0.125);
//输出字符常量
System.out.println('A');
//输出布尔常量
System.out.println(true);
//输出字符串常量
System.out.println("你好Java");
}
2.变量和数据类型
变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。
Java的数据类型分为两大类:
- 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。
- 引用数据类型:包括 字符串 、类 、 数组 、 接口 。
基本数据类型如下:
1.变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值
格式:数据类型 变量名 = 数据值;
变量名称:在同一个大括号范围内,变量的名字不可以相同。
变量赋值:定义的变量,不赋值不能使用。
1字节=8位
public class Variable {
public static void main(String[] args){
//定义字节型变量
byte b = 100;
System.out.println(b);
//定义短整型变量
short s = 1000;
System.out.println(s);
//定义整型变量
int i = 123456;
System.out.println(i);
//定义长整型变量
long l = 12345678900L;
System.out.println(l);
//定义单精度浮点型变量
float f = 5.5F;
System.out.println(f);
//定义双精度浮点型变量
double d = 8.5;
System.out.println(d);
//定义布尔型变量
boolean bool = false;
System.out.println(bool);
//定义字符型变量
char c = 'A';
System.out.println(c);
}
}
2.ASCII
将所有的英文字母,数字,符号都和十进制进行了对应,因此产生了世界上第一张编码表ASCII 地址:http://ascii.911cha.com/
在char类型和int类型计算的过程中,char类型的字符先查询编码表,得到97,再和1求和,结果为98。char类型提升 为了int类型。char类型内存2个字节,int类型内存4个字节。
public static void main(String[] args) {
//字符类型变量
char c = 'a';
int i = 1;
//字符类型和int类型计算
System.out.println(c+i);//输出结果是98
}
自动转换:
将取值范围小的类型 自动提升为 取值范围大的类型
准换规则:
范围小的类型向范围大的类型提升, byte、short、char 运算时直接提升为 int
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
强制转换:
格式:数据类型 变量名 = (数据类型)被转数据值
例子:
//将 1.5 赋值到 int 类型,代码修改为
// double类型数据强制转成int类型,直接去掉小数点。
int i = (int)1.5;
/**当一个 short 类型与 1 相加,我们知道会类型提升,
但是还想给结果赋值给short类型变量,就需要强制转换*/
public static void main(String[] args) {
//short类型变量,内存中2个字节
short s = 1;
/* 出现编译失败
s和1做运算的时候,1是int类型,s会被提升为int类型
s+1后的结果是int类型,将结果在赋值会short类型时发生错误
short内存2个字节,int类型4个字节
必须将int强制转成short才能完成赋值 */
s = s + 1;
//编译失败
s = (short)(s+1);
//编译成功
}
3.运算符
1.算数运算符
Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。
1.++ 运算,变量自己增长1。反之, -- 运算,变量自己减少1,用法与 ++ 一致。
①独立运算: 变量在独立运算时, 前++ 和 后++ 没有区别 。
- 变量 前++ :例如 ++i 。
- 变量 后++ :例如 i++ 。
②混合运算: 和其他变量放在一起, 前++ 和 后++ 就产生了不同。
- 变量 前++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结果都是2。
public static void main(String[] args) {
int a = 1;
int b = ++a;
System.out.println(a);//计算结果是2
System.out.println(b);//计算结果是2
}
- 变量 后++ :变量a先把自己的值1,赋值给变量b,此时变量b的值就是1,变量a自己再加1。a的结果是2,b 的结果是1
public static void main(String[] args) {
int a = 1;
int b = a++;
System.out.println(a);//计算结果是2
System.out.println(b);//计算结果是1
}
2.+ 符号在字符串中的操作:
- 符号在遇到字符串的时候,表示连接、拼接的含义。
- "a"+"b"的结果是“ab”,连接含义
public static void main(String[] args){
System.out.println("5+5="+5+5);//输出5+5=55
}
2.赋值运算符
赋值运算符,就是将符号右边的值,赋给左边的变量。
public static void main(String[] args){
int i = 5;
i+=5;//计算方式 i=i+5 变量i先加5,再赋值变量i
System.out.println(i); //输出结果是10
}
3.比较运算符
比较运算符,是两个数据之间进行比较的运算,运算结果都是布尔值 true 或者 false 。
public static void main(String[] args) {
System.out.println(1==1);//true
System.out.println(1<2);//true
System.out.println(3>4);//false
System.out.println(3<=4);//true
System.out.println(3>=4);//false
System.out.println(3!=4);//true
}
4.逻辑运算符
逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false
public static void main(String[] args) {
System.out.println(true && true);//true
System.out.println(true && false);//false
System.out.println(false && true);//false,右边不计算
System.out.println(false || false);//falase
System.out.println(false || true);//true
System.out.println(true || false);//true,右边不计算
System.out.println(!false);//true
}
5.三元运算符
格式:
数据类型 变量名 = 布尔类型表达式?结果1:结果2
三元运算符计算方式:
- 布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
- 布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。
public static void main(String[] args) {
int i = (1==2 ? 100 : 200);
System.out.println(i);//200
int j = (3<=4 ? 500 : 600);
System.out.println(j);//500
}