自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(276)
  • 收藏
  • 关注

原创 自定义线程池+countdownlatch

就需求来说,join可以做到,countdownlatch也可以做到,我喜欢用countdownlatch做,代码看起来简单点,然后涉及到要开启多线程,所以还是自己来维护一个线程池来用。latch.await如果不加等待时间的话,当某个线程执行出错,卡在那里,那么主线程会一直等待,这肯定是我们不想看到的,所以await一定要加等待时间。要给前端出个接口,一个数据展示接口,要从好几个表把数据统计出来,所以打算用多线程来查,查完了返回给前端。然后给一个task的例子。

2022-09-03 15:54:53 537

原创 哈夫曼编码的应用场景

1951年,哈夫曼和他在MIT信息论的同学需要选择是完成学期报告还是期末考试。导师Robert M. Fano给他们的学期报告的题目是,寻找最有效的二进制编码。由于无法证明哪个已有编码是最有效的,哈夫曼放弃对已有编码的研究,转向新的探索,最终发现了基于有序频率二叉树编码的想法,并很快证明了这个方法是最有效的。哈夫曼编码,又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。...

2022-08-28 12:24:22 3133

原创 【学习】手写数字生成

今天敲的是第十八个例子,手写数字生成,还是挺好玩的,我的程序运行了好久,还没出结果。不过还是成功运行起来了,所以写一下注意事项。

2022-08-20 16:05:30 798

原创 【学习】常用深度学习算法有哪些

到目前为止,学习到的这些例子,都是CNN的,最后一个例子是GAN的,所以我想了解一下都有哪些常用的深度学习算法。

2022-08-20 11:27:03 3353

原创 【学习】loss图和accuracy

loss曲线能够反映网络训练的动态趋势,通过观察loss曲线,可以得到模型是否收敛、是否过拟合等信息。

2022-08-18 20:32:31 6254

原创 【学习】深度学习代码各个步骤都是为了啥(三)

继续学参数

2022-08-14 21:09:16 996

原创 【学习】深度学习代码各个步骤都是为了啥(二)

继续学参数

2022-08-12 19:27:46 325

原创 【学习】深度学习代码各个步骤都是为了啥(一)

一个深度学习的例子,代码一般会包括以下几个步骤: 1. 设置GPU 2. 加载数据 3. 处理数据 1. 归一化 2. 设置测试集 4. 构建模型 5. 激活模型 6. 训练模型 7. 结果可视化 1. 绘制loss图 2. 预测 3. 评估...

2022-08-11 20:17:33 559

原创 【学习】代码里引入的包都是啥东西

因为对于深度学习基本上是啥都不懂,第一个例子倒是完整的敲出来了,运行也没啥错误,结果跟文章里也一样,可是自己完全不知道啥意思,所以,本篇研究一下,代码最上面,import进来的都是啥?...

2022-08-06 17:04:05 268

原创 【学习】cifar-10-python 手动下载和处理

CIFAR-10和CIFAR-100是带有标签的数据集,都出自于规模更大的一个数据集,他有八千万张小图片

2022-08-06 16:38:48 1017

原创 【学习】TensorFlow2环境配置

​前几天看到了这个21天学习挑战赛,就挑了一个看起来最贵的报名参加开玩笑啦,实际上主要一直对深度学习特别好奇,但是自己一直没有真的去行动过,希望以此为契机,让自己对深度学习有多一些了解...

2022-08-05 17:59:28 369

原创 springboot配置redis多数据源

Redis多数据源。

2022-07-27 17:42:03 1237

原创 gson与fastjson

关于json,我在代码里,最常用的有两个地方,一个是做类型转换的时候用,另一个是偷懒,在调用第三方接口的时候接数据用。从速度上来说,fastjson是比gson快的,我们的服务目前来说,还没有到考虑性能的时候,所以目前从fastjson切换到gson,先暂时不解决性能问题。...

2022-07-23 14:21:32 1288

原创 idea按条件断点调试

程序员应该会经常用到idea的断点调试,然后调试的时候,我有个需求是,代码里有个循环,然后当循环到某个数据的时候,我才想一步一步的跟一下,之前一直知道有这个功能,但是没有真的用过,这周终于用了一次,不禁感叹太好用了,所以写博客记录一下...

2022-07-09 16:06:55 1699 1

原创 2022半年总结

上半年,感觉自己以周为单位的得过且过,没有主动的学习,就是一种,失去主线任务的感觉,每天停下来问自己,不知道自己想干嘛,以前是想了很多,做了很少,上半年是想都不想了。我觉得疫情也的确影响到了我,如果没有疫情,我可能会早早的计划一个月后,两个月后去哪儿玩,做些什么,疫情存在的现在,我已经没有久一些的计划了,同时人也变得很消极。...

2022-07-03 19:20:32 184

原创 [springboot]jasypt加密

公司要求任何地方,不能存储数据库明文,也就是git里,不能出现数据库的密码明文配置,所以我们使用的是jasypt来做的,同时将这些配置放到了apollo来管理,所以简单介绍一下jasypt。Jasypt 这个Java类包为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成 hibernate,Spring Security(Acegi)来增强密码管理。Jasypt是一个Java库,可以使开发者不需太多操作来给Java项目添加基本加密功能,而且不需要知道加密原理。

2022-06-26 18:05:36 819 2

原创 npm和yarn

需要注意的是:npm 和 Yarn 都是通过 package.json 记录项目需要拉取的依赖模块npm(“Node 包管理器”)是 JavaScript 运行时 Node.js 的默认程序包管理器。它也被称为“Ninja Pumpkin Mutants”,“Nonprofit Pizza Makers”,以及许...

2022-06-05 20:55:44 9992

原创 【nginx】配置文件

这里写自定义目录标题nginx简介配置文件event块http块server块location块nginx简介Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022

2022-05-29 20:42:49 361

原创 【java】对URL中的中文和符号进行UrlEncode转码

需求我们有一个需求,是和钉钉审批打通的,然后有需要放附件的地方,没有用钉钉云盘附件的那种形式,而是直接用了单行文本框,放一个链接的形式。然后我们文件上传用的是ali的oss,上传完成以后会得到一个类似 ossHost/文件夹名/文件名的链接,此时就会有一个问题产生,如果我的链接中带中文,当我把这个链接放到钉钉的文本框中提交以后,从中文部分开始,不会被识别为链接的一部分,这可就阿西吧了。当时发现这个问题的时候,我基本是懵的,脑袋里完全没有解决方案,然后组长说,你试试urlencode一下再放到文本框里。

2022-05-21 10:33:40 8028

原创 docker常用命令

背景目前我们的服务部署是通过jenkins,然后服务是容器部署的,所以就需要使用一些简单的docker命令来查看信息等等,所以简单记录一下自己常用的docker命令代码直接上代码查看镜像列出本地镜像docker images拉取新镜像一般我们可以去docker hub查找想要使用的新镜像,然后copy拉取的命令就可以啦。docker pull ubuntu:13.10删除镜像docker rmi 54301e8a1f0d启动一个容器启动的时候还可以添加各种参数dock

2022-05-01 17:48:35 1051

原创 【java】springboot项目打包成docker镜像

背景我们的服务是springboot开发的,但是部署的时候是使用的docker部署的,所以在打包的时候,需要打包成docker image,下面说说如何进行配置,才能在package的时候得到docker镜像。环境本地环境打包的话,要求在本机安装了docker才可以,大家注意一下。配置pom配置 <version>1.0</version> <artifactId>user-service</artifactId> <

2022-04-22 11:38:30 1042

原创 php的openssl_encrypt改写成java版

需求我们之前的服务是php的,然后接下来的新功能打算用java开发,php的功能也打算后续迁移过来,然后数据库里的手机号是加密过的,所以java这边也需要按照相同的规则去加解密,下面就是过程实现php先看下原来的php代码 public static function encryptNew($plaintext) { //加密模式选择的AES-128-ECB,注意128表示密钥应该是16位的,16x8=128 $cipher = 'AES-128-ECB';

2022-04-14 17:15:28 2064

原创 springboot多数据源配置

背景现阶段公司的各种基础设施都不是很完善,所以很多开发内容都打算放到一个项目里,这就涉及到连接多个数据库的问题,我们的服务之前是单数据源的,所以要改成多数据源的。代码修改前现在其实将项目修改成多数据源还是很简单的,首先看一下单数据源的时候配置是啥样的:spring: datasource: username: db_username password: WXx9sisvzqfbU url: jdbc:mysql://localhost:3306/db_name?useU

2022-04-07 15:46:04 1587

原创 前端|Ant Design介绍

引入现在的公司前端人员比较少,所以一些简单的前端功能,需要开发人员自己改,公司大部分对的前端 ,用的Ant Design 做的,所以今天先简单做个了解。是什么Antd是基于 Ant Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。官网上是这么介绍自己的,React是用于构建用户界面的JavaScript库, 起源于Facebook的内部项目,该公司对市场上所有 JavaScript MVC框架都不满意,决定自行开发一套,用于架设Instagram的网站。于2013年5

2022-03-27 20:04:30 8185

原创 【问题解决】jasypt-spring-boot-starter导致apollo动态配置刷新失效

目录背景原因解决方案背景1.项目中关于数据库密码等信息想要进行加密处理,所以引入了jasypt-spring-boot-starter,版本3.0.32.后来项目接入了apollo的动态配置中心3.此时发现@Value的值,不能进行动态刷新,当发布新配置时,apollo会进行更新操作,可是程序里仍旧是旧值4.通过查看文件,可以看到本地拉下来的配置文件中,值已经同步成和apollo配置中心一样。原因这块我理解的还不够透彻,大家可以看一下apollo的这个issues,等我研究明白了我再写,先看这

2022-03-16 19:37:30 5339 4

原创 SPRINGBOOT启动原理(基于2.x版本)(二)-SpringFactoriesLoader

目录版本SpringFactoriesLoader引入介绍代码版本版本:2.5.5上一篇:SPRINGBOOT启动原理(基于2.x版本)(一)SpringFactoriesLoader引入从上一篇可以看到,代码中频繁地使用到了SpringFactoriesLoader这个类,大致能看出来是为了拿类的,今天我们详细的研究一下。介绍看一下官网的介绍:General purpose factory loading mechanism for internal use within the fr

2022-03-11 17:52:11 462

原创 【读代码】Guava的CacheLoader

来看一段代码,代码中有两个打日志的地方,请问哪个会先打印出来?这里使用的是Guava的CacheLoaderpackage com.example.demo.config;import com.alibaba.fastjson.JSONObject;import com.google.common.cache.CacheBuilder;import com.google.common.cache.CacheLoader;import com.google.common.cache.Loadin

2022-02-25 18:34:39 1197

原创 spring获取环境变量

需求想分辨一下test/prod环境,然后根据环境做一下逻辑处理,比如为测试环境添加了一个通用密码。。。当然这样不太好,不要学我。实现一开始我是想通过application.yml文件里面设置的spring: profiles: active: local来判断的,后来代码写了个bug误以为没起效,就又研究了一下其他方式,当然这种方式实际上是没问题的。现在把这几种方式都记录一下,以供参考。读取配置文件方式首先配置文件内容如下:spring: profiles: ac

2022-02-18 14:29:43 4498

原创 SPRINGBOOT启动原理(基于3.x版本)(一)

目录版本注解@SpringBootApplication@EnableAutoConfiguration@AutoConfigurationPackage@Import({AutoConfigurationImportSelector.class})介绍指定class数组方式ImportSelector方式(Spring Boot底层采用比较得多的方式)ImportBeanDefinitionRegistrar方式正题参考版本版本:2.5.5注解我们从启动类入手,springboot的启动类上要添加

2022-02-12 16:43:46 648

原创 AES加密

调用钉钉/飞书等的接口,或者回调的时候,会发现他们都对内容进行了加密处理,而且都是用的AES加密,所以写个博客记录一下,什么是AES加密密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES(Data Encryption Standard),已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26

2022-02-06 18:09:07 2668

原创 [java]如何通过AOP打日志

需求把接口的入参出参打印出来代码因为只是需要接口的入参出参,所以我们拦截controller文件夹就可以。@Component@Aspect@Slf4jpublic class MethodLogAspect { @Around("execution(public * com.test.log.controller..*.*(..))") public Object doAuthMethodInterrupt(ProceedingJoinPoint point) { Ser

2022-01-25 16:46:50 398

原创 springboot整合jwt

这里写目录标题目的优缺点优点缺点代码pom引入生成jwt校验jwt刷新jwt其他用法总结目的一般系统都有登陆和验证用户是否登陆的需求,现在的项目好多都是前后端分离的,一般的session也不适合于多台机器同时提供服务的场景,所以可以使用jwt生成token,然后使用token来鉴定该用户是否登陆/登陆是否过期等。优缺点优点生成token简单,可以携带简单信息验证方便,不需要数据库等二次验证缺点一旦签发就不受服务端控制想要更新必须生成一个新的token代码pom引入有两种用的比

2022-01-15 14:37:09 396

原创 【职场】近期工作感悟

入职一个多月了,自我感觉和领导还处于磨合期,记录一下自己最近遇到的事情和可以提高的地方,警醒一下自己。事件只说很小的一个点,我们把表和代码写的差不多以后,领导和我说,给客户加一个账号表,目前可能还不用,先冗余上,于是我啥也没想,就直接设计了这么一张表:CREATE TABLE `customer_account` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id/账号id,', `customer_id` bigint NOT NULL C

2022-01-08 17:53:21 3210

原创 springboot整合kafka,kafka消息过滤

需求出于成本考虑,我们只使用了两个topic,测试环境一个,线上一个,然后大家的消息都发到同一个topic里,所以在消费时,就需要实现消息过滤。kafka是没有tag等功能的,所以过滤只能在消费端实现。下面直接上代码代码配置文件spring: kafka: bootstrap-servers: 127.0.0.1:9092 # kafka连接接地址 # client-id: # 发送请求时传给服务器的id consumer: topic: TEST_XX

2021-12-23 15:25:22 5981 1

原创 【JAVA】反射获取对象/LIST中对象属性

背景照着这篇文章Springboot敏感字段脱敏敲了一下例子,然后有一些需要注意的地方,这里记录一下。代码首先是需要引入的依赖项,如下: implementation 'org.assertj:assertj-core:3.21.0' implementation 'org.springframework:spring-aspects:5.3.13' implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.4

2021-12-22 17:25:29 2914

原创 【如何】guava的RateLimiter使用

为什么要限流在调用一些第三方的接口时,他们会有一些调用频率的限制,比如每秒不能超过多少次,这种时候,就需要用到限流的工具。定义还是给一个定义出来:在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流缓存 缓存的目的是提升系统访问速度和增大系统处理容量降级 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开限流 限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理

2021-12-17 12:13:03 1610 1

原创 java的锁和zookeeper的锁

java公平锁使用方式 @Test private void TestLock(){ ReentrantLock reentrantLock = new ReentrantLock(true); //加锁 reentrantLock.lock(); //解锁 reentrantLock.unlock(); }非公平锁使用方式 @Test private void TestLock

2021-12-05 17:54:29 1586 1

原创 Spring父子容器

目录什么是父子容器什么是容器如何形成父子关系父子容器的特点父子容器的作用自己实现一个什么是父子容器什么是容器当我们使用spring的时候,我们经常会提到一个概念,IOC容器,IOC容器就是具有依赖注入功能的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IOC容器进行组装。在Spring中BeanFactory是IOC容器的实际代表者。我们还常常看到一个问题,就是“Spring中BeanFactory和Applicat

2021-11-28 17:25:51 788 1

原创 【java】线程和线程池

线程首先明确一下,我们最经常听到的一句话,一个进程可以对应多个线程,一个线程只能属于一个进程。在JAVA里,JVM 中的线程与操作系统的线程是一对一的关系,所以在 JVM 中每创建一个线程就需要调用操作系统提供的 API 创建线程,赋予资源,并且销毁线程同样也需要系统调用。为什么我们需要多线程呢?就现在的操作系统来说,天然的就是多进程/线程处理任务,最常见的,我们的电脑,可以处理word的时候听音乐,看电视等等,并不是看起来同一时刻只能做一件事。至于多线程/进程的原因随着技术发展,cpu的运行速

2021-11-09 16:04:42 370

原创 【算法】二叉树相关算法

标题二叉树的遍历前序遍历中序遍历后序遍历深度优先遍历DFS广度优先遍历BFS层级遍历深度二叉树的深度二叉搜索/查找树构建验证查找假设我们的二叉树长这个样子先定义一下我们的节点@Datapublic class TreeNode { int val; //左子树 TreeNode left; //右子树 TreeNode right; //构造方法 TreeNode(int x) {

2021-11-05 16:34:51 237

reqrcode和qrcode

js生成二维码和解析二维码需要的js文件

2023-04-08

空空如也

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

TA关注的人

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