- 博客(20)
- 收藏
- 关注
原创 【设计模式-策略模式】
使用策略模式改造公司的一段关于 RabbitMQ 延时队列的一段代码改造之前的代码如下:@RabbitListener(queues = "${queue.name}") public void process(Message content, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) { String msg = new String(content.getBody()); log.
2021-12-28 11:41:09 913
原创 【设计模式-迭代器模式】
设计模式-迭代器模式迭代器接口,至少需要两个方法:hasNext、next:package com.javaxiang.pattern.iterator;/** * @author Created by li'xiang on 2021/12/27 17:44 */public interface Iterator<E> { /** * 是否有元素 */ boolean hasNext(); /** * 返回下一个元素
2021-12-27 18:40:50 375
原创 【logback-spring.xml 日志配置文件详解】
logback-spring.xml 日志配置文件配置<?xml version="1.0" encoding="utf-8" ?><!--日志级别从低到高分为 TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置级别为 WARN 则低于WARN的信息都不会输出--><!--scan:当此属性设置为true时,配置文档如果发生变化,将会重新加载,默认值设置为true--><!--sca
2021-12-27 16:16:31 697
原创 【算法-罗马数字转整数(力扣-13)难度:简单】
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。X 可以放在
2021-12-17 11:04:55 162
原创 【算法-回文数(力扣-9)难度:简单】
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
2021-12-14 15:19:17 325
原创 【算法-整数反转(力扣-7)难度:简单】
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [-2^31 , 2^31 - 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。
2021-12-12 02:00:11 446
原创 算法-子集(幂集)(力扣-78)中等难度
算法-子集(幂集)(力扣-78)中等难度题目描述:示例1:示例2:提示:题目描述:给你一个整数数组 nums 数组中的元素互不相同。返回该数组所有可能的子集(幂集)解集不能包含重复的子集,你可以按照任意顺序返回解集示例1:输入: nums = [1,2,3]输出:[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]示例2:输入: nums = [0]输出:[[],[0]]提示:1 <= nums.length &
2021-11-29 00:15:16 477
原创 算法-无重复字符的最长子串(力扣-3)难度:中等
算法-无重复字符的最长子串题目:力扣-3:无重复字符的最长子串 ,难度:中等描述:示例1:示例 2:示例 3:示例 4:提示:编码实现:方法1:暴力方法:双循环分析:该算法为暴力无脑解法,其时间复杂度为O(n^3),空间复杂度为O(m)优化算法:滑动窗口法编码实现(滑动窗口):分析:时间复杂度为 O(n),空间复杂度为 O(|E|) 其中 E 代表可能出现的无重复的字符集的个数,默认为所有的ASCII 码在 [0,128)内可能出现的字符。题目:力扣-3:无重复字符的最长子串 ,难度:中等描述:给定一
2021-10-18 01:05:02 521
原创 算法-两数相加(力扣-2)难度:中等
算法-两数相加(力扣-2)难度:中等题目示例1示例2示例3提示:题目已经给出链表的结构如下题目分析:尝试实现一下:分析:正确解题思路:编码实现题目给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例1输入两个链表:l1和l2l1:2—>4—>3—>nulll2:5—>6—>4—>
2021-10-16 16:10:20 437
原创 算法-两数之和
算法-两数之和 牛客(NC-61),力扣-1题目测试用例用例1用例2用例3提示:编码实现:双重循环哈希方法题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。测试用例用例1输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] +
2021-10-16 13:46:42 177
原创 算法-验证回文字符串
验证回文字符串题目一(牛客网 NC141)题目分析Java编码实现Go代码实现题目二 力扣(125)题目分析编码实现题目一(牛客网 NC141)给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。字符串回文指该字符串正序与其逆序逐字符一致。数据范围:0 < n≤1000000要求:空间复杂度 O(1),时间复杂度 O(n)题目分析回文字符串是指字符串的逆序和字符串本身相同Java编码实现public class Algor
2021-10-15 01:05:01 421
原创 Cookie之记录用户上次访问时间
Cookie之记录用户上次访问时间写在前面的话哪些优化?工具类代码:Servlet中的代码:写在前面的话前几天写过一个一样的Demo,觉得写的有点麻烦,刚好有时间,过来优化一下哪些优化?在获取上一次Cookie 中的值时代码重复度高,抽取成一个工具类;在向Cookie中添加时间时,不需要格式化,直接添加当前时间的毫秒值,在响应到页面的时候取出存入的毫秒值,格式化后然后才响应到页面上...
2019-06-18 22:27:20 415
原创 HTTP协议之Request
HTTP-Request笔记1.HTTP协议HTTP:超文本传输协议HTTP协议:是客户端和服务端交互时,数据的格式规范HTTP请求:客户端发送给服务端的数据HTTP响应:服务端发送给客户端的数据响应行响应头响应体先有请求,再有响应;没有请求就没有响应请求行请求头请求体2.HTTP请求2.1请求行本次请求的基本信息格式:请求方式 请求资源 协...
2019-06-17 22:20:07 692
原创 Java设计模式之装饰者模式
装饰者设计模式的前提条件:增强类和被增强类必须实现同一个接口增强类中要有引用指向被增强类增强类和被增强类共同实现的接口(以Car举例):package demo2;public interface Car { public abstract void run(); public abstract void stop();}需要被增强的类(奇瑞QQ):pa...
2019-06-16 22:19:00 123
原创 自定义一个JdbcTemplate(增删改数据库中表记录)
需求:自定义一个JdbcTemaplate模板,实现增删改数据库中表记录的功能package demo03;import utils.JDBC_DBCP_Utils;import javax.sql.DataSource;import java.sql.Connection;import java.sql.ParameterMetaData;import java.sql.Pre...
2019-06-16 21:50:00 847
原创 Servlet之 验证码(初级)
Servlet之 验证码(初级)需求:使用Servlet向页面响应验证码,并且点击验证码或者"看不清楚,换一张"可以刷新验证码需求分析:Servlet中需要完成的需求:验证码的本质:就是一张图片使用Servlet向页面响应验证码和现实中使用画板绘画一样:1.设置画布的尺寸:宽度(width),高度(height)2.有了画布之外还需要画笔3.设置画笔的颜色,使用RGB颜色,re...
2019-06-16 20:54:48 246
原创 Cookie之记录用户访问时间
Cookie之记录用户访问时间需求:需求分析代码实现需求实现效果:需求:需求1:用户访问服务器(Servlet),判断用户是否是第一次访问,如果是第一次访问,则在页面响应内容为:“您好,欢迎您首次访问”;需求2:用户访问服务器(Servlet),判断用户是否是第一次访问,如果不是第一次访问,则在页面响应内容为:“欢迎回来,您上次访问的时间为:xxxx年xx月xx日 , xx时xx分xx秒”...
2019-06-16 19:54:55 878
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人