自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 问答 (1)
  • 收藏
  • 关注

原创 如果当前请求不在异步模式下,则调用此方法是非法的(即isAsyncStarted()返回false)

如果当前请求不在异步模式下,则调用此方法是非法的(即isAsyncStarted()返回false)

2022-11-28 18:29:36 648 1

原创 C# linq筛选list

private static void ReadT(string str) { List<Info> infoList = new List<Info>(); infoList.Add(new Info() { Id = 1, Name = "woft" }); infoList.Add(new Info() { Id=3,Name="rose"}); infoList.Add(new

2021-10-19 13:41:25 887

原创 mysql大量插入时,关闭/开启索引

ALTER TABLE test DISABLE KEYS ;ALTER TABLE test ENABLE KEYS;

2021-10-09 11:23:45 382

原创 C# DataTable转List

public class ModelConvertHelper<T> where T : new() // 此处一定要加上new() { public static IList<T> ConvertToModel(DataTable dt) { IList<T> ts = new List<T>();// 定义集合 Type type = typeof(T); //

2021-09-16 10:16:21 369

原创 C# Object 转 DataTable

C# Object 转 DataTablepublic static DataTable ObjectToTable(object obj){try{Type t;if (obj.GetType().IsGenericType){t = obj.GetType().GetGenericTypeDefinition();}else{t = obj.GetType();}if (t == typeof(List<>) ||t == typeof(IEnumerable&

2021-09-10 17:31:12 3431

原创 Mysql中实现批量模糊查询

在查询条件后面反复添加OR id LIKE CONCAT(’%’,’**’,’%’)<if test="Id != null and Id != '' "> AND <foreach item="IdStr" collection="Id.split(',')" open="(" separator="OR" close=")"> id LIKE CONCAT('%', #{IdStr}, '%') &

2021-05-14 10:35:22 4620

转载 Mockito使用教程

什么是 MockitoMockito 是一个强大的用于 Java 开发的模拟测试框架, 通过 Mockito 我们可以创建和配置 Mock 对象, 进而简化有外部依赖的类的测试.使用 Mockito 的大致流程如下:创建外部依赖的 Mock 对象, 然后将此 Mock 对象注入到测试类中.执行测试代码.校验测试代码是否执行正确.为什么使用 Mockito我们已经知道了 Mockito 主要的功能就是创建 Mock 对象, 那么什么是 Mock 对象呢? 对 Mock 对象不是很了解的朋友

2021-05-10 10:25:48 1730

原创 MYSQL查询一年中12个月的数据,补全12个月.

1.建立12个月的视图CREATE VIEW 12_month_view ASSELECT 01 AS monthUNION SELECT 02 AS monthUNION SELECT 03 AS monthUNION SELECT 04 AS monthUNION SELECT 05 AS monthUNION SELECT 06 AS monthUNION SELECT 07 AS monthUNION SELECT 08 AS monthUNION SELECT 09 AS mo

2021-04-28 14:21:00 3134

原创 MySQL中查询过去12个月的数据.补全12个月,数据为空则补0

– 1.创建现在到过去的12个月的视图CREATE VIEW past_12_month_view ASSELECT DATE_FORMAT(CURDATE(), ‘%Y-%m’) AS monthUNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 1 MONTH), ‘%Y-%m’) AS monthUNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 2 MONTH), ‘%Y-%m’) AS monthUNIO

2021-04-07 11:17:09 1317

原创 Spring事务中@Transactional(rollbackFor)的用意

Spring事务中@Transactional(rollbackFor)的作用两种异常的分类方式:第一种:运行时异常(RuntimeException)、非运行时异常 (Exception 下除了RuntimeException及其子类的其他异常)第二种:受检异常(非运行时异常)、非受检异常(RuntimeException和Error)Spring @Transactional 注解的作用@Transactional 是Spring框架的事务管理,作用是如果业务对数据库操作出现异常的情况下可以回

2021-03-30 14:11:59 1912

原创 Properties类中setProperty 方法和put()方法的区别

突然间忘了,作业笔记记录下.用Hashtable 的get方法 需要类型转换.而 getProperty 直接默认是string 底层原理是:因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但强烈反对使用这两个方法,因为它们允许调用方插入其键或值不是 Strings 的项。相反,应该使用 setProperty 方法。如果在“有危险”的 Properties 对象(即包含非 String 的键或值)上调用 store 或

2021-02-11 11:16:11 1325

原创 关于 HTTP GET/POST 请求参数长度最大值的一个理解误区

Http Get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。理论上讲,POST是没有大小限制的。HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力。...

2021-01-17 16:03:40 195

原创 《剑指offer》NO42 连续子数组的最大和 详解 <Java实现>

//题目描述: //输入一个整型数组,数组里有正数也有负数.数组中的一个或多个连续多个 //连续的整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n) //{6, -3, -2, 7, -15, 1, 2, 2},连续子数组的最大和为 8(从第 0 个开始,到第 3 个为止)。public class Solution{ public int findGreatestSumOfArray(int[] nums) { if (num

2021-01-17 14:56:29 59 1

原创 《剑指offer》NO41 数据流中的中位数 大小顶堆实现 详解 <Java实现>

/** * 题目描述 * 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。 * 如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 */public class Solution{ //解题思路. //要求中位数,肯定是要排序的,但是数据流回忆只有数据插入,所以不仅要考虑 排序的时间复杂度,还要考虑插入一个新元素的时间复杂度. //因此直接排除掉数组,链表.

2021-01-15 21:18:18 116

原创 《剑指offer》NO40 最小的K个数 大顶堆实现 详解 <Java实现>

public class Solution2_大顶堆{ //用PriorityQueue 来实现一个大顶堆. 当队内元素个数大于K个并且新入的元素小于 大顶堆的最大值,那么就出队列,新的进入.所有元素循环 //完之后,大顶堆内就是最小的K 个元素. //这样虽然没有第一种方法时间复杂度低 O(NlogK) + O(K) ,但是不改变传入数组,适用于海量数据. public ArrayList<Integer> GetLeastNumbers_Solution

2021-01-15 20:34:45 116

原创 枚举的特点

1.所有枚举类都是Enum的子类2.我们可以通过"枚举类名.枚举项名称"去访问指定的枚举项3.每一个枚举项其实就是该枚举的一个对象4.枚举也是一个类,也可以去定义成员变量5.枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略6.枚举类可以有构造器,但必须是private的,它默认的也是private的。 枚举项的用法比较特殊:枚举("");7.枚举类也可以有抽象方法,但是枚举项必须重写该方法...

2021-01-15 19:16:46 1587 1

原创 表单校验@Valid和@Validated的区别

@Valid对象级联校验,即校验对象中对象的属性 支持嵌套校验而@Validated不支持 但是 @Validated支持分组,而@Valid 不支持.

2021-01-11 14:26:04 307

原创 spring中和mybatis中 #{}和${}的区别.

#{}和${}的区别是什么?在mybatis中#{}是预编译处理,${}是字符串替换。Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;Mybatis在处理 $ {}时,就是把${}替换成变量的值。使用#{}可以有效的防止SQL注入,提高系统安全性。在spring中有#的使用也有$的使用,那么这两个分别是做什么的呢?${key名称}:1、用户获取外部文件中指定key的值;2、可以出现在xml配置文件中,也可以出现在注解@

2021-01-11 11:06:29 407

原创 RocketMq中组的概念

GroupName和现实世界中一样,RocketMQ中也有组的概念。代表具有相同角色的生产者组合或消费者组合,称为生产者组或消费者组。作用是在集群HA的情况下,一个生产者down之后,本地事务回滚后,可以继续联系该组下的另外一个生产者实例,不至于导致业务走不下去。在消费者组中,可以实现消息消费的负载均衡和消息容错目标。另外,有了GroupName,在集群下,动态扩展容量很方便。只需要在新加的机器中,配置相同的GroupName。启动后,就立即能加入到所在的群组中,参与消息生产或消费。...

2021-01-10 20:38:06 6388 2

原创 RocketMq广播模式下先开启productor后开启consumer的注意事项.

广播模式的现象如果 生产者先发送消息, 后启动消费者, 消息只能被消费一次(其实可以消费多次,他有一定的延迟,在一定时间内(大概5,6秒内)同一组group可以消费多次.应该与销毁机制有关???) .并且只是一组内只能被消费一次,不同组仍然可以消费这个广播消息. 并且group的个数有一定的限制.我所用的虚拟机只可以定义四个group(group1,group2,group3,group4).如果多个消费者先启动(广播模式),后发消息,才有广播的效果结论:因此必须先启动消费者再启动发送者

2021-01-09 19:17:31 222 2

原创 《剑指offer》NO40 最小的K个数 详解 <Java实现>

//题目描述://输入n个整数,找出其中最小的K的数.例如,输入4,5,1,6,2,7,3,8折8个数,//则最小的4个数字是1,2,3,4.public class Solution{ //解题思路: //要找出最小的K的数,首先考虑到排序,再选出前K个数.但是还不够快.这样的时间复杂度是O(nlogn). //借用快排的思想.只要先找出找出第K小的元素,再用快排,这样K左边就是比K 小的元素.时间复杂度为O(1). //但是要找出第K小的元素也是一个问题.所以直

2021-01-05 15:34:18 103

原创 《剑指offer》NO39 数组中出现次数超过一半的数字 详解 <Java实现>

//题目描述: //数组中有一个数字的次数超过数组的长度的一半,请找出这个数字.public class Solution{ //用多数投票算法来做. 并且已经确定了存在一个数符合条件.否则的话还要最后检验这个ans是否符合条件. // 遍历数组,判断ans的次数是否符合条件. // // // 这个ans绝对是数组中出现次数最多的额. /*如果count==0,则将now的值设置为数组的当前元素,将count赋值为1; 反之,如果now

2021-01-05 11:50:38 58

原创 《剑指offer》NO36 二叉搜索树与双向链表 详解 <Java实现>

//题目描述//输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。// 解题思路//因为要将二叉搜索树转化成排序的双向链表. 其实转换之后就是 二叉搜索树的中序遍历加上左右指针. 用中序遍历做.//重点的是想到去用 中序遍历 去做. 很方便.public class Solution{ TreeNode pre = null; //定义链表当前结点的上一个结点. TreeNode realHead

2021-01-04 20:56:09 114 2

原创 分布式锁原理

分布式锁-Zookeeper分布式锁原理•核心思想:当客户端要获取锁,则创建节点,使用完锁,则删除该节点。1.客户端获取锁时,在lock节点下创建临时顺序节点。2.然后获取lock下面的所有子节点,客户端获取到所有的子节点之后,如果发现自己创建的子节点序号最小,那么就认为该客户端获取到了锁。使用完锁后,将该节点删除。3.如果发现自己创建的节点并非lock所有子节点中最小的,说明自己还没有获取到锁,此时客户端需要找到比自己小的那个节点,同时对其注册事件监听器,监听删除事件。4.如果发现比自己小的那个

2021-01-04 19:45:50 83

原创 springboot中Dao层添加的@Repository和 @Mapper注解的区别

@Repository需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中。@Mapper不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。所以 xml中的namespace需要具体到这个接口,不能再像以前一样只要定位到mapper的父路径即可.现在必须精确定位到mapper....

2021-01-03 19:24:26 2134

原创 事务的特征与隔离级别

事务特征(ACID)原子性(Atomicity)指事务是一个不可分割的整体,其中的操作要么全执行或全不执行一致性(Consistency)事务前后数据的完整性必须保持一致隔离性(Isolation)事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离持久性(Durability)持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响...

2020-12-26 11:05:31 1981 4

原创 JDK Proxy和CGLIB 动态代理的区别以及代理模式如何选择

动态代理——JDK ProxyJDKProxy动态代理是针对对象做代理,要求原始对象具有接口实现,并对接口方法进行增强.使用JDK Proxy 创建出来的代理对象是 接口的实现类,与其他的接口实现类之间是兄弟关系. 因此 需要用接口来接收. 不能用 接口的实现类来接收. 这样的话类型不匹配,会出报异常.public class UserServiceJDKProxy { public UserService createUserServiceJDKProxy(final UserServic

2020-12-21 21:10:16 216

原创 《剑指offer》NO34 二叉树中和为某一值的路径 详解 <Java实现>

/*题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。*/public class Solution{ //解题思路: //每一次执行过程都相似,且是树结构.因此用递归解决 回溯!!!!. 每一次添加节点的时候,就让target - node.value //递归出口: 失败: 遍历到叶节点 且没有满足条件 target != 0 就返回.

2020-12-19 15:55:13 1757 5

原创 《剑指offer》NO33 二叉搜索树的后序遍历序列 详解 <Java实现>

/* 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。假设输入的数组的任意两个数字都互不相同。 */ public boolean isPostOrder(int[] sequence) { if (sequence == null || sequence.length == 0) { return false; } return verify(sequence,0,s

2020-12-18 21:29:13 115 2

原创 《剑指offer》NO32.3 之字形从上往下打印二叉树 详解 <Java实现>

public class Solution{ //多了一步判断而已 public ArrayList<ArrayList<Integer>> print(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); ArrayList<ArrayList<Integer>> res = new ArrayList<&gt

2020-12-18 20:15:20 85 1

原创 《剑指offer》NO32.2 分行从上往下打印二叉树 详解 <Java实现>

/*题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。比上一个多了一个行的条件. */public class Solution{ //把每一层的数据都保存在一个list集合内. ArrayList<ArrayList<Integer>> Print(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>();

2020-12-16 21:24:30 84

原创 《剑指offer》NO32.1 从上往下打印二叉树 详解 <Java实现>

/*题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。BFS *///用队列来 实现层次遍历public class Solution{ public ArrayList<Integer> printFromTopToBottom(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); ArrayList<Integer&

2020-12-16 21:02:22 78

原创 《剑指offer》NO31 栈的压入弹出序列 详解 <Java实现>

/*题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 例如序列 1,2,3,4,5 是某栈的压入顺序,序列 4,5,3,2,1 是该压栈序列对应的一个弹出序列,但 4,3,5,1,2 就不可能是该压栈序列的弹出序列。*///解题思路://用栈来解决.用来模拟入栈.//如果出栈序列头元素等于栈的栈顶元素 那么就出栈,不想等的话就元素入栈.直到与出栈序列的头元素相等,//全部元素入栈则结

2020-12-16 20:09:38 113 2

原创 堆、栈、方法区的区别

堆、栈、方法区的区别基础数据类型(Value type)直接在栈(stack)空间分配,方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。引用数据类型,需要用new来创建,既在栈空间分配一个地址空间(reference),又在堆空间分配对象的类变量(object)。方法的引用参数,在栈空间分配一个地址空间,并指向堆空间的对象区,当方法调用完成后从栈空间回收。局部变量 new出来时,在栈空间和堆空间中分配空间,当局部变量生命周期结束后,栈空间立刻被回收,堆空间区域等待GC回收。字符串常

2020-12-16 19:38:37 635

原创 文件上传下载工具类

public class FileUtil { /** * @param byteArrayOutputStream 将文件内容写入ByteArrayOutputStream * @param response HttpServletResponse 写入response * @param returnName 返回的文件名 */ public static void download(ByteArr

2020-12-16 19:08:11 154

原创 网页中的文件上传与接收

文件上传功能需要前台功能和后台功能共同配合完成前台:文件上传的三要素1.页面提供文件上传的表单元素2.form表单enctype属性的值为multipart/form-data3.表单的提交方式必须是POST,get方式无法提交大量的数据后台:可以使用的技术有很多,在此处我们使用apache提供的commons-fileupload组件完成文件上次操作,后台的操作步骤如下确认请求操作是否支持文件上传创建磁盘工厂对象,用于将页面上传的文件保存到磁盘中获取servet文件上传核

2020-12-16 19:03:37 897

原创 把网页资源放到WEB-INF下的目的以及如何访问

WEB-INF 目录下的资源不是为客户直接服务的我们仍然可以使用WEB-INF目录下的JSP页面来提供视图给客户,客户却不能直接请求访问JSP。如果把这些JSP页面文件移到WEB-INF 目录下,在调用页面的时候就必须把"WEB-INF"添加到URL中。放到WEB-INF目录下的文件是不允许采用redirect方式的跳转来访问的。但是可以采用req.getRequestDispatcher(“WEB-INF/pages/a.jsp”).forward(req,resp); 通过跳转来进行访问.优点

2020-12-13 16:43:55 1488 7

原创 《剑指offer》NO30 包含min函数的栈 详解 <Java实现>

/*题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的 min 函数。*/ //定义两个栈,一个用来正常的存储数据,一个专门来保存最小值. private Stack<Integer> dataStack = new Stack<>(); private Stack<Integer> minStack = new Stack<>(); //最小堆中只保存了最小的节点,每次往栈中添加节点的时候就需要比较一次,

2020-12-12 20:42:30 74

原创 创建一个BaseServlet来利用反射自动根据前台传来的method自动分发方法

创建模板Serclet,让实例都继承这个模板,来实现自动解析"method",并且再利用反射来调用方法.从而实现自动分发方法.@WebServlet("/BaseServlet")public class BaseServlet extends HttpServlet{ @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, I

2020-12-09 20:47:35 159 2

原创 idea创建Maven工程的时候出现IDEA java错误:不支持发行版本5 的解决方案

第一步.首先检查一下项目下自己的jdk版本与language level 是否一致第二步 要看一下模块下的language level 要和jdk版本保持一致最坑的是还有一步 .去 File | Settings | Build, Execution, Deployment | Compiler | Java Compiler 选择自己的jdk的版本.这样就完成了.可以执行了...

2020-12-09 15:18:59 164 2

空空如也

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

TA关注的人

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