InTheBloodHorse

InTheBloodHorse

Hey~

Java总结
Java APISpring核心功能 Core Container 核心容器Beans负责管理对象 Core核心类 Context上下文参数,获取外部资源,管理注解等 SpELexpression.jar IOC/DI 控制反转/依赖注入IOC(Inversion of Control)将对象交给容器控制,而不是传统的在内部直接控制。反转则是由容器来帮忙创建以及注入依赖对象,而不是主动去创建类。降低了类与类之间的耦合,使得程序变得灵活,可扩展。容器内的Bean默认是单例的,其中Bean作用域分为如下几种(Scope): singletonIOC容器仅创建一个Bean实例 prototyp...
Java 枚举
枚举类型(enum type)的指由一组固定的常量组成合法值的类型。 下面看一个简单的例子,使用枚举类型来定义数学的四大基本操作(加减乘除)。1234567891011121314151617public enum Operation { PLUS, SUB, MULTI, DIVIDE; public Double operator(Double a, Double b) { switch (this) { case PLUS: return a + b; ...
Java设计模式
创建型模式单例模式核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。常见的应用场景: Windows的任务管理器,回收站 网站的计数器 数据库连接池也采用单例模式,因为数据库连接是一种数据库资源 操作系统的文件系统,一个操作系统只能有一个文件系统 在Spring中,每个Bean默认就是单例的,这样做的优点是Spring容器可以管理 单例模式的优点: 由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决 单例模式可以在系统设置全局...
Java中浅拷贝和深拷贝
什么是拷贝Java中所有的类都默认继承了java.lang.Object类,而在java.lang.Object类中有一个方法clone()。 拷贝对象返回的是一个新对象,而不是一个引用。 拷贝过程中并不会进行构造方法,而是新对象已经包含了原来对象的信息。 实现Clone()方法首先类实现Cloneable接口,另外就是重写clone()方法。12345678910111213141516class Teacher implements Cloneable { private String name; public String getName() {...
Spring-data-jpa 多条件动态查询
条件查询fortest,前端传入的参数并不确定,在sql或者jdbc里,我们可以动态拼接sql来解决这个问题。但是在jpa里我们定义的repository接口需要继承JpaSpecificationExecutor接口。 123public interface MeetingRoomRepository extends JpaRepository<MeetingRoom, Integer>, JpaSpecificationExecutor<MeetingRoom> {} JapSpecificationExecutor接口实现如下(需要传入S...
Spring-data-jpa 重写save方法
项目需要用户密码进行MD5加密,所以需要在每次保存用户实体类的时候先对password字段进行加密再保存到数据库,因此需要重写jpa的save方法。Ctrl+鼠标左键跳到CurdRepository接口12345678910111213141516171819202122232425262728package org.springframework.data.repository;import java.util.Optional;@NoRepositoryBeanpublic interface CrudRepository<T, ID> extends Repositor...
每日一题(53) hud3336
题目地址 题意求出以字符串为主串,以字符串的前缀为模式串的匹配个数总和 思路KMP前缀和思想,将字符串所有的前缀0-i在i+1-n出现的次数+1(因为自身也是)相加得到 sum AC代码:1234567891011121314151617181920212223242526272829303132333435363738#include<bits/stdc++.h>using namespace std;int nextval[200005];char s[200005];int dp[200005];void gen_next(){ int ll = strlen...
每日一题(52) hud3746
题目地址 题意问给的字符串后面还要拼接几个字母才可以使字符串是循环的 思路利用KMP的前后缀思路,找出最长串的前缀,后缀交集最长元素的长度。 长度为0,说明没有交集,长度为拼接长度为原字符串 (原长度) -(最大长度) 能被 (最大长度)乘除,说明已经循环 无法整除,则补上相应的位数。 AC代码:123456789101112131415161718192021222324252627282930313233#include<bits/stdc++.h>using namespace std;int nextval[100005];char s[100005];void ...
每日一题(51) hud2087剪花布条
题目地址 题意给一个主字符串和一个模式字符串,要求找到匹配的个数。例如 aaaaa aa 答案为2 思路简单的kmp,当匹配成功的时候,要移动i的坐标,避免重复匹配 AC代码:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include<bits/stdc++.h>using namespace std;int nextval[1005];int ans[1005];int index;void gen(string s) ...
每日一题(50) codeforces 1091C
题目地址 题意给一个数组n,代表一个环有n个节点,从1到n,每次可以跳一个步数,比如跳1步的话,经过的点就是 [1,2,3,…,n],跳2步的话,经过的点为 [1,3,5,…]。要求升序输出能跳回起点(1)的步数总和。 思路 数据集很大,模拟肯定不行 可以发现 答案序列长度和因数有关,先暴力找出因子,然后根据等差数列求和,得出答案序列 AC代码:12345678910111213141516171819#include<bits/stdc++.h>using namespace std;vector<long long>v;int main(){ in...
avatar
InTheBloodHorse
你得抛开过去的事
FRIENDS
阿汤哥