自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 资源 (1)
  • 收藏
  • 关注

原创 「算法设计」模拟Linux文件目录的简单规则

模拟Linux文件目录的简单规则规则1 cd a -> /a规则2 cd … -> cd …规则3 pwd -> 打印目录大致这三个切换问题的实现,和大家分享使用stack栈实现,cd x 就入栈,cd … 就出栈,栈为空时就打印 /注意pwd需要在前面补上 /package com.nowcoder.seckill.sort;import java.util.*;public class Linux { public static void main(St

2021-09-10 18:26:53 239

原创 Java工业级排序:Arrays.sort()

整体介绍length < 47 时采用插入排序(双插入排序),length > 286 时采用TimSort排序(归并排序),47 < length < 286 时采用双轴快排如果需要排序的数据类型为非基本数据类型,则只采用TimSort(优化的归并排序)参考LeetCode...

2021-08-21 09:58:25 273

原创 堆排序Java实现

堆排序Java实现class Solution { public int[] sortArray(int[] nums) { int n = nums.length; // 创建一个完全二叉树(这样就可以使用数组的表示来表示堆了!) buildHeap(nums,n); for(int i = n - 1; i >= 0; i--){ // 头结点元素与最末端元素进行交换 swap(nu

2021-08-11 08:20:05 327

原创 自动签到打卡,Cron表达式怎么写,点进来我教你

不会吧,你还真的不会写Cron,点进来我教你!告诉大家一个小秘密,其实我不会写的时候,咱真的不会写。就好像,听君一席话,如听一席话啊!开始没关系,我们可以借助一些工具网址来生成Cron表达式,尤其在我们第一次写的时候,废话不多说,分享一个生成网址????????????‍????‍????‍????????‍????‍????‍????????‍????‍????‍????????‍????‍????????????????????????????????????????????????传送门?

2021-08-08 22:33:56 463

原创 SpringBoot常用注解

SpringBoot常用注解0-Configuration(true & false)@Configuration(proxyBeanMethods = true) 告诉SpringBoot这是一个配置类proxyBeanMethods = true 表示每个@Bean方法被调用多少次返回的组件都是单实例的proxyBeanMethods = false 表示每个@Bean方法被调用总是生成新的Bean类1-Conditional & ConditionalOnXxx@Condi

2021-07-28 22:02:45 94

原创 「二叉树」二叉树中序线索化与遍历Java实现

「二叉树」二叉树中序线索化与遍历Java实现​ 线索化二叉树是基于二叉树的升级,它将二叉树叶子节点没有用到的左右空指针进行利用,通过判断后将它们指向前驱与后继结点,例如下图8号元素,前驱为null,后继结点为3号,利用了8号元素原本为null的右指针,将它指向3号元素。(8号的左指针不需要强行指向,因为只有null)1-中序线索化二叉树首先需要在二叉树中定义两个标识符(leftType与rightType),用来对前驱结点与后继结点进行区分leftType:=0时,说明它的左边是左子树;=1时,说明

2021-07-19 16:01:58 404 1

原创 各种树的优缺点

树二叉树平衡二叉树B树B+树面临的问题:哈希索引问题回旋查找问题 --> 范围查找树高问题范围查找问题1-哈希索引问题因为哈希值是一个无序值,所以使用哈希值作为索引无法应对范围查找、顺序查找问题;哈希值可能会发生冲突2-平衡二叉树可以有效的控制左右子树的高度,左右子树的高度差最大为1同样无法进行范围查找3-B树B树结构:B 树的所有节点既存放键 (key) 也存放数据 (data),而 B + 树只有叶子节点存放 key 和 data,

2021-07-15 09:43:56 866

原创 MySQL复习大纲

MySQL复习大纲

2021-07-13 20:09:00 150

原创 二叉树查找指定结点

二叉树查找指定结点查找方式分为三种:前序查找中序查找后续查找代码实现一下~class HeroNode{ // 1 前序查找 public HeroNode preOrderSearch(int no){ System.out.println("前序查找"); HeroNode temp = null; // 定义一个存储结点 if (this.no == no){ return this; // 比较当前

2021-07-12 10:35:43 1621

原创 二叉树Java实现

二叉树Java实现养成好习惯,先上思维导图1-数组List以ArrayList为例,它的底层是通过list数组进行实现的,所以可以通过这个点进行分析!**优点:**数组能够通过下表直接进行访问,也可以通过各种查找方法进行查找!查找可以十分快速。**缺点:**由于list在增添或删除时(插入元素),过程中需要对数组进行扩容,这个操作会调用ArrayList数组中的grow方法,本质上会在内存中开辟新的数组,耗费时间!2-链表Linked**优点:**链表可以进行十分快速的增添与删除,得益于链表

2021-07-11 17:11:12 146 1

原创 Maven初学

Maven是一款自动化构建工具,它能够帮助我们统一管理依赖1-目录架构2-核心概念依赖范围:compile | test | provided 如何作用?是否对主程序有效?compile provided 有效,test 无效是否对测试程序有效?compile test provided 有效是否参与打包?compile 参与,test与provided无效是否参与部署?compile 参与,test与provided不参与目录结构是什么?每一个maven项目在磁盘中都

2021-07-10 15:06:11 139

原创 哈希表Java实现

哈希表基本介绍:哈希表也称为散列表。根据关键码值key直接访问的数据结构。哈希表由多个链表共同组成哈希表由数组与链表共同实现[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3b2HuJEO-1625740185439)(C:\Users\Wzy\Downloads\1.jpg)]哈希表中,为了加快查找的速度,设置了映射函数,这个函数叫做散列函数,能够根据这个函数得到散列值。首先,需要先编写链表数据结构,然后,再将这个数据结构组织进哈希表,具体的做法为://

2021-07-08 18:30:22 241 2

原创 斐波那契查找算法

1-斐波那契查找算法思想这个算法不是很懂!需要再补充!(未完成)思想比较二分查找过程中,mid= left + (left + right) / 2插值查找过程中,引入了比例因素,mid = left + [(key - arr[left])/(arr[high] - arr[left])](high - left)斐波那契查找算法mid计算是通过下面公式实现的mid = left + fibList[fibIndex - 1] - 1; 可以使每一次的查询都接近黄金分割比2-代码实

2021-07-07 10:36:37 174

原创 MyBatis缓存机制

MyBatis缓存机制1-一级缓存失效情况:不同的SqlSession对应着不同的一级缓存同一个SqlSession但是有不同的查询条件同一个SqlSession在查询相同条件时执行了任何一次增删改操作同一个SqlSession在查询相同条件时中间执行了手动清空缓存的操作2-二级缓存二级缓存作用在全局作用域,默认不开启,需要手动进行配置;一个新的会话,会先去查找二级缓存中是否有对应数据,如果没有再发送SQL语句进行查询;注意:如果SqlSession被关闭后,一级缓存会默认地放置在二

2021-07-06 20:17:46 90

原创 插值查找算法Java实现

1-插值查找插值查找算法是对二分查找的升级做法,具体做法是二分查找与插值查找:修改了计算mid中间索引的公式2-插值查找的Java实现package select;/** * 插值查找 */public class InsertValueSearch { public static void main(String[] args) { int arr[] = {1, 8, 10, 89, 1000, 1000, 1234}; int i = i

2021-07-05 17:03:53 157

原创 秋招技术栈与思路

掌握、了解、熟悉我的思路:对于重点的基础内容,计算机网络、数据结构与算法、操作系统,Java基础、数据库我的做法是花时间来掌握(2-4)个月;对于框架,我的做法是搭建项目,在项目中进行学习,不断把知识点进行总结;例外就是数据结构与算法,方法没有其他,花时间,多刷题。没有必要学到百分之一百再投简历,百分之70即可去参加应聘。秋招的开始阶段,也要投简历,积累面试经验。...

2021-07-04 22:00:32 163

原创 位移法希尔排序Java代码实现

希尔排序希尔排序的实现有两种方法:希尔交换(速度慢)希尔位移(推荐方法)对排序问题,希尔排序的做法是在宏观层面将问题进行分解,使每一部分的微观排序有序,再将微观排序进行组合,再从宏观整体出发,实现数据排序。1-希尔思想案例原始数组:第一次分组(最微观排序):第二次分组(较微观排序):第三次分组(宏观排序):通过以上三个例子,观察出希尔排序的基本思想:将整体元素分解为若干个待排序的子序列(由增量元素gap完成分解),进行直接插入排序,然后依次缩减增量进行再排序,等到增量被缩减到

2021-06-26 16:19:42 175

原创 基数(桶)排序Java代码实现

基数(桶)排序Java代码实现基数排序也被称为桶排序,是一种使用空间换时间的做法。它的大致思想为:每个数字按低位到高位进行遍历排序,第几位就放在第几个桶中排序完成以后,再将桶内数组取出重新放入原始数组,最后清空不断往复1-2过程,直到对数字的每个位都进行了操作,既完成了排序图解(待完成)不足:只针对正数的排序一些细节:基数排序的时间复杂度位NxK,K代表着桶的个数。有人会好奇,0-9对应的这10个桶在进行操作的时候,比如说个位遍历结束后,准备遍历十位时,不需要对10个桶进行清空吗

2021-06-26 15:47:02 204

原创 MyBatis配置标签

MyBatis配置标签关于MyBaties的基本配置标签,有:1-全局配置文件(xxx.properties)引入的两种方式resource:引入类路径下的资源url:引入网络路径或磁盘路径下的资源<properties resource="dbconfig.properties"></properties>2-settings包含设置项name:配置项value:属性值<settings> <setting name="mapUn

2021-06-22 20:50:47 381 6

原创 MyBatis初体验

MyBatis初体验1-MyBatis的HelloWord1、根据xml配置文件(全局配置文件mybatis-config.xml)创建一个SqlSessionFactory对象 有数据源一些运行环境信息<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-

2021-06-22 16:31:31 129

原创 SpringMVC的运行流程

SpringMVC的运行流程所有的请求经过前端拦截器进行处理,调用doDispatch进行处理根据HandleMapping中保存的映射信息,找到能够对当前方法进行处理的处理器(链)根据找到的处理器(链),再找到适配器HandlerAdapter进行处理拦截器preHandle执行适配器执行目标方法,获得方法参数(这里有一些细节),返回ModelAndView拦截器执行postHandle方法处理返回的ModelAndView报异常?使用异常解析器处理异常正常执行?调用render渲染

2021-06-19 11:26:44 122 2

原创 MVC拦截器

MVC拦截器MVC的拦截器作用机制,首先,需要实现HandlerInterceptor接口方法,这个接口里有三个方法:public class MyFirstInterceptor implements HandlerInterceptor { @Override // 预执行方法 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) t

2021-06-18 17:14:42 386 1

原创 MVC文件上传

MVC文件上传使用MVC上传文件的步骤:编写支持文件上传的form表单导入需要的jar包在dispatcher-servlet中配置文件上传解析器编写处理form表单的controller,对发送请求进行处理1-编写支持文件上传的form表单${msg} // 需要注意文件格式 <form action="${ctp}/upload" method="post" enctype="multipart/form-data"> 用户头像:<input

2021-06-18 15:34:09 277

原创 算法复杂度

算法复杂度算法的复杂度分为时间复杂度、空间复杂度,但一般我们只讨论的是时间复杂度,使用O()进行表示。计算代码的时间复杂度通过以下步骤完成:用常数1取代运行时间所有的加法常数修改后的运行次数函数中,只保留最高项如果最高阶项目存在且不是1,去除与这个项相乘的常数,得到最终结果总结一下就是:我们需要清楚的知道,到底在程序的哪一个环节出现了复杂度的增加,复杂度增加的决定性因素出现在哪里?一般地,算法复杂度有常数阶(循环次数与问题无关代码)线性阶(循环n次)对数阶(例如while循环)n

2021-06-14 19:09:41 103

原创 面试比较重要的数据结构与算法习题

排序:大部分要求能手写,并分析时间空间复杂度,以及稳定性树:红黑树的原理以及在 JDK 的使用;B+ 树以及在数据库索引中的使用图:拓扑排序;并查集;最短路径;最小生成树散列表:实现原理,以及在 JDK 中的使用字符串:KMP;AC 自动机;Trie 树...

2021-06-10 21:26:06 110 3

原创 使用MVC实现CRUD

使用MVC实现CRUD使用MVC实现CRUD时使用到的方法总结:请求发送时的Restful风格MVC自动注入对象属性@modelAttribute提前运行,查询已保存数据数据隐含模型BindingAwareModelMap使用,与表单提交对象交互@PathVariable获取URL参数,查询、删除指定id的对象1-Restful风格在表单提交时,传统页面只能够提交get与post两个请求,但有办法给表单加上PUT与DELETE请求,操作如下:<form id=

2021-06-09 09:31:46 340 3

原创 MVC配置资源访问

MVC资源访问关于静态资源的访问与动态资源的访问,在MVC中有专门的配置驱动,可以将情况分为以下4种:<mvc:default-servlet-handler>与<mvc:annotation-driven>都没有配置仅配置<mvc:default-servlet-handler>仅配置<mvc:annotation-driven>配置<mvc:default-servlet-handler>与<mvc:annotation-dr

2021-06-08 21:43:20 291 5

原创 # modelAttribute的两个对象!

1.当@modelAttribute方法运行后,查询到的数据库对象2.SpringMVC表单提交的新对象以上这两个对象时如何结合的?回答:通过隐含模型的帮助,表单对象在提交的时候保存在隐含域当中,@modelAttribute方法中,查询到了原始对象后,也保存在隐含域当中,让这两个模型完成交互。注意:@modelAttribute方法是提前运行的,所以会拿到表单中没有修改的原始数据。...

2021-06-04 20:53:51 241

原创 SpringMVC转发与重定向

SpringMVC转发与重定向1-转发 forward含义:当controller收到了请求后,返回了"forward:/xxxx"时,forward就代表着转发到目录下的xxxx,会接收到视图,但此时浏览器地址不会发生变化2-重定向redirect含义:当controller收到了请求后,返回了"redirect :/xxxx"时,redirect就代表着当前的请求重新定向到目录下的xxxx,此时地址发生了变化3-自定义视图解析器ViewResolver如果写法为"forward:/xxxx"

2021-06-03 16:35:47 142

原创 modelAttribute寻找自定义参数的过程

简而言之,一件很可怕的事情,如果SessionAttribute被标注了!那么就必须要找得到这个被标注的key,如果找不到,则报错。

2021-06-02 18:28:46 149

原创 SpringMVC数据输出

SpringMVC数据输出1-数据输出SpringMVC将数据携带给页面的储存工具,有三种,map,ModelMap,model,它们在底层实质还是使用到了BindingAwareModelMap,对数据进行存储:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PbV4RRqL-1622509691816)(C:\Users\46726\Downloads\未命名文件 (7)].jpg)此外,也可以使用ModelAndView携带数据回传页面,实现代码如下/** *

2021-06-01 09:08:38 293 2

原创 「栈」逆波兰表达式(后缀表示法)计算实现

逆波兰表达式(后缀表示法)计算实现在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。后缀表示法的意思就是,为两个数字匹配一个计算符号,将这个符号放置在这两个数字的后方。例子1:(30+4)×5-6 => 30 4 + 5 × 6 - => 164例子2:(3+4)x5-6 => 3 4 + 5 * 6 - ==>29逆波兰表达的好处是,不需要对符号的优先级进行排序实现分析:首先,需要对后缀表达式进行遍历,

2021-05-31 21:25:48 248

原创 AOP:多切面程序运行示意图

多切面程序运行示意图当多切面同时运行时,为下图中A切面配置环绕通知时,程序的执行流程

2021-05-24 15:08:43 227

原创 Spring注入泛型类

Spring注入泛型类大家好今天教大家使用Spring框架注入泛型类问题描述:在Dao层存在的BookDao与UserDao对数据库进行操作,那么就需要在BookService中使用到不同的Dao对象,Spring使如何区分相同的Dao的不同实现类的呢?回答是Spring使用到了以泛型作为注入条件自动进行注入,代码描述如下:bean:package T.pojo;public class User {}public class Book {}dao层:package T.d

2021-05-20 15:59:24 2411 5

原创 Spring5 进行事务管理

Spring5 进行事务管理在Spring中对事务进行管理有两种方式:(1)编程式:例如使用try-catch进行实现(2)声明式:使用xml注解完成或使用纯注解方式实现1-Spring注解声明式|配置事务管理器1配置事务管理器<bean id= "transactionManager" class= "org.springframework.jdbc.datasource.DataSourceTransactionManager"><!--注入数据源--> &lt

2021-05-19 16:41:44 109

原创 JdbcTemplate

JdbcTemplateSpring框架对JDBC进行了封装,使用JdbcTemplate实现对数据库的操作1-连接数据库<beans> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value="jdbc:mysql:///book?useUnicode

2021-05-19 08:27:20 183

原创 面向切面AOP

面向切面AOP1-介绍AOP思想,不通过修改源代码的方式,在主干方法中添加新的功能,可以增强某个方法;类里的某个方法可以被增强时,称能够被增强的方法为连接点真正被增强的方法,称为切入点增强的逻辑部分称为通知5种类型的通知:前置通知、后置通知、环绕通知、异常通知、最终通知把通知应用到切入点的过程,称为切面2-底层原理情况1:有接口的情况这类情况很好处理,直接使用JDK动态代理的方法,创建代理对象实现增强方法,实质使用到了Java的动态代理特性,详细介绍参照我的另一篇博客,https:/

2021-05-18 21:21:11 96

原创 IOC实现Bean管理(基于注解方法)

IOC实现Bean管理(基于注解方法)(1)针对Bean对象提供的注解对象(2)开启注解的两种方法:xml配置开启与注解类(3)属性注入时使用到的不同注解1-针对Bean对象提供的注解对象@Component@Service@Controller@Repository上面四个注解没有功能上的区别,在注解中,value属性可以不写,默认类的名称,首字母小写2-开启注解的两种方法:xml配置开启与注解类xml方式开启扫描:< context :component- - scan

2021-05-17 17:08:02 142

原创 「Spring5」对象管理

Spring对象管理在Spring中,使用到IOC控制反转,把对象的创建与对象之间的调用过程交给Spring进行管理(1)BeanFactory与ApplicationContext(2)基于xml方式创建对象、配置属性注入(3)属性注入:外部bean注入(4)属性注入:内部bean注入(5)属性注入:级联赋值(6)注入集合属性:List、Map、Set、数组(7)实验util工具完成list集合注入的提取(8)普通Bean与工厂Bean(9)Bean的作用域:单实例与多实例(10)B

2021-05-15 11:30:54 175

原创 阶段总结

2021/05/10 JavaWeb完结,这里总结一下:JavaSE(60天)1月初-3月末MySQL(10天)4月初-4月中旬JDBC(7天)4月初-4月中旬JavaWeb(30天)4月中旬-5月初以上都是边码边做笔记的,可能比较慢一些,但是不着急,慢慢来,比较快嘛;我的所有总结笔记:https://blog.csdn.net/Wang_Pro?spm=1001.2014.3001.5343欢迎大家和我交流[doge]...

2021-05-10 16:37:03 90

空空如也

空空如也

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

TA关注的人

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