Java笔记
基础篇

java语言概述
整体概述

java语言的特点
特点一:面向对象
两概三特:类、对象;封装、继承、多态;
特点二:健壮性
去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等)
特点三:跨平台性
原理:先安装一个JVM虚拟机,然后由JVM负责JAVA程序在该系统上运行。
Java核心机制
Java虚拟机:对于不同的平台有不同的虚拟机;
垃圾回收机制:
注释
单行和多行注释与c语言注释相同
文档注释:JAVA所特有
格式:/** */
作用:注释的内容可以被jdk提供的工具javadoc所解析,生成网页形式的程序说明文档。
java API文档
英文版:版本8
中文版:版本6
Java基本语法
保留字
goto、const,java没有赋予其特殊含义,但在命名时尽量避开。
标识符
凡是可以自己起的名字都叫标识符。e.g:变量名、类名等等
命名规范
包名:多个单词组成时所有字母都小写
类名、接口名:多单词组成时,所有单词首字母大写
变量名、方法名:多单词组成时,第一个单词首字母小写,从第二个单词开始首字母大写。
常量名:所有字母都大写,多单词时,每个单词用下划线连接。
变量的类型

变量运算规则的两种特殊情况
定义long型变量:long len=78899786676l/L;
定义float型变量:float len=12.3f/F;
但现实经常使用double型变量,精度更高。
整型常量默认类型:int
浮点型常量默认类型:double
算数运算符
+、-、*、/、++、–、%
赋值运算符
=
扩展运算符:+=、-=、*=、/+、%=
比较运算符
基本与c语言一样。
instanceof:检查是否是类的对象。
进阶篇
SpringBoot
开发以后所用技术:mybatis+druid+远程服务器,别使用lombok进行开发。
基础篇
1. parent
将以前spring开发时所需要配置的pom 文件进行整合,方便管理。

小结
-
开发springBoot程序要继承spring-boot-starter-parent
-
spring-boot-starter-parent中定义了若干个依赖管理(不是具体的坐标,只是把你要用的版本管理好,而没提供具体的坐标)
-
继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突(做版本的统一化管理)
-
继承parent的形式也可以采用引入依赖的形式实现效果
2. starter
starter
1. SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标 ,以达到减少依赖配置的目的
parent
1. 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
1. spring-boot-starter-parent各版本间存在着诸多坐标版本不同
实际开发
-
使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,除非SpringBoot未提供对应版本V
-
如发生坐标错误,再指定Version(要小心版本冲突)
小结
- 开发springBoot程序需要导入坐标时通常导入对应的starter
- 每个不同的starter根据功能不同,通常包含多个依赖坐标
- 使用starter可以实现快速配置的效果,达到简化配置的目的
3. 引导类
下图即为引导类

无论是做spring程序还是做springmvc的程序,最后都会运行出来一个spring容器的对象。所有对象都以bean的形式交给spring容器管理。
SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目
SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean
得到bean的方式有四种:
- 以类型的形式(即class)
4. 辅助功能

内置服务器:
tomcat(默认)
jetty
undertow
小结
- 内嵌Tomcat服务器是SpringBoot辅助功能之一
- 内嵌Tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理
- 变更内嵌服务器思想是去除现有服务器,添加全新的服务器
5. Rest风格开发入门案例
1.以前的开发


2. 接受参数的三种方式

3.现在的开发


6. boot配置
6.1 准备工作
模板的制作
- 在工作空间中复制对应工程,并修改工程名称
- 删除与Idea相关配置文件,仅保留src目录与pom. xml文件
- 修改pom.xml文件中的artifactId与新工程/模块名相同
- 删除name标签(可选)
- 保留备份工程供后期使用
6.2 属性配置

-
SpringBoot提供了3种配置文件的格式
properties (传统格式/默认格式)
yml(主流格式)
yaml -
配置文件间的加载优先级
properties (最高)yml(常用)
yaml(最低)
-
不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留
yaml或者yml自动提示功能消失解决方案

1 | yaml书写格式: |
读取数据

7. 整合第三方技术
-
整合junit小结
-
导入测试对应的starter(如果是自己手工创建的话)
-
测试类使用@SpringBootTest修饰
-
使用自动装配的形式添加要测试的对象
-
测试类如果存在于引导类所在包或子包中无需指定引导类
-
测试类如果不存在于引导类所在的包或子包中需要通过classes属性指定引导类
-
-
整合mybatis小结
-
勾选MyBatis技术,也就是导入MyBatis对应的starter
-
数据库连接相关信息转换成配置
-
数据库sQL映射需要添加@Mapper被容器识别到
springboot的版本过低导致的问题处理
-
2.1 MySQL 8.X驱动强制要求设置时区
修改url,添加serverTimezone设定
修改MySQL数据库配置(略)
2.2 驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver
boot整合东西分为三个部分:
- 导入对应的start
- 做相应的配置
- 直接使用对应的技术进行开发
- 整合mybatis-plus小结



- 整合Druid(即数据源)



