Java笔记
一个想当厨子的码农 Lv2

Java笔记

基础篇

image-20221112111329540

java语言概述

整体概述

image-20221115162358155

java语言的特点

特点一:面向对象

两概三特:类、对象;封装、继承、多态;

特点二:健壮性

去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等)

特点三:跨平台性

原理:先安装一个JVM虚拟机,然后由JVM负责JAVA程序在该系统上运行。

Java核心机制

Java虚拟机:对于不同的平台有不同的虚拟机;

垃圾回收机制:

注释

单行和多行注释与c语言注释相同

文档注释:JAVA所特有

格式:/** */

作用:注释的内容可以被jdk提供的工具javadoc所解析,生成网页形式的程序说明文档。

java API文档

英文版:版本8

中文版:版本6

Java基本语法

保留字

goto、const,java没有赋予其特殊含义,但在命名时尽量避开。

标识符

凡是可以自己起的名字都叫标识符。e.g:变量名、类名等等

命名规范

包名:多个单词组成时所有字母都小写

类名、接口名:多单词组成时,所有单词首字母大写

变量名、方法名:多单词组成时,第一个单词首字母小写,从第二个单词开始首字母大写。

常量名:所有字母都大写,多单词时,每个单词用下划线连接。

变量的类型

image-20221116165948252

变量运算规则的两种特殊情况

定义long型变量:long len=78899786676l/L;

定义float型变量:float len=12.3f/F;

但现实经常使用double型变量,精度更高。

整型常量默认类型:int

浮点型常量默认类型:double

算数运算符

+、-、*、/、++、–、%

赋值运算符

=

扩展运算符:+=、-=、*=、/+、%=

比较运算符

基本与c语言一样。

instanceof:检查是否是类的对象。

进阶篇

SpringBoot

开发以后所用技术:mybatis+druid+远程服务器,别使用lombok进行开发

基础篇

1. parent

将以前spring开发时所需要配置的pom 文件进行整合,方便管理。

image-20221125191759218

小结

  1. 开发springBoot程序要继承spring-boot-starter-parent

  2. spring-boot-starter-parent中定义了若干个依赖管理(不是具体的坐标,只是把你要用的版本管理好,而没提供具体的坐标)

  3. 继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突(做版本的统一化管理)

  4. 继承parent的形式也可以采用引入依赖的形式实现效果

2. starter

starter

​ 1. SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标 ,以达到减少依赖配置的目的

parent

	1. 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
	1. spring-boot-starter-parent各版本间存在着诸多坐标版本不同

实际开发

  1. 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,除非SpringBoot未提供对应版本V

  2. 如发生坐标错误,再指定Version(要小心版本冲突)

小结

  1. 开发springBoot程序需要导入坐标时通常导入对应的starter
  2. 每个不同的starter根据功能不同,通常包含多个依赖坐标
  3. 使用starter可以实现快速配置的效果,达到简化配置的目的
3. 引导类

下图即为引导类

image-20221126100829179

无论是做spring程序还是做springmvc的程序,最后都会运行出来一个spring容器的对象。所有对象都以bean的形式交给spring容器管理。

SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目

SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean

得到bean的方式有四种:

  1. 以类型的形式(即class)
4. 辅助功能

image-20221126135325136

内置服务器:

tomcat(默认)

jetty

undertow

小结

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

image-20221127170845847

image-20221127171423014

2. 接受参数的三种方式

image-20221127171256707

3.现在的开发

image-20221127203229053

image-20221127203519136

6. boot配置
6.1 准备工作

模板的制作

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

image-20221128170828876

  1. SpringBoot提供了3种配置文件的格式
    properties (传统格式/默认格式)
    yml(主流格式)
    yaml

  2. 配置文件间的加载优先级
    properties (最高)

    yml(常用)

    yaml(最低)

  3. 不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留

yaml或者yml自动提示功能消失解决方案

image-20221128172557083

1
2
3
yaml书写格式:

注意属性名冒号后面与数据之间有一个空格

读取数据

image-20221128203619298

7. 整合第三方技术
  1. 整合junit小结

    • 导入测试对应的starter(如果是自己手工创建的话)

    • 测试类使用@SpringBootTest修饰

    • 使用自动装配的形式添加要测试的对象

    • 测试类如果存在于引导类所在包或子包中无需指定引导类

    • 测试类如果不存在于引导类所在的包或子包中需要通过classes属性指定引导类

  2. 整合mybatis小结

    • 勾选MyBatis技术,也就是导入MyBatis对应的starter

    • 数据库连接相关信息转换成配置

    • 数据库sQL映射需要添加@Mapper被容器识别到

      springboot的版本过低导致的问题处理
      

​ 2.1 MySQL 8.X驱动强制要求设置时区

​ 修改url,添加serverTimezone设定

​ 修改MySQL数据库配置(略)

​ 2.2 驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver

boot整合东西分为三个部分:

  1. 导入对应的start
  2. 做相应的配置
  3. 直接使用对应的技术进行开发
  1. 整合mybatis-plus小结 image-20221130093255881

image-20221130093312809

image-20221130093423735

  1. 整合Druid(即数据源)

image-20230222161204003

image-20230228145538979

image-20230228145621901

image-20230228150602825

 评论
评论插件加载失败
正在加载评论插件