常用注解
常用注解Mybatis@Param在Mybatis代理模式的时候,用于传递各种参数的时候,给参数起别名
例子:
接口:
123456public interface EmpMapper { List<Emp> findByDeptnoAndSal(@Param("deptno") int deptno,@Param("sal") double sal); List<Emp> findByDeptnoAndSal4(@Param("empa") Emp empa,@Param("empb") Emp empb);}
mapper映射文件:
12345678910111213141516171819202122232425262728293031<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-/ ...
Servlet入门
Servlet入门内容概述
JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发(不需要使用控制台)平台。最早由Sun公司定制并发布,后由Oracle负责维护。
JavaEE平台规范了在开发企业级web应用中的技术标准。
在JavaEE平台共包含了13个技术规范(随着JavaEE版本的变化所包含的技术点的数量会有增多)。它们分别是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JPA、JTA、JavaMail和JAF。
浏览器和服务器的交互模式
客户端
浏览器
服务端
服务器(高性能的计算机相对于普通的PC来说,服务器在稳定性、安全性、性能等方面有更高的要求)
请求
客户端发送数据给服务端的过程
响应
服务端返回数据给客户端的过程
HTTP协议
客户端请求和响应的标准协议
HTTP协议 HTTP 协议(Hypertext Transfer Protocol, 超文本传输协议),是一个客户端请求和响应的标准协议,这个协议详细 ...
开发流程化
SpringBoot+Vue开发流程这节课目的是分享一下我自己的开发流程,如果需要深入学习还是得自己在b站看视频边看边学的。
这里演示一个登录注册的小demo吧
后端项目初始化环境准备然后启动一下看看是否报错
配置maven
整合依赖MyBatis-Plus官网:快速开始 | MyBatis-Plus
1、在pom.xml添加下面的依赖并且删除MyBatis的依赖防止依赖冲突
SpringBoot2.x
12345<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.10.1</version></dependency>
SpringBoot3.x
12345<dependency> <groupId>com.baomidou</groupId> <artif ...
队列和栈
队列和栈先入先出的数据结构在 FIFO 数据结构中,将首先处理添加到队列中的第一个元素。
如上图所示,队列是典型的 FIFO 数据结构。插入(insert)操作也称作入队(enqueue),新元素始终被添加在队列的末尾。 删除(delete)操作也被称为出队(dequeue)。 你只能移除第一个元素。
队列 - 实现为了实现队列,我们可以使用动态数组和指向队列头部的索引。
如上所述,队列应支持两种操作:入队和出队。2*入队会向队列追加一个新元素,而出队会删除第一个元素。 所以我们需要一个索引来指出起点。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980// 定义一个队列类 MyQueueclass MyQueue { // 用于存储队列中的元素 private List<Integer> data; ...
链表
链表单链表单链表中的每个结点不仅包含值,还包含链接到下一个结点的引用字段。通过这种方式,单链表将所有结点按顺序组织起来。
下面是一个单链表的例子:
蓝色箭头显示单个链接列表中的结点是如何组合在一起的。
结点结构
以下是单链表中结点的典型定义:
12345678// Definition for singly-linked list.public class SinglyListNode { int val; SinglyListNode next; SinglyListNode(int x) { val = x; }}
操作与数组不同,我们无法在常量时间内访问单链表中的随机元素。 如果我们想要获得第 i 个元素,我们必须从头结点逐个遍历。 我们按索引来访问元素平均要花费 O(N) 时间,其中 N 是链表的长度。
例如,在上面的示例中,头结点是 23。访问第 3 个结点的唯一方法是使用头结点中的“next”字段到达第 2 个结点(结点 6); 然后使用结点 6 的“next”字段,我们能够访问第 3 个结 ...
java8新特性
java8新特性Lambda表达式Lambda是一个匿名函数。
直接给例子。
12345public void test1(){ Runnable r1 = () -> System.out.println(111); Comparator<Integer> com = (o1,o2) -> Integer.compare(o1,o2); Comparator<Integer> com2 = Integer :: compare;}
但是一开始看不懂下面会详细讲解一下
举例 (o1,o2) -> Integer.compare(o1,o2);
格式:
这个箭头 -> 称为箭头操作符
箭头的左边是形参列表(其实就是接口中的抽象方法的 形参列表)
箭头的右边:Lambda体(其实就是重写的抽象方法的方法体)
Lambda表达式本质:作为接口的实例
使用(分为6种情况)
12345678910111213141516171819202122232425262728293031323334353637 ...
数组和字符串(算法)
数组和字符串(算法)数组和列表、集合之间有什么不同?集合:一个比较抽象的概念,集合里元素类型不一定相同,集合里的元素没有顺序。
列表:没有索引,有顺序,类型没有限制,地址可以相邻也可以不相邻。
数组:有索引,有顺序,类型相同,地址相同
数组中的查询按位置查询。时间复杂度:O(1)。索引+偏移量(下标)按值查询。时间复杂度:O(N)。计算机不知道个位置处的值信息,需要一一查询判断。数组添加元素时间复杂度:O(n)删除元素:时间复杂度:O(n)
处理数组常用APIArrays类:
1234567891011121314151617181920212223//Arrays.toString(数组)方法。方法作用:快速输出数组内容。//Arrays.sort(数组)。方法运用:给数组排序,默认升序//Arrays.sort(数组名,起始下标,排序个数)。对字符串进行排序时,是对每一个字符比较,而不是简单的比较长度//Arrays.equals()方法。方法作用:比较两个数组内容是否相等//Arrays.equals()是比较数组内容,而a.equals(b) 这样的方法是比较地址值//Arra ...
面试集合
面试集合java基础的集合
Collection接口的常用方法
12345增加:add(E e) addAll(Collection<? extends E> c)删除:clear() remove(Object o)修改:查看:iterator() size()判断:contains(Object o) equals(Object o) isEmpty()
总结一下:首先是接口不能创建对象,利用实现类创建对象,
集合有一个特点:只能存放引用数据类型的数据,不能是基本数据类型
基本数据类型放入到集合里面会自动装箱。
特别问题String、StringBuilder、StringBuffer 区别和联系1、String 类是不可变类、即一旦一个 String 对象被创建后,包含在这个对象中的字符序列是不可改变的,制止这个对象销毁。
2、StringBuffer 类则代表一个字符序列可变的字符串,可以通过 append、insert、reverse、setCharAt、setLength 等方法改变其内容。一旦生成了最终的字符串,调用 toString 方法将其转变为 Str ...
设计模式
设计模式统一过程(UP)统一过程(Unified Process,简称UP)是一种软件开发过程框架,它是一种迭代的、增量的开发方法,旨在帮助开发团队更好地管理软件项目。
统一过程的主要特点包括:
迭代开发:将整个项目分解为多个迭代周期,每个周期完成一定的功能模块,逐步构建完整的软件系统。
增量交付:在每个迭代周期结束时,交付一个可运行的软件版本,以便客户和用户能够及时了解项目进展并提供反馈。
风险管理:通过持续评估项目中的风险,并在必要时进行调整,确保项目按计划进行。
适应性:根据项目需求和团队经验,可以调整统一过程的各个方面,以适应不同的项目场景。
文档化:在整个开发过程中,保持对软件设计、实现和测试的详细记录,以便团队成员之间共享信息并确保项目的可维护性。
代码质量的评价标准代码质量:
1、可维护性 :不去破坏原有的代码设计以及不引入新的bug的前提下,修改或者新增代码
2、灵活性 :在添加新代码的时候,不破坏资深的前提下接纳新代码。
3、简洁性:别人理解时间最小化。
4、可复用性:减少重复代码编写,复用已有的代码
5、可测试性 :在单元测试的时候易于测试。
6、可扩展性:对 ...
Docker
Docker1.Docker的介绍与安装
Docker是基于Go语言实现的云开源项目。 Docker的主要目标是Build,Ship and Run Any App,Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到一次封装,到处运行。
Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作
解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术
1.2 Docker能干什么?1.2.1以前的虚拟化技术 虚拟机(virtual machine)就是带环境安装的一种解决方案。
它可以在一种操作系统里面运行另一种操作系统,比如在Windows 系统里面运行Linux 系统。应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一 ...









