自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 gdb调试

如果你用指针(或地址)来设置观察点,一定要解引用,* 指针才是对指针所指向的变量进行观察如果不解引用,那就是对指针变量本身(地址)进行观察。另外,如果你观察一个临时变量或表达式,当它的生命周期结束的时候,对应的观察点也就失效了。查看某个变量或表达式的值,和 p 命令类似,但是 display 会一直跟踪这个变量或表达式值得变化,每执行一条语句都会打印一次变量或表达式的值。函数调用时,会在内存中产生一块栈帧 保存函数调用位置、函数参数、函数内部的临时变量。(gdb)p &val 打印变量 val 的地址。

2023-07-24 15:09:47 12

原创 【无标题】

为什么有了线程还需要协程。

2023-06-04 19:27:08 629

原创 docker 网络

Docker 容器内部运行的应用间需要交互依赖大量不同的网络,幸运的是,容器与容器之间、容器与外部网络 与VLAN(Virtual Local Area Network 虚拟局域网)之间的连接都有解决方案。Docker网络架构源自一种容器网络模型(CNM)方案,此方案开源并支持插式连接。Libnetwork是Docker对CNM的一种实现模式,提供DOcker核心网络架构全部功能。不同驱动可以通过插拔式接入Libnetwork,提供定制化的网络拓扑。

2022-09-09 01:18:12 428

原创 docker-compose

这章以实例为主,学习他的语法,以及docker-compose的使用思路。下面简单的例子可以通过docker-compose官网获得。该🌰涉及的语法不是全部,但是理解他的设计架构后后面的一些参数也能自行学习了。

2022-09-02 01:23:00 587

原创 docker提升效率方法----- 持续更新

总结整理下优化docker的方法,持续更新

2022-09-01 01:31:09 1171

原创 docker镜像学习

该章的笔记只对稍微难一点的知识点做记录,简单的就不会进行赘述了。

2022-08-31 00:37:51 570

原创 docker引擎学习

docke引擎介绍--发展历史、引擎组件、运行逻辑。

2022-08-30 01:11:46 367

原创 研读企业DevOps实践,以及及时总结。

背景:在公司的Secdevops岗位干了一个多月,每天的工作就是集成产品,除了最直观的一些linux命令、docker使用、根据日志查找错误、看文档等能力以外,感觉并没有其他的一些长进。前几天积攒的要努力的想法今天终于是爆发了,从今天开始,下班后好好的学习一些知识,就从 Enterprise DevSecOps: New Series开始,好好地研读,增加对这个行业的了解。这里写自定义目录标题1、基本原则1.1 导语1.2 该篇文章的意图1.4 DevOps Vs DevSecOps1、基本原则本章

2022-05-06 23:09:22 257

原创 Mysql中RR级别下,为何能保证数据数据可重复读?

1、重复读是谁锁住了Select 的结果级?间隙锁—Next-Key:模拟运行重复读:Session 1 (红色框): select;Session 2 (蓝色框):UPDATA WHERE ID 2(BB) COMMIT;1、Session 1 在 2 发生后进行select读取:B虽然变成BB了,但是间隙锁征用UNDO块。Session 1读取数据时隙锁不从数据块读数据,而是从UNDO块上读取数据。(这叫间隙锁扩大),这时UNDO块变成了持久块。2、Session 2 提交修改事务后重新

2021-12-26 17:28:51 591

原创 记录github与vscode通过ssh链接的配置过程。

环境与工具电脑系统:macOS准备工具:Visual Studio Code + GIt1. 配置自己git的用户名和邮箱(base) tangjing@tangjingdeMacBook-Air ~ % git config --global user.name tangjing(base) tangjing@tangjingdeMacBook-Air ~ % git config --global user.email [email protected] 查看ssh是否具有公钥和私钥

2021-12-18 15:27:51 1002

原创 Spring actuator Jolokia XXE RCE实现(持续更新)

背景:今天想实践一下actuator Jolokia XXE RCE的复现;复现过程中出现了很多的名词之前是没接触到的,就一此次复现做一个契机,补充一下自己需要知道的知识点文章目录搭建HTTP服务器。供JMXConfigurator中提供的“reloadByURL”方法,引入外部xml文件。解析外部引入的xml,对插入JNDI部分解析并进行创建JNDI服务需要了解的知识点如下:其中的每一点我基本上都会先一篇文章去整理。思维导图地址地址:https://www.processon.com/mindm

2021-12-02 13:46:22 990

转载 RMI的实现,以及实战

RMI 介绍以及原理RMI介绍:远程方法调用(RMI)顾名思义是一台机器上的程序调用另一台机器上的方法。这样可以大致知道RMI是用来干什么的,但是这种理解还不太确切。RMI是Java支撑分布式系统的基石,例如著名的EJB组件。RMI是远程过程调用(RPC)的一种面向对象实现,RMI底层是通过socket通信和对象序列化技术来实现的。RMI原理:RMI的目的就是要使运行在不同的计算机中的对象之间的调用表现得像本地调用一样。在 RMI 中, 远程服务的定义是存放在继承了 Remote 的接口中。远程

2021-12-01 15:16:40 479 2

原创 Sql注入(Sqli)

前言: 前辈给的例子,我们进行分析目录大纲代码结合实际场景分析1、 产生注入语句解决方法:使用PreparedStatement转义需手动解决的问题防止 %23出现问题大纲思维导图地址代码结合实际场景分析SQL注入 攻 击 只 对 Statement有效, 对 PreparedStatement 是无效的1、 产生注入语句核心代码 Statement statement = con.createStatement(); String sql = "s

2021-11-30 16:34:25 487

原创 一条mysql在MysqlServer层(从连接池到查询缓存)中的执行的过程

我使用的是流程图的形式进行呈现 一条sql语句从Sql接口–>查询解析器–〉查询优化器–>查询缓存 中间mysql数据库如何执行的;文章目录mysql体系结构全图java连接Mysql过程,以及数据库连接池mysql-->查询缓存的过程源文件链接mysql体系结构全图java连接Mysql过程,以及数据库连接池mysql–>查询缓存的过程源文件链接https://www.processon.com/diagraming/61a437e30791296e0a1d

2021-11-29 14:45:09 577

原创 内存屏障和JVM相关指令,内存布局等

目录保证特定情况下不乱序VolatileVolatile的实现细节(字节码层(源码刚编译完,变量包含Access flage)、JVM层(虚拟机读到flage的时候明也就是 Access flage))Synchornize的实现细节对象在内存中的存储布局,以及大小 ?对象大小(64位机)普通对象包含4个部分数组对象实验指针压缩。对象头具体包括什么?标志位分析 -- 联合Synchronized锁升级对象的Hashcode。轻量级锁分带年龄偏向锁对象如何定位?1、句柄池2、直接指针(hotspot使用该

2021-11-25 14:56:11 880

原创 JAVA反射

背景:以前都是零零散散的去学习反射,对于用法很模糊、还有原理也是只知一二,最近在学习Sprint源码,IOC容器中创建对象都是使用反射进行创建对象的,还有动态代理也是使用了反射,足以证明java反射对于以后的高阶学习是一个极其重要的部分。所以这期博客用来整理JAVA反射相关的知识。整理将用,1、JAVA反射原理;2、用法;3、使用场景;4、反射带来的优点和劣点;5、使用场景,这几个纬度进行整理!文章目录为什么要用JAVA反射JAVA反射原理反射运行流程类加载过程JAVA反射的基本使用通过反射获取Cl

2021-11-23 19:11:07 813 1

原创 几种树结构的总结

背景:之前一直都在说什么什么树,但是除了基本的二叉树概念的概念。稍微一些具体的树的结构、特性、使用场景等,都是很模糊的。所以今天来整理下出现频率高的几种树的知识。文章目录总览二叉查找树平衡二叉树VAL树(左子树、右子树深度相差为1----- 比较严格的)左旋右旋双旋红黑树(任意节点到其子节点中,黑色节点数目保持一致)总结总览这里引用下大牛整理的图.二叉查找树二叉查找树,又称为二叉搜索树。非平衡结构若左子树不空,则左子树上所有结点的值均小于它的根结点的值;若右子树不空,则右子树上

2021-11-21 22:25:39 671

原创 小米一面带来的总结

这里写自定义目录标题以往的学习模式造成这种模式的原因这次面试的回顾和总结反思与后面学习路线,与心态背景:昨天小米面试没通过,确实对我学习的路线产生了一些反思;这篇博客主要是对我现在学习的心态的一个分析、总结,还有对以后学习模式的改变。以往的学习模式正二八经学习java技术栈是在今年的6月份开始的。开始时我只了解一些基本的JVM内存分布状态,简单的Springboot使用。而其他的Mysql这些几乎只会简单的使用。因为看到实习的时候身边的人都懂的好多,于是心态就开始浮躁起来了。短期提升最好的方式就是背!

2021-11-19 12:58:33 4479

原创 ES 的增删改查

这里写目录标题1 原生ES使用部分(在kibana上操作)1.1 索引的建立、查看、删除1.1 文档的crud操作2 删除某文档数据 DELETE /product/_doc/1DSL:构建复杂的查询条件1.1.1 QuertString:查询索引某个字段含有keywords的文档、并可提供分页、排序功能(生产环境用的不多)1.1.2 全文检索(用的多):1.1.3 精准查询 term (exact match)、范围查找range1.1.4 过滤器filter1.1.5 组合查询 bool Que

2021-09-28 18:52:01 1732

原创 ElasticSearch工具类

先把需要用的类注入进来这两个类在meaven导入的时候就注入到spring了 @Autowired private TransportClient transportClient; private static TransportClient client; 根据ID查找elasticsearch是否存在某条数据 /** * 指定ID,查询数据 * @param index * @param type * @param id * @par

2021-08-20 15:10:30 278

原创 工具类:java构建一次post请求并返回结果、从输入流中读取数据

public class StaffInfoUtil { /** * 发送post请求 * * @param params 参数 * @param requestUrl 请求地址 * @param authorization 授权书 * @return 返回结果 * @throws IOException * @author */ public static String send

2021-08-20 14:01:43 783

原创 工具类:内容有大量的html标签,去除html标签

public static String delHTMLTag(String htmlStr) { String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式 String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式 Pattern p_style = Pattern.compile(.

2021-08-20 13:58:34 67

原创 使用Comparable/Comparator实现集合的自定义排序。

自定义List类型,Pair里面有两个int元素:first,Second。List简写为A={[1,2],[1,1],[8,5],[6,3]}。如何对A中所有数据第一个数字进行排序,如果第一个数字相同用第二个数字排序?排序结果为A={[1,1],[1,2],[6,3],[8,5]}使用Comparable接口,在需对比的实体类上实现该接口的 conparaTo方法class Pair implements Comparable<Pair> { private int fir.

2021-08-11 15:14:36 150

原创 AQS的底层原理

AbstractQueuedSynchronizer(AQS)概括一句话为:可快速实现一个同步容器(比如同步阻塞队列).ReadWriteLock、ReentrantLock,或者 CountDownLatch 与 Semaphore,甚至是线程池类 ThreadPoolExecutor 都继承了 AQS他的作用: AQS的实现,依赖她内部的同步队列(FIFO双向链表),当前线程竞争失败,AQS把当前线程+当前线程等待信息构造成node放入同步队列,同事阻塞该线程,当获取锁的线程释放资源后,A

2021-08-09 09:09:53 325

原创 为什么要重写hashCode()、equals()。

借鉴一下大佬的文章:https://zhuanlan.zhihu.com/p/78249480场景当对HashMap进行操作的时候 我们想完成这样的目的:在HashMap的“键”部分存放自定义的对象。原始get首先经过Hashcode值判断、在经过equals()判断才能取到值。(不对的地方请指正)import java.util.HashMap;2 class Key {3 private Integer id;4 public Integer getId

2021-08-03 09:39:26 54

原创 java后端实现,下载自定义生成EXCEL表格

定义Excel表结构设置输出文件名、设置协议头public void fileDownload(HttpServletResponse response, String chooseDate) { Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyMMdd"); String fileName = "Date" + simpleDateFormat.fo

2021-07-28 15:24:36 718

原创 后端使用StringBuilder 接收HttpServletRequest信息,并用JSONObject转成Json格式

后端使用StringBuilder 接收HttpServletRequest信息,并用JSONObject转成Json格式前端发送数据格式{ "alarm_ip": "102.168.9.9","alarm_time": "2020-03-22 00:00:00", "alarm_level": "2", "alarm_state": "2","alarm_id": 11}后端接收request 并解析请求的信息 BufferedReader br = null; S.

2021-07-16 15:29:56 243

原创 mybatiues的#{}和${}的区别

无论是工作还是面试之中,这个点经常被问到。文章目录结论实例查看输出日志结论先直接得结论:1、使用#{}语法,主要是mybatis会有一个预编译产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义,可以防止sql注入;2、 使用${}语法不能防止sql注入,主要使用是在一些不能预编译的地方.实例实例查看输出日志${} 输出${}:可以看到 $ {}是直接被替换的,并没有一个预编译的过

2021-07-05 09:31:28 46

原创 Spring中定时功能 -------- @Scheduled注解的使用

场景:定时从Zabix监控系统中更新数据文章目录配置配置多线程执行Scheduled定时参数配置1、 在启动类上增加注解@EnableScheduling,开启功能@EnableScheduling//开启定时器@SpringBootApplication@MapperScan("com.hkvision.hire.mapper")public class HireApplication { public static void main(String[] args) {

2021-06-26 11:11:10 136

原创 MabatiesPluse使用(二)使用IService接口、使用LambdaQueryWrapper构造条件

之前学习的MP是直接用接口继承BsmMapper extends BaseMapper < BsmBizAlarm > ,然后在ConTroller层直接使用,但是在实际项目中我们还是要把mapper层、Service层分清楚的。本篇文章旨在整理使用MP实现项目的流程 文章目录1、Mapper层SerVice层Service.Impl层Controller层1、Mapper层在mapper层定义。泛型对应的是需要操作的模型(pojo类,它对应的是数据库的表)。public int..

2021-06-26 08:42:38 923

原创 后端数据交互传输的格式 以及优雅的写法(二)

场景:针对分页页面;我主要负责的bsm(异常监管系统),在查看他第一个功能分页查询,前后端交互的时候如何对PageRequest和PageResponse进行封装呢?首先看下我们Controller的格式文章目录PageRequest(Bsmpage+BaseRequest)封装 -- 使用统一封装格式前端所给的json文件后端PageRequest接受类设置接收param的类--拟用BizAlarmVo类接收。细节后端接收时间戳的格式后端接收时间的范围总结

2021-06-25 16:37:26 472

原创 SpringCloud学习 相关概念学习(一)

第一个接触到的项目就是用SpringCloud开发的系统 ,一直只知道个大概,所以得找时间学习下。文章目录Spring Cloud是什么?统一管理区分不同环境的配置配置动态实时刷新配置的权限控制配置的版本控制配置的灰度发布注册中心服务网关负载均衡Spring Cloud是什么?Sping Cloud为开发者提供了一套快速开发分布式系统的组件。特点: 统一管理、区分环境、实时刷新、权限控制、版本控制、灰度发布统一管理配置的统一管理:配置中心服务端负责配置的管理(新增、修改、删除、发..

2021-06-24 11:45:41 54

原创 Spring事务注解的使用

1、在 bs> SpringBoot作用 :提供了非常方便的事务操作,通过注解就可以实现事务的回滚,非常方便快捷实现事务的两种实现方法编程式事务管理:编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。(我基本上没用过)声明式事务管理:推荐使用建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务

2021-06-23 08:47:23 1554

原创 SpinrgBoot+MongoDB

文章目录配置简单使用mongoTemplate使用Aggregation 管道进行数据处理总结配置配置yml信息 Spring: data: mongodb: uri: mongodb://localhost/tj设置pojo类@Data@NoArgsConstructor@AllArgsConstructorpublic class Order implements Serializable { private String id; //订单

2021-06-22 14:08:15 71

原创 Swagger --API框架

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?一、 Swagge介绍在SpringBoot项目中使用Swagger二、配置Swagger配置API文档的 不同分组总结前言一、pandas是什么? 最近开始接触公司的源码了,一些规范化的操作,让我有些陌生,不懂为什么要这样取用,比如一些注解,比如@ApiModelProperty(“模型字段类型”),@ApiParam() @RequestBody RequestData requestDat

2021-06-21 14:50:28 492

原创 MP实用指南--自用(一)

@TOC 乐观锁、悲观锁乐观锁:十分乐观,他认为不会出现问题,无论干什么都不去上锁! 只会在数据提交的时候进行检验。 如果出现问题, 再次更新测试值(这个操作称为自旋)CAS属于乐观锁;乐观锁具体实现方式:取出记录时,获取当前的version — version=1(此时相当于CAS中 获得旧预期值A=version )更新时,带上这个version (查找数据库中 version是否为1的数据)执行更新时, set version = newVersion where

2021-06-19 16:00:32 202

原创 快速搭建一个Spring+Mybaties框架

最近上手项目发现自己大框架都忘了,于是好好整理下搭框架的过程文章目录前言值得注意的是:总结前言值得注意的是:1、配置文件Application.yaml 中 指定sql映射文件位置classPath:是以Resource为根目录。 而且一定开头要带“/”该路径是xml写增删改查的地方的 # 指定sql映射文件位置 mapper-locations: classpath:/mapper/*.xml2、xml文件中namespace:填写映射当前的Mapper接口se

2021-06-18 20:12:53 87

原创 Sprin配置类使用、分析以及注解类的语法

马上要上手做项目了。以前都是之间导入搭好、配置好的框架直接写CRUD;但是今天在尝试手动搭建框架,进行配置信息的时候,发现如何将配置信息抽取出来,提高维护性这一操作既陌生有觉得重要,于是今天要来好好学习使用Spring中配置类的使用!文章目录自定义注解注解类语法:(注解生命与注解类实现)元注解(修饰注解的注解)@target@Retention使用自定义注解自定义扩展信息(实操)读取yaml文件总结自定义注解注解类语法:(注解生命与注解类实现)注解类的声明部分:自定义注解类,在创建时,自动继承

2021-06-18 12:28:34 93

原创 MongoDB简单学习、使用。

提示:最近公司需要使用mangodb;于是需要记录下常用的操作。文章目录前言保存的数据类型增删改查首先是增加语句增加一条文档insertOne增加多条文档insertMany对比两种插入查找数据查找所有数据根据条件查找根据范围查找返回限定字段对返回的结果进行加工(返回检索的数据个数、返回限定数量的文档个数、对返回结果得到按设定字段大小排序后的文档)、对返回值进行去重;对数据进行修改(Updata)删除数据可视化数据前言众所周知、monggoDB是非关系型数据库;那么在进行增加操作时候;表(在这

2021-06-16 19:22:24 73

原创 git的基本使用

工作第一天,先学习项目管理工具git文章目录安装使用安装 这位大哥讲的很详细使用基本使用的功能命令以及什么时候使用都在图画中;具体细节看 这里。

2021-06-16 16:30:53 57

空空如也

空空如也

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

TA关注的人

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