- 博客(22)
- 收藏
- 关注
原创 Spring之Ioc
概念Spring通过配置文件描述Bean与Bean之间的依赖关系,Java通过反射实例化Bean并建立Bean之间的依赖关系。Ioc容器除了完成以上的功能之外还有生命周期管理,事件发布,资源装载等功能。Bean实例化的过程1:读取xml,注解等配置信息。将Bean注册到Bean注册表里。2:从注册表里实例化Bean3:将实例化出来的Bean放入Spring容器中4:应用程序使用BeanIoc实现BeanFactory:是框架的基础设施,面向Spring本身。AppliactionContex
2021-06-27 19:08:17
148
原创 springboot中使用layui框架字体图标无效的问题
在maven的pom.xml中添加插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <
2021-06-19 11:52:58
420
原创 button中的href无效
使用button中的href无法实现页面的跳转,在后台观察根本没有接收到这条请求<button th:href="@{/add}" type="button" class="btn btn-primary btn-sm">添加</button>@GetMapping("/add") public String getAdd(Model model){ System.out.println("==============="); retur
2021-06-17 09:33:30
1113
原创 Java实现归并排序
import java.util.ArrayList;import java.util.List;import java.util.Random;public class Test { public static void merge(int l,int r,List<Integer> list){ if(l>=r)return ; int mid=(l+r)/2; merge(l,mid,list); mer
2021-06-15 17:17:26
114
原创 mybatis整合遇到的问题
六月 10, 2021 8:38:39 下午 org.springframework.context.support.AbstractApplicationContext refresh警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean
2021-06-10 20:48:30
267
1
原创 JVM学习笔记
JVM体系架构类加载器:Bootstrap classLoader:主要负责加载核心的类库(java.lang.*等),构造ExtClassLoader和APPClassLoader。ExtClassLoader:主要负责加载jre/lib/ext目录下的一些扩展的jar。AppClassLoader:主要负责加载应用程序的主函数类双亲委派机制:加载一个类时从AppClassLoader,ExtClassLoader到Bootstrap classLoader依次检测是否加载过,如果加载过就不加
2021-05-29 16:37:43
72
原创 IO流学习笔记
字节流:InputStream OutputStream字符流:Reader Writer这四种流都是抽象类是所有输入输出流的父类File类File类的对象主要用于获取文件本身的一些信息,例如文件的目录,长度等,不涉及对文件的读写操作。使用文件字节流实现文件的复制package IO;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;im
2021-05-28 20:40:05
143
原创 反射学习笔记
通过反射操作注解package Com.Reflection;import java.lang.annotation.*;@MyAnnotation(name = "hfx",age=18)public class Reflection { public static void main(String[] args) throws ClassNotFoundException { Reflection reflection = new Reflection();
2021-05-28 19:19:54
82
原创 注解学习笔记
注解(Annotation)注解的格式:@注解名 比如@override注解的作用:可以被其他程序读取元注解:可以注解其他注解有四种元注解1:Retention用于描述注解的生命周期(runtime>class>source)2: Target 描述注解可以用于哪些对象上面3:Doucument说明该注解包含在javadoc下面4:Inherited子类可以继承父类的注解自定义注解package Com.Annotation;import java.lang.annot
2021-05-28 09:40:02
114
原创 java多线程笔记
yield:线程礼让,会将线程从运行态转变为就绪态,不一定成功。注意与sleep的区别,sleep会将线程置为阻塞态,时间到了才变为就绪态,而且一定成功。lambda表达式:格式为(参数)->{函数体}作用:lambda表达式是一个匿名函数,可以极大的缩减代码量,可以生成一个函数式接口(只有一个方法的接口)的对象。join:插队,正在运行的线程让出对cpu的使用权,让另一个线程先执行,该线程执行完毕才会轮到其他线程。守护线程:一个不怎么重要的线程,当所有用户线程执行完毕时会被强制终止。可以
2021-05-27 10:19:48
106
原创 ERROR与EXCEPTION的区别
error通常是灾难性的错误,是程序无法控制处理的,当出现error时JVM一般选择终止线程;exception通常是可以被程序处理的,而且应该尽可能去处理这些异常。throw:抛出一个具体的异常类型throws:用在方法后面,表示这个方法可能抛出一个异常给它的调用者...
2021-05-25 21:38:33
107
原创 常量指针与指针常量的区别
声明int x=1;//常量指针const int * a;int const * b;//指针常量int * const c=&x;如何记忆?如果const在*前面就是常量指针,*在const前面就是指针常量。区别:常量指针中的const修饰的是指针指向的对象,那么指针本身可以改变,指针指向的对象不可以改变。指针常量相反。 int x=1; //常量指针 const int * a; int const * b; //指针常量 in
2021-05-15 16:11:03
103
原创 Unity 导航系统
1 先为地图创建navigation2 为人物添加nav mesh agent 组件3 为人物添加移动的脚本using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.AI;public class hero_mov : MonoBehaviour{ public NavMeshAgent agent; // Start is called befo
2021-05-15 14:22:37
137
原创 Leetcode 212. 单词搜索 II
字典树+回溯使用unordered_map去重class Solution {public: int tree[10000][30],ed[10000],tot,vis[15][15],n,m; vector<string>res; unordered_map<int,string>mp; unordered_map<int,int>mp2; void insert(string s){ int root=0;
2021-05-07 18:54:23
97
原创 leetcode 403. 青蛙过河
题意很简单,就是每一次移动的步数与前一次移动的步数的绝对值差值不能超过一。很容易能想到dfs,但是单纯的dfs会tle。可以想一想如果已经知道可以从x到y,下一次再到达x还需要再考虑y吗?所以可以采用记忆化来进行剪枝,我这里用set pre【i】来存储i点的前置节点。考虑到0 <= stones[i] <= 231 - 1所以需要进行离散化,我这里使用了map。class Solution {public:unordered_map<int,int>mp;set<i
2021-04-29 18:07:40
109
原创 c++实现快速排序
void quicksort(vector<int >& v,int l,int r){ //cout<<l << " "<<r<<endl; if(l>r) return; if(r-l<=1){ if(v[r]<v[l]) { int temp=v[r]; v[r]=v[l];
2021-04-28 22:07:02
97
原创 leetcode 209. 长度最小的子数组
解法一:题目要求的是连续的子数组,我们可以维护一个满足条件的最小子数组。枚举数组的右边界,要缩小的话就是左边界右移,那么就可以用队列来维护这么一个数组,每次更新最小值。(其实不需要什么数据结构仅仅使用双指针就够了)时间复杂度O(n)解法二:同样是枚举右边界,然后二分前缀数组寻找左边界。时间复杂度O(n log(n))class Solution {public: int minSubArrayLen(int target, vector<int>& nums) {
2021-04-28 20:37:29
81
原创 进程的创建
允许一个进程创建另一个进程,创建者被称为父进程,被创建者被称为子进程。子进程可以继承父进程的所有资源,当子进程被撤销时要将所有资源归还给父进程。另外,当父进程被撤销时所有的子进程都需要被撤销。操作系统创建一个进程的过程如下(1)为进程分配一个进程标识和一个空白的PCB,如果分配失败则创建失败(2)为进程申请资源,如必要的内存。注意,这里如果分配失败是阻塞,等待内存资源。(3)初始化PCB(4)将进程放入就绪队列...
2021-04-28 19:34:32
314
原创 leetcode 1649 线段树模板题
class Solution {public:struct tree{ int l,r,sum;}tree[400010];void build(int i,int l,int r){ tree[i].l=l;tree[i].r=r; if(l==r) return; int mid=(l+r)>>1; build(i*2,l,mid); build(i*2+1,mid+1,r);}int search(int i,in
2021-04-16 21:40:05
169
原创 leetcode 1681
可以用0表示不取数字,1表示取数字,那么一共有1<<nums种情况。用i的二进制表示其选取的数字,可以定义转态dp[i][j]:i这个数字其选取的数字在分成j组的情况下的最小不兼容性。可得转态转移方程:dp[i][j]=min(dp[i][j],dp[s][1]+dp[i-s][j-1]),其中s为i的子集并且s的二进制表示一定要有且仅有k个1。int solve(vector<int>& v){//计算对应的十进制数字 int res=0; for(int
2021-04-16 21:38:05
136
转载 优雅的断开连接
优雅的断开连接–shutdown()close()/closesocket()和shutdown()的区别确切地说,close() / closesocket() 用来关闭套接字,将套接字描述符(或句柄)从内存清除,之后再也不能使用该套接字,与C语言中的 fclose() 类似。应用程序关闭套接字后,与该套接字相关的连接和缓存也失去了意义,TCP协议会自动触发关闭连接的操作。shutdown() 用来关闭连接,而不是套接字,不管调用多少次 shutdown(),套接字依然存在,直到调用 close()
2021-04-16 21:28:10
167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅