自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 Java项目实战笔记(瑞吉外卖)-4

当我们在后台系统中添加菜品时需要选择一个菜品分类,当我们在后台系统中添加一个套餐时需要选择一个套餐分类,在移动端也会按照菜品分类和套餐分类来展示对应的菜品和套餐。Mybatis Plus的公共字段自动填充,也就是在插入或者更新的时候为指定字段赋予指定的值,使用它的好处就是可以统一对这些字段进行处理,避免了重复代码。前面已经完成了后台系统的员工管理功能开发,在新增员工时需要设置创建时间、创建人、修改时间、修改人等字段,在编辑员工时需要设置修改时间和修改人等字段。

2023-04-10 20:46:18 1231 2

原创 Java项目实战笔记(瑞吉外卖)-3

启用/禁用的员工账号,实际上就是一个更新操作,也就是对status状态字段进行修改操作,因此在controller中创建update方法,该是一个通用的修改员工信息的方法,因为status也是employee中的一个属性而已;:mybatis-plus对id使用了雪花算法,所以存入数据库中的id是19为长度,但是前端的js只能保证数据的前16位的数据的精度,对id后面三位数据进行了四舍五入,所以就出现了精度丢失,导致提交的id和数据库中的id不一致。根据前端传过来的员工id查询数据库进行数据回显给前端。

2023-04-09 15:22:45 556

原创 Java项目实战笔记(瑞吉外卖)-2

项目登录、退出和过滤器拦截功能

2023-04-06 22:04:10 465

原创 Java项目实战笔记(瑞吉外卖)-1

项目开发流程需求分析:产品原型、需求规格说明书设计:产品文档、UI界面设计、概要设计、详细设计、数据库设计编码:项目代码、单元测试测试:测试用例、测试报告上线运维:软件环境安装、配置角色分工项目经理:对整个项目负责,任务分配,把控进度产品经理:进行需求调研,输出需求调研文档,产品原型等UI设计师:根据产品原型输出界面效果图架构师:项目整体架构设计、技术选型等开发工程师:代码实现测试工程师:编写测试用例,输出测试报告运维工程师:软件环境搭建、项目上线软件环境。

2023-03-31 16:46:53 521

原创 2022秋招Java面经记录

Java面经

2022-09-30 14:22:13 660

原创 Java开发模拟面试记录

Java模拟面试

2022-08-11 16:33:43 212

原创 力扣:寻找两个正序数组的中位数(Java)

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。算法的时间复杂度应该为 O(log (m+n))。

2022-08-03 16:24:54 241

原创 Spring面试汇总(2022)

Spring面试

2022-07-23 21:50:32 184

原创 回溯算法详解

回溯算法

2022-06-28 21:46:47 915 1

原创 测试开发工程师面经

面经

2022-06-21 19:17:09 444

原创 Java后端开发工程师

面经

2022-06-20 14:35:30 214

原创 算法:滑动窗口

滑动窗口(Sliding Window)最早接触滑动窗口是滑动窗口协议,滑动窗口协议(Sliding Window Protocol),属于 TCP 协议的一种应用,用于网络数据传输时的流量控制,以避免拥塞的发生。 发送方和接收方分别有一个窗口大小 w1 和 w2。窗口大小可能会根据网络流量的变化而有所不同,但是在更简单的实现中它们是固定的。窗口大小必须大于零才能进行任何操作。算法中的滑动窗口也是类似,只不过包括的情况更加广泛。实际上上面的滑动窗口在某一个时刻就是固定窗口大小的滑动窗口,随着网络流量等因

2022-05-26 10:31:28 215

原创 Java面试:Java面试总结PDF版

链接:https://pan.baidu.com/s/1KGciUZBxsW2aGBZnhE1qow提取码:8vvf

2022-03-25 17:00:50 1469

原创 算法:排序算法

1、排序介绍排序也称排序算法(Sort Algorithm)。排序将一组数据,依指定的顺序进行排列的过程。2、排序的分类内部排序指将需要处理的所有数据都加载到**内部存储器(内存)**中进行排序外部排序数据量过大,无法全部加载到内存中,需要借助**外部存储(文件等)**进行排序常见的排序算法分类如下图:3、时间复杂度4、常见的时间复杂度(由小到大)常数阶O(1)对数阶O(log2n)线性阶O(n)线性对数阶O(nlog2n)平方阶O(n^2)立方阶O(n^3)

2022-03-19 22:46:57 787

原创 数据结构:栈

1、栈的介绍栈的英文为 stack)栈是一个先入后出(HILO- First In Last Out)的有序列表。栈( stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底( Bottom)。根据栈的定义可知,最先放入中元素在栽底,最后放入的元素在栽顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除图解方式说明出栽(pop)和入(push)的概念2、 栈的应

2022-03-16 19:35:32 1190

原创 数据结构:二叉排序树

1、二叉排序树二叉排序树:BST( Binary Sort( Search)Tree,又称二叉查找树(Binary Search Tree),亦称二叉搜索树。对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点比如针对前面的数据(7,3,10,12,5,1,9),对应的二叉排序树为:2、二叉排序树的创建和遍历一个数组创建成对应的二叉排序树,并使用中序遍历二叉排序树,比如:数组为Aray(7

2022-03-15 17:24:22 1281

转载 蓝桥杯:试题 基础练习 2n皇后问题

试题描述代码实现import java.util.Scanner;public class Main { static int count = 0;//记录总数 static int max = 0; //棋盘大小 static int[] white = null;//存放白皇后 static int[] black = null;//存放黑皇后 static int[][] arr = null;//棋盘初始化 public static void main(Str

2022-03-13 16:05:09 132

原创 数据结构:单链表和双向链表

1、链表链表是有序的列表,但是它在内存中是存储如下小结:链表是以节点的方,来存储是链式存储每个节点包含data域,next域:指向下一个节点如图:发现链表的各个节点不一定是连续存储链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定单链表(带头结点)逻辑结构示意图如下2、单链表的应用使用带head头的单向链表实现-水浒英雄排行榜管理完成对英雄人物的増删改査操作,第一种方法在添加英雄时,直接添加到链表的尾部第二种方式在添加英雄时,根据排名将英雄插入到指定位置(如果

2022-03-12 21:25:40 2546

原创 算法:递归-八皇后问题(回溯算法)

1、问题介绍八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯・贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。2、思路分析第一个皇后先放第一行第一列第二个皇后放在第二行第一列、然后判断是否OK,如果不OK,继续放在第二列、第三列、依次把所有列都放完,找到一个合适的位置继续第三个皇后,还是第一列、第二列……直到第8个皇后也能放在一个不冲突的位置,算是找到了一个

2022-03-11 20:27:03 135

原创 算法:动态规划算法的最佳实践-背包问题

1、背包问题有一个背包,容量为4磅,现有如下物品要求达到的目标为装入的背包的总价值最大并且重量不超出要求装入的物品不能重复2、思路分析背包问题主要是指一个给定容量的背包、若干具有一定价值和重量的物品,如何选择物品放入背包使物品的价值最大。其中又分01背包和完全背包(完全背包指的是:每种物品都有无限件可用)这里的问题属于01背包,即每个物品最多放一个。而无限背包可以转化为01背包。算法的主要思想,利用动态规划来解决。每次遍历到的第ⅰ个物品,根据w和vi来确定是否需要将该物品放入背包中。即

2022-03-11 10:27:51 521

原创 蓝桥杯:试题 历届真题 修改数组【第十届】【省赛】【研究生组】Java实现

代码实现方法一:package com.jl;import java.util.Scanner;/** * 历届真题 修改数组【第十届】【省赛】【研究生组】 * @author jinlei * */public class Text4 { static int[] f = new int[2000000]; public static void main(String[] args) { Scanner sc=new Scanner(System.in); //获取..

2022-03-10 18:39:02 1328

原创 数据结构:队列

1、什么是队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列是一种操作受限制的线性表,进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是一个有序列表,可以用数组和链表来实现遵循先入先出的原则。即先存入的数据,先取出,后存入的要后取出2、数组模拟队列队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图,其中 maxSize是该队列的最大容量。因为队列的输出、输入是分别从前后端来处理,

2022-03-09 20:36:54 609

原创 数据结构:稀疏数组

基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:记录数组一共有几行几列,有多少不同的值把具有不同值的元素的行列以及值记录在一个小规模的数组中,从而缩小程序的规模代码实现package com.jl.sparsearray;import java.io.*;/** * Create with IntelliJ IDAE * * @Author: JINLEI * @Description: 二维数组转换为稀疏数组

2022-03-08 20:05:25 339

原创 LeetCode刷题:向数组中追加 K 个整数

给你一个整数数组 nums 和一个整数 k 。请你向 nums 中追加 k 个 未 出现在 nums 中的、互不相同 的 正 整数,并使结果数组的元素和 最小 。返回追加到 nums 中的 k 个整数之和。示例 1:输入:nums = [1,4,25,10,25], k = 2输出:5解释:在该解法中,向数组中追加的两个互不相同且未出现的正整数是 2 和 3 。nums 最终元素和为 1 + 4 + 25 + 10 + 25 + 2 + 3 = 70 ,这是所有情况中的最小值。所以追加到数组中

2022-03-06 20:09:05 336

原创 MySQL:MySQL基础(二)

1、MySQL函数官网:https://dev.mysql.com/doc/refman/5.7/en/functions.html常用函数、数学运算select abs(-8) — 绝对值select ceiling(9.4) —向上取整select floor(9.4) — 向下取整 9rand() — 0-1之间的随机数sign() — 判断一个数的符号(-1 0 1)字符串函数select char_length(‘我的长度’) — 字符串长度select conca

2022-03-04 21:43:34 442

原创 MySQL:MySQL基础(一)

1、数据库分类关系型数据库(SQL)Mysql、Oracle、SqlServer、DB2、SQLlite通过表和表之间,行和列之间的关系进行数据的存储非关系型数据库(NoSQL)Not only SQLRedis、MongDB对象存储,通过对象自身的属性来决定2、DBMS数据库管理系统数据库的管理软件,科学有效的管理数据、维护和获取数据MySQL数据库管理系统3、MySQL简介MySQL本质是一个关系型数据库管理系统,前世:MySQLAB今生:OracleMySQL

2022-03-03 19:28:41 370

转载 Java虚拟机(JVM)

面试常问请你谈谈你对JVM的理解? java8虚拟机和之前的变化更新?什么是OOM,什么是栈溢出StackOverFlowError? 怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取,怎么分析Dump文件?谈谈JVM中,类加载器你的认识1、JVM体系结构99%的JVM调优都是在堆中,Java栈、本地方法栈、程序计数器是不会有垃圾存在的。2、类加载器类加载器负责加载所有的类,其为所有被载入内存中的类生成一个java.lang.Class实例对象。一旦一个类被加载如JVM中,同一

2022-03-02 21:31:12 236

原创 Java面试汇总:Java基础(一)

1、为什么Java代码可以实现一次编写、到处运行?JVM(Java虚拟机)是Java跨平台的关键。在程序运行前,Java源代码(.java)需要经过编译器编译成字节码(.class)。在程序运行时,JVM负责将字节码翻译成特定平台下的机器码并运行,也就是说,只要在不同的平台上安装对应的JVM,就可以运行字节码文件。同一份Java源代码在不同的平台上运行,它不需要做任何的改变,并且只需要编译一次。而编译好的字节码,是通过JVM这个中间的“桥梁”实现跨平台的,JVM是与平台相关的软件,它能将统一的字节码翻

2022-03-01 09:37:46 228

原创 Java:UDP多线程实现在线聊天

TalkSend类package chat;import java.io.*;import java.net.*;/** * Create with IntelliJ IDAE * * @Author: JINLEI **/public class TalkSend implements Runnable{ DatagramSocket socket = null; BufferedReader reader = null; private int from

2022-02-24 00:04:25 113

原创 网络编程:TCP实现文件上传

客户端package internet;import java.io.*;import java.net.InetAddress;import java.net.Socket;/** * Create with IntelliJ IDAE * * @Author: JINLEI * @Description: * @Date: 2022/2/23 * @Time: 19:34 **///文件上传 客户端public class TcpClientDemo2 { pub

2022-02-23 22:20:07 104

原创 Java:注解和反射

(一)注解1注解入门Annotation是jdk1.5开始引入的新技术。Annotation的作用:(1)不是程序本身,可以对程序作出解释;(2)可以被其他程序(例如编译器)读取。Annotation的格式“@注解名”,也可以带参数,例如:@SuppressWarnings(value=“unchcked”)Annotation在哪里使用?可以附加在package、class、method、field上,相当于给它们添加了额外的辅助信息,还可以通过反射机制编程实现对这些元数

2022-02-23 00:41:53 1932 3

转载 算法:动态规划-斐波那契数列

简介斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……数学方式表示如下:对于问题的求解代码想必大家早已耳熟能详,但这里只是借助斐波那契数列作为学习动态规划的例子。通过例子了解动态规划的一些特征。动态规划:先看下百度给的定义:动态规划(dynamic programming)是运筹学的一个分支,是

2022-02-21 21:22:04 3579

原创 JAVA : JDK 1.8 API 帮助文档

链接:添加链接描述提取码:n494

2022-02-17 23:38:36 695

原创 Java多线程:解决生产者/消费者模式

什么是生产者/消费者模式生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品。具体来说就是:生产者生产数据到缓冲区中,消费者从缓冲区中取数据。如果缓冲区已经满了,则生产者线程阻塞。如果缓冲区为空,那么消费者线程阻塞。管程法(利用缓冲区)public class TestPc { public static void main(String[] args) { SynCon

2022-02-17 22:34:53 160

转载 Java多线程:线程状态

新建状态(New):新创建了一个线程对象。就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞情况分为三种:(1)等待阻塞.

2022-02-17 18:17:11 288

原创 Java多线程:线程休眠

线程休眠注意点sleep(时间)指定当前线程阻塞的毫秒数sleep存在异常InterruptedExceptionsleep时间达到后线程进入就绪状态sleep可以模拟网络延时,倒计时等每个对象都有一个锁,sleep不会释放锁线程休眠实例//模拟网络延时:放大问题的发生性public class TestSleep implements Runnable{ //票数 private int ticketNums = 10; @Override publ

2022-02-17 17:07:28 901

原创 Java多线程:线程停止

线程停止的注意点不推荐使用JDK提供的stop()、destroy()方法(已废弃)推荐线程自己停下来,利用次数,不建议死循环建议使用一个标志位进行终止变量,当flag=false终止线程运行线程停止实例/** * Create with IntelliJ IDAE * * @Description: 线程终止 **/public class TestStop implements Runnable{ //1、设置一个标志位 private boolean flag

2022-02-17 16:38:46 287

原创 Java多线程:Lambda 表达式

什么是Lambda 表达式Lambda 表达式,也可称为闭包,它是Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。Lambda表达式的重要特征可选类型声明:不需要声明参数类型,编译器可以统一识别参数值可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号可选的大括号:如果主体包含了一个语句,就不需要使用大括号可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动

2022-02-16 22:45:06 1256

原创 Java多线程:静态代理模式

静态代理模式要求:有真实角色,代理角色真实角色和代理角色要实现同一个接口代理角色要持有真实角色的引用设计静态代理模式(1)必须有一个共同使用的接口1 // 共同的接口2 public interface Proxy {3 public abstract void todo();4 }(2)代理角色和真实角色共同实现该接口,代理角色实现需要的功能。// 真实角色class RealityRole implements Proxy { @Override

2022-02-16 01:21:16 104

原创 Java:节点流和处理流的理解

流的分类按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。JAVA常用的节点流:文 件 FileInputStream FileOutputStrean FileReader FileWri

2021-10-10 12:00:46 512

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除