- 博客(42)
- 资源 (2)
- 收藏
- 关注
原创 建造者模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Product产品类:通常是实现了模板方法模式,也就是有模板方法和基本方法Builder抽象建造者:规范产品的组件,一般是由子类实现。ConcreteBuilder具体建造者:实现抽象类定义的所有方法,并且返回一个组件好的对象。Director导演类:负责安排已有模块的顺序,然后告诉Builder开始建造。
2022-11-29 22:58:07
502
原创 模板 模式
一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的特定步骤。注意:一般为了防止恶意的操作,模板方法都加上final关键字,不允许被覆写。
2022-11-27 21:31:29
288
原创 单例 模式
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例类,通过使用private的构造函数确保了在一个应用中只产生一个实例,并且是自行实例化的。
2022-11-19 21:08:51
368
原创 K8s 基本概念和术语
文章目录基本概念和术语MasterNodePodLabelReplication ControllerReplica SetDeploymentHorizontal Pod AutoscalerStatefulSetServiceJobVolumePersistent VolumeNamespace(命名空间)Annotation(注解)ConfigMap基本概念和术语MasterK8s 里的Master指的是集群控制节点,每个K8s集群都至少有一个Master负责整个集群的管理和控制,由它接受和执
2022-04-30 20:27:27
1483
原创 String 字符串误用,bug生产
代码复现public class Main { public static void main(String[] args) { String str = null; System.out.println(str); System.out.println(str + ""); String test = "test_"; System.out.println(test + str); }}...
2021-12-24 20:29:03
565
原创 go 常见问题记录
文章目录常见代理设置目前国内的几个不错的goproxy终端执行go get github.com/go-redis/redis异常常见代理设置目前国内的几个不错的goproxy阿里云配置如下: export GOPROXY=https://mirrors.aliyun.com/goproxy/nexus社区提供的 配置如下:export GOPROXY=https://gonexus.devgoproxy.io 的配置如下:export GOPROXY=https://goproxy.
2021-09-29 16:40:32
253
原创 HttpSessionListener中RequestContextHolder.getRequestAttributes() 为null
解决:继承ServletRequestListener 接口,实现requestublic class MyHttpSessionListener implements HttpSessionListener,ServletRequestListener { private HttpServletRequest request; @Override public void requestInitialized(ServletRequestEvent event) {
2021-09-27 16:51:19
393
原创 前端跨域问题复现代码
直接引用,修改接口地址及传参即可<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <ti
2021-09-18 17:06:27
162
原创 并发的控制方法
文章目录Java内存模型同步关键字synchronizedReentrantLock重入锁ReadWriteLock读写锁Condition对象Semaphore信号量ThreadLocal线程局部变量Java内存模型在Java中,每一个线程都有自己的独立的一块工作内存区,其中存放着被所有线程共享的主存中的变量的拷贝值。当线程执行时,它在自己的工作内存中操作这些变量。为了让线程中私有的值与共享相同,线程需要进行一系列的操作,并且每个操作均为原子的。如下图:由于每个线程都有自己的工作内存区,因此当一个
2021-08-17 15:08:37
971
原创 Jdk多任务执行框架
文章目录无限制线程的缺陷简单的线程池实现Executor框架自定义线程池优化线程池大小扩展ThreadPoolExecutor无限制线程的缺陷为了提高对多核处理器使用,多线程的操作成了不可替代的利器。但不对线程加以有效管理,线程的创建及销毁都会消耗不必要的性能。简单的线程池实现为了在使用过程中,对线程进行一个有效的管理,就引入了线程池的概念–进行线程的复用。public class ThreadPool { private static ThreadPool instance = nul
2021-08-11 13:41:27
310
原创 java编译错误:编码UTF8/GBK的不可映射字符与 找不到或无法加载主类
文章目录编码UTF8/GBK的不可映射字符cmd窗口下出现“ 错误: 编码GBK的不可映射字符”解决无法加载主类cmd窗口下出现“ 错误: 找不到或无法加载主类”解决编码UTF8/GBK的不可映射字符cmd窗口下出现“ 错误: 编码GBK的不可映射字符”PS xxxx\src\main\java\com\lidaxia> javac .\Server.java.\Server.java:14: 错误: 编码GBK的不可映射字符 System.out.println("鏈嶅姟鍣ㄥ
2021-08-07 23:01:13
555
原创 记“java.io.IOException: Connection reset by peer” bug处理
”java.io.IOException: Connection reset by peer“这个问题总的来说,从毕业到至今一直遇到,一直不是很理解,虽然网上说造成该问题的原因很多,但因为原因多,可想而知,该问题的排查解决的难度,特此,写该文做整理,迈向更强,懂得更多。
2021-08-06 17:07:12
11440
原创 并行程序设计模式
文章目录Future模式Future模式理念简单代码实现JDK的内置实现Master-Worker模式Guarded Suspension模式不变模式生产者-消费者模式Future模式Future模式理念Future模式是一种比较常用的手法。类似在家里煮饭一般,当你把饭放入电饭煲中进行焖煮,你就可以抽出时间去摘菜、切片等,待饭煮熟了,再进行炒菜,将时间充分利用。简单代码实现Future模式主要参与者参与者作用Main系统启动,调用Client发出请求Client
2021-08-04 17:41:17
379
原创 Rocket Mq源码调试环境搭建
源码下载到rocketmq 官网自行下载所需要的版本导入idea源码下载后,导入idea中采用maven的方式环境配置及运行在完成导入操作后,还需要执行以下操作。自行在项目顶级目录新建conf、logs、storemes(该文件夹需要与broker.conf配置保持一致即可)文件夹并需要在broker中配置store相关# 存储路径storePathRootDir=D:\\ideause\\rocketmq-all-4.8.0-source-release\\storemes#
2021-05-12 13:40:14
158
原创 记一次线上rocketmq耗时很久的bug
问题代码如下开始分析解决问题问题问题接口耗时久。代码如下 @PostMapping("/checkmqtime") public long checkMqTime(@RequestBody MqDto mqDto){ long time = System.currentTimeMillis(); DefaultMQPullConsumer defaultMQPullConsumer = new DefaultMQPullConsumer();
2021-03-24 14:40:12
896
原创 请求参数校验 hibernate validate,自定义实现多字段关联
自定义注解用于类上@Retention(RetentionPolicy.RUNTIME)// 用于类@Target(ElementType.TYPE)@Documented@Constraint(validatedBy = SdkPtzValAnno.class)public @interface SdkPtzVal { String message() default "Please check whether the request parameters are legal";.
2021-02-18 17:08:06
976
1
原创 go语言交叉编译
Windows 下编译 Linux 64位系统的可执行程序SET CGO_ENABLED=0SET GOOS=linuxSET GOARCH=amd64go build main.gogoland 中设置GOOS=linux;GOARCH=amd64
2021-01-06 09:59:38
241
原创 docker部署常用应用,便于快速学习成长
mysql搭建docker pull mysqldocker run -di --name pinyougou_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin mysqlredis搭建docker pull redisdocker run -di --name redis -p 6379:6379 redis --requirepass ...
2020-03-31 10:55:52
178
原创 Cron表达式
Cron表达式格式Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:(1)Seconds Minutes Hours DayofMonth Month DayofWeek Year(2)Seconds Minutes Hours DayofMonth Month DayofWeek每一个域可出现的字符如下:Secon...
2020-03-01 20:13:14
197
原创 Springcloud的配置文件bootstrap与application的思考
加载顺序bootstrap(.yml 或者 properties) 由父ApplicationContext加载,比application(.yml 或者 properties)优先加载bootstrap(.yml 或者 properties) 里面的属性不能被覆盖原理Spring是有上下文一说的,也叫Application Context,Application Context又是有...
2020-01-20 11:41:25
724
3
原创 工欲善其事必先利其器-------IDEA插件
记录常用好用的插件Alibaba Java Coding Guidelines 阿里巴巴代码规范maven helper maven 冲突解决插件lombok lombok ...
2020-01-18 21:12:29
152
原创 项目迁移:ORACLE 转移 MYSQL,语法转换记录
本文为项目从oracle 转移到mysql数据库,sql 常用语法整理,为便于后期再次遇到使用方便。
2019-12-15 22:14:39
313
原创 git 常用命令
#添加文件$ git add#提交代码$ git commit -am '注释'#获取状态$ git status#查看修改次数$ git diff readme.txt 注释 要随时掌握工作区的状态,使用git status命令。 如果git status告诉你有文件被修改过,用git diff可以查看修改内容 #版本日志$ git log#返回上一个...
2019-11-10 19:00:12
104
原创 nginx(二)
linux环境安装安装PCRE库$ cd /usr/local/$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz$ tar -zxvf pcre-8.36.tar.gz$ cd pcre-8.36$ ./configure$ make$ make install./con...
2019-09-22 21:31:01
132
原创 springboot
springboot常用方法整理静态资源访问Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources/META-INF/resources举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8...
2019-09-01 22:09:03
297
原创 nginx整理(一)
nginx入门什么是nginxnginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,所以现在很多知名的公司都在使用nginx。应用场景http服务器虚拟主机反向代理配置(细节见注解)#use...
2019-09-01 21:36:24
198
原创 Servlet理解
什么是ServletJava Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页Servlet生命周期构造方法: 创建servlet对象的时候调用。默认情况下,第...
2019-08-25 21:23:46
78
原创 自定义注解及使用
什么是注解dk1.5新增新技术,注解。很多框架为了简化代码,都会提供有些注解。可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。注解分类:内置注解(也成为元注解 jdk 自带注解)、自定义注解(Spring框架)什么是内置注解(1) @SuppressWarnings 再程序前面加上可以在j...
2019-08-18 22:45:09
148
原创 java反射机制
什么时java反射就是程序运行时,动态获取这个类的所有信息。反射机制作用反编译:从class字节码文件到java文件通过反射机制可以获取java对象的属性,方法的等全部信息。应用场景jdbc使用,Spring IOC底层实现反射学习源码package reflect;import pojo.Student;import java.lang.reflect.Field;...
2019-08-04 20:25:46
135
原创 多线程三、线程池
什么时线程池线程池是指初始化一个多线程应用程序过程中创建的一个线程集合,然后在需要执行新任务时使用一个而不是新建一个线程。线程池中的数量通常完全取决于可用内存数量和应用需要。(其作用可以类比数据库连接池)线程池作用线程池改进了一个应用程序的响应时间。由于线程池中的线程已经准备好且等待被分配任务,应用程序可以直接拿来使用而不用新建一个线程。线程池节省了CLR 为每个短生存周期任务创建一个完...
2019-08-04 20:16:48
113
原创 多线程二、线程安全
什么是线程安全当多个线程同时共享同一个*全局变量或静态变量*,做**写**操作时,可能法神数据冲突的问题(读取数据是不会有线程安全问题的)线程安全的解决办法使用多线程之间同步(Synchronized)或锁(lock)Synchronized用法同步代码块synchronized(同一个数据){ 可能会发生线程冲突问题}同步函数在方法上使用synchronized修...
2019-07-28 21:53:57
267
原创 多线程 一、入门
什么是进程?什么是线程?进程是应用程序的一次执行,是多个线程的集合。线程是进程的基本单位,是进程中的一条执行路径,线程只是一条执行路径。,一个进程至少有一个线程。为什么要使用多线程?多线程的好处是提高程序的效率。例如:百度云多线程下载、分批发送短信。多线程的创建方式继承Thread类/** * @author daxia li * @time 2019/7/20 */...
2019-07-20 21:57:36
326
原创 mybatis-generator自动生成代码
mybatis使用,快速开发,省去不必要搬砖的体力活。maven 工程,依赖导入 <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</vers...
2019-07-20 21:34:04
87
原创 ElasticSearch(一)安装
安装安装配置:1、新版本要求至少jdk1.8以上;2、支持tar、zip、rmp等多种安装方式,在windows下开发建议ZIP安装方式;3、支持docker安方式装详细参加:https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html下载ES:https:/...
2019-07-07 19:51:59
202
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人