自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 Mac通过安装包安装NGINX服务

1. Download the latest stable version – [nginx 1.22.0](http://nginx.org/en/download.html).2. Unzip the downloaded package by the command “tar xvzf nginx-1.22.0.tar.gz”.3. “cd nginx-1.22.0”.4. “sudo ./configure”. There is an error displayed:

2022-09-25 11:47:22 860

原创 PG数据库利用游标遍历处理表数据

如下SQL所示,先将有问题的表id找出来,id跟entryid的关系是一对多,下面SQL解决的是同一个id下按照entryid进行seq从1到N的修改。do$BODY$declare fenteryid_cursor refcursor; v_fid bigint; v_fentryid bigint; v_seq int;fid_cursor cursor for -- 找出有问题的id:最大的seq不等于总的分录数时 select id from ( select tio.fid

2022-01-11 19:11:36 2581

原创 ID生成器【雪花算法】

利用雪花算法创建分布式ID,可以很有效的帮助我们获取到一个全局唯一、总体按时间递增的ID,合理的配置几乎不会获取到重复的ID,所以该ID是可以全局使用。下面案例是使用41位时间+10位机器码+12位序列来展示。基于Java版本的源码:package com.java;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * 基于雪花算法生成ID * * @

2022-01-02 18:28:46 950

翻译 Python生成圣诞树

Python生成圣诞树使用Python代码生成一颗圣诞树。效果图如下:代码如下:import turtle as t # as就是取个别名,后续调用的t都是turtlefrom turtle import *import random as rimport sysimport timedef main(): n = 100.0 speed("fastest") # 定义速度 screensize(bg='black') # 定义背景颜色,可以自己换颜色

2022-01-01 17:15:08 4942 6

原创 log4j漏洞复现

最近出现的log4j漏洞问题,抱着好奇的心态来重现下。环境搭建及测试代码本文采用的是SpringBoot 2.2.6版本加一个RMI服务重现BUG,方式是通过在微服务工程里打log日志,以触发远程服务调用漏洞。省略搭建微服务的过程,我使用的是社区版idea 2020.3.4,大家同样使用社区版的话,建议安装Spring assistant插件,可以很方便的搭建Springboot工程。因为目前已经有了新版本的修复,这里建议大家使用Springboot2.2.6.RELEASE版本,其中带的log.

2021-12-20 12:09:51 549

原创 volatile指令重排

什么时候会发生指令重排?先来一个测试指令重排现象,下面这段代码会发生指令重排,也就是JVM优化了执行顺序。/** * 指令重排测试 */public class CommandDisorder { // 当使用volatile关键词修饰变量时,则不会出现指令重排现象 private static /*volatile*/ int a = 0, b = 0, c = 0, d = 0; /** * 测试方式:一次开启两个线程,同时修改变量 */

2021-12-06 20:47:14 407

原创 分批调用函数,解决数据库SQL in超长问题

背景:在使用PG查询时,我们常常会用到in,当in的个数过多时,会发生一个语句超长的问题。错误提示如下:An I/O error occurred while sending to the backend.、Tried to send an out-of-range integer as a 2-byte value: 39887Caused by: org.postgresql.util.PSQLException: An I/O error occurred while sending to th

2021-12-04 13:17:51 2724

原创 idea代码爆红,gradle依然可以正常build

idea代码爆红,gradle依然可以正常build,清掉缓存重启idea依旧没有用相信大家都遇到过这种情况,idea代码红了,导致不能正常的写代码。导致上面的情况有很多,网上很多都建议清空缓存再重启idea即可解决,在某一次,这样的方式我也尝试了很多遍,甚至重启电脑都没有生效。在这里我先说下我的解决方案:统一idea和gradle的版本。一开始我的idea是2021.2.3,gradle版本为6.9,一直有问题,后来单独将idea降到2020.3.4,问题依旧存在。最后将版本号统一为idea:.

2021-11-23 23:42:08 982

原创 controller时间戳转为Date

接口返回转为时间戳1、pom文件添加:<dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-joda</artifactId> <version>2.9.10</version></dependency>2、在application.propertie

2021-10-31 15:55:05 851

原创 PG vs mysql memory model

pg cache 和mysql cache有神马关系,其实它们两者并无直接关系。本文目的是想我之前对这两个关系的理解(OS:我很早之前认为它们是一样的)。PG vs mysql memory model:postgresql os cachepg是一种强依赖os cache的数据库,以此提高查询效率。那么在优化慢SQL的时候,从开发者的视角就会遇到问题,有了os cache,就不能每次重现慢查询,以至于不知道如何去解决问题。其实从DBA的视角来看,除了RT(response time)之外,还有一项

2021-10-24 21:04:30 1248

转载 为什么 Redis 选择单线程模型

能解决两个问题:为什么 Redis 在最初的版本中选择单线程模型? 为什么 Redis 在 4.0 之后的版本中加入了多线程的支持?参考文章:https://draveness.me/whys-the-design-redis-single-thread/

2020-11-06 08:54:59 84

原创 在Java8中debug时观测Stream内部数据流转的方式

你是否也曾觉得Java8好用,编写代码巨简洁、高效,但是调试就很痛苦,总是不能断点到你想要的位置,今天它来了(仅限idea编辑器,eclipse不适用)。大致步骤就是:1、在Stream的第一行打断点;2、点击跟踪当前流链按钮;通过以上两步就可以图形化的看到Stream中的数据关系。若是不明白怎么操作,请参考文中给出的地址,出自idea官网。https://www.jetbrain...

2020-03-27 14:18:02 770

原创 自定义idea工具栏,以Git的pull为例

在使用Git的过程中,发现每次pull代码的时候要么使用Ctrl+T快捷键呼出update project,要么就只能像下图一样通过VCS–>Git–>pull。(当然也可以设置快捷键或者在工程上右键进入Git)。但是我想要直接在工具栏上实现pull按钮的功能,该怎么做呢?先给出实现的效果:实现步骤:1、找到你想放到工具栏哪个位置,我是放在Git那里;路径:Menus ...

2020-03-20 11:29:40 2925 1

翻译 karate在不同场景重用同一变量?结论是不支持

ReferenceError: “id” is not defined in eval at line number 1先给出一段报错,这段报错是因为我在两个场景中使用了id这个字段,由第一个场景赋值,在第二个场景中使用场景一的值,然后抛出了上面那段错误。在查找资料过程中找到这样一段话,翻译成中文就是:如果你想在一个场景中修改一个变量,并在另一个场景使用上一个场景修改后的值,那么你一定是误...

2020-03-18 09:20:42 372

转载 程序员高效学习高效工作

10个编程技巧让你的编程之路少点坎坷此前,机器之心编译了技术作家杰夫·黑尔(Jeff Hale)的一篇文章,该文给所有的编程者提供了 10 个实用建议以及快速解决编程错误的 5 个步骤,其重点内容如下。1、分屏在你学习编程时,可以,一个放你的 Jupyter Notebook,另一个放浏览器,用来查看文档、Stack Overflow 和一些教程。2、屏蔽干扰...

2020-03-18 08:47:46 353

原创 HTTP通过base64图片上传遇到的问题

​在做开放接口的时候,遇到个问题就是如何通过HTTP上传一个图片,考虑到接口的传输只支持json(API程序的限制),所以优先考虑前端先将图片转成base64字符串,再上传字符串给后端。​后端在做上传文件到服务器时,需要用到文件流(inputstream),所以这也可以考虑两种方式,一种是直接上传,另外一种是先将base64转成图片保存到临时路径下,再通过保存的图片拿到文件流。下面具体看下两种获...

2020-03-07 20:09:16 1347 1

原创 Java8中collect特别慢怎么办

Stream的Collect操作在Java8中,普遍会使用lambda表达式,因为其丰富的API让你的代码看起来确实很爽,尤其在对集合操作的时候特别方便,但是也会有注意不到的坑。List<Object> objects = new ArrayList<>(10000);// 伪代码,初始化集合......List<Object> filterObj ...

2020-02-28 09:45:54 1638

原创 初识elasticsearch,入门避坑

安装及启动这里有简单易懂的教程,就不在这里赘诉了,奉上链接。Elasticsearch 入门:安装及启动Elasticsearch注意事项1、不能用root用户运行在启动过程中遇到的问题:不能用root用户运行,这是因为ES对权限的严格控制Caused by: java.lang.RuntimeException: can not run elasticsearch as root...

2020-02-27 08:58:06 150

原创 SpringBoot热部署与热加载基础知识

Java的热部署与热加载联系:1、不重启服务器编译/部署项目;2、基于Java的类加载器。Java的热部署与热加载区别:基本上:1、热部署在服务器运行时重新部署项目;2、热加载在运行时重新加载class。实现原理上:1、热部署直接重新加载整个应用程序;2、热加载在运行时重新加载class使用场景上:1、热部署更多的是在生产环境使用;2、热加载则更多的是在开发环...

2020-02-25 09:35:19 347

空空如也

空空如也

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

TA关注的人

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