自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git reset与revert的区别

reset:回滚到某个commit,此commit之后的所有commit都会一同跟着消失回退。revert:将某一个commit反做,此commit内容会被撤销,并生成一个全新的commit,此commit保留了撤销的commit之前之后的其他commit。

2023-11-28 16:58:12 77

原创 mongo-nosql-语法总结(分组聚合)

比如对比sql:select userid,articleid from test where userid in("1","2") group by userid。5.sum聚合-求数值总和求某个数值总和,userid分组字段[可以用于多字段聚合],{"$sum":$price}表示求price合计。9.聚合分组排序 对聚合结果进行排序,$sort-排序,avg-聚合结果的别名,1:升序,-1:降序。1.分组后不会展示其他字段, _id为固定写法,userid为分组字段。或者having聚合查询。

2023-11-13 14:34:13 110

原创 自定义日志隔离级别与日志配置文件log4j

【代码】自定义日志隔离级别。

2023-09-19 16:08:49 126

原创 mysql-索引相关

mysql,索引,索引失效

2022-10-18 15:20:27 167 1

原创 如何计算人天

设计了个公司内部的OKR考核系统,里面有一个任务人天的概念,设计了一个公式专门用于计算个人工作任务占的人天。 public static String numDays(LocalDateTime startTime, LocalDateTime endTime, Integer workHour) { if (startTime.compareTo(endTime) > 0) { return null; } Duratio

2022-03-03 15:11:45 2494

原创 消息队列-Kafka

常见的消息队列,有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq等,部分数据库缓存中间件如Redis也可实现消息队列的功能。我对kafka的了解比较多一点,我们来了解一下kafka的机制和原理;Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用 Scala 语言编写,目前是 Apache 的开源项目.它的实现底层是基于zookeeper的,zk上保存着集群的broker,topic,partion这

2022-02-14 13:39:35 973

原创 网络架构与会话

主流的网络模型时OSI七层网络模型,由底层开始依次是:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层;先上一张图:1.物理层就是定义的物理设备标准,如网线接口类型,光纤接口类型等,这一层传输的数据叫做比特,通过传输电流的强弱来识别0和1;2.数据链路层传输的数据叫做帧,我们使用的交换机就是工作再这一层,它的作用是将物理层的数据进行MAC地址的封装和解封装;3.网络层传输的数据叫包,在这一层工作的是路由器,它的作用是将数据链路层的数据进行IP地址的封装和解封装;4.传输层的

2022-02-11 18:16:04 1631

原创 JAVA反射原理与应用

反射在我们的java代码里面非常的常见,可以说是一种非常重要的实现JAVA语言内部逻辑和一些框架功能的技术。在获取类中的方法和字段,JDBC连接,动态代理等都是反射的应用。通过反射,可以获取到的信息主要是:1. Class 类:反射的核心类,可以获取类的属性,方法等信息。 2. Field 类:Java.lang.reflec 包中的类,表示类的成员变量,可以用来获取和设置类之中的属性 值。 3. Method 类: Java.lang.reflec 包中的类,表示类的方法,它可以用来获

2022-02-10 14:23:41 390

原创 异常处理分类

我们在写代码的时候代码可能会报错,或者想抛异常的情况是经常会发生的,这种情况都叫做异常处理,异常处理机制依赖于异常处理器。所有的异常的父类是Throwable,它的子类分为error和Exception。error是报错,是程序运行时操作系统内部错误或者资源耗尽导致的,例如OOM,内存异常。而Exception分为受检时异常(SQLException,ClassNotFund,IOException等)和非受检异常(数组越界,空指针,类型装换异常等)。如图:发生异常之后,处理方式主要是两种,一是

2022-02-10 13:51:22 1170

原创 io/nio

对于io操作我们并不陌生,常见的文件处理流程都有IO操作。先来了解一下NIO。NIO就是多路复用的IO,它主要是由selector,channel和buffer组成,selector可以叫做多路复用选择器,channel是传输数据的管道,buffer是存储数据的缓冲区。下面的图表示的是这三者之间的关系。一个selector可以监听多个Channel。Channel和IO中的stream是一个等级的,例如inputStream,outputStream,不同的是stream是单向的 ,Chan

2022-02-09 14:16:25 216

原创 jvm基本概念-堆

上一边文章大概讲了一遍jvm内存区域的划分和类加载机制,这里接着细说一下JVM内存区域中线程共享区的堆空间。我们已经知道了现在主流的划分是分代收集,堆被划分为了新生代(Eden 区、From Survivor 区和 To Survivor 区)和老年代。 新生代(Eden 区、From Survivor 区和 To Survivor 区)和老年代。 新生代就是用来存放新创建的对象,一般是占堆的三分之一,如果新生代的eden区存放的对象满了,就会触发minorGc,对新生代区进行一次垃圾回收,G.

2022-02-08 16:15:05 174

原创 jvm基本概念-类加载器

我们都知道java文件是不能直接运行在操作系统上的,但是它本身又具备着跨平台的特性这主要的原因就是因为java虚拟机的存在。Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件, 而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。 先上一张图接着我们照着图示来梳理一遍jvm里的一些基本原理:上面的描述中我们大概已经清楚了一些关于java代码的执行过程,.Java文件要被编译成.class文件通过classLoader来加载,最后由执行器来执

2022-02-08 15:43:02 406

原创 第三章:python-selenium 浏览器session持久化

在做selenium自动化脚本的时候,我们可能会对间隔一段时间就重新触发访问网站的流程,这个过程每次都会打开新的浏览器。长期下去我们的服务器内存会被占用调很大一部分。如果我们可以在第一次打开浏览器的时候记录一次浏览器session,那么在下次调用脚本的时候就可以先去获取session,然后还是操作之前打开的浏览器。class ReuseChrome(Remote): def __init__(self, command_executor, session_id): sel

2022-02-08 14:37:57 3648 1

原创 后端接口测试没问题,前端HTTP500错误

项目上线后,线上有个接口一直报500,然是直接再本地请求却没问题,本地直接请求微服务项目地址,报错Exceeded limit on max bytes to buffer : 262144。这个问题是spring的缓冲区溢出造成的,导致问题的请求一般有两种1:接口返回JSON超过256K时报错;2:下载文件接口(返回二进制文件流,Content-Type为application/octet-stream)文件超过256K时报错解决方法: 自定义缓冲区的大小spring: code

2022-01-26 14:04:08 2418

原创 第二章:python-selenium自动化常用方法

python给出了一套完整的操作selenium自动化的模块和方法编写自动化脚本通常需要使用webdriver,requests,os,time等模块webdriver是最基础的模块,选择对应的chrome或者IE浏览器打开网页,配置打开网页的基本信息,网页元素操作都在webdriver中有特定的方法#网页的相关配置def option(): chromeOptions = webdriver.ChromeOptions() chromeOptions.add_experi

2021-07-12 15:29:00 308

原创 第一章:python-selenium自动化基本理论

我们通常使用scrapy来进行一些接口信息读取,数据收集以常用的requests模块举例: 对于一些安全性较高的接口 ,我们在获取数据时需要先进性UA伪造,有的还会验证防盗链,需要对http的基础知识有一定的了解对于selenium而言,它在获取数据时考虑的不是接口,而是直接从网页上获取数据,操作依赖与网页上的各种元素,这要求我们对css js的基础有一定的了解selenium依赖与webdriver,根据我们的需要选择chrome或者IE等浏览器对应的webdriver...

2021-07-12 11:53:22 98 1

原创 NIO-上传视频文件

视频文件上传: @PostMapping("/fileUpload/mp4") public String upload(@RequestParam(value="file",required=true) MultipartFile file, HttpServletRequest request) throws Exception{ String filePath = null; String fileName = file.getOriginalFilena

2021-05-07 14:57:46 165

空空如也

空空如也

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

TA关注的人

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