自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

茅坤宝骏氹的博客

Learning and Review。转载文章来源网络,转载链接不一定是原文,如有侵权请联系删除

  • 博客(2389)
  • 收藏
  • 关注

原创 博客文章列表(二)——算法、数据结构、数据库、ABCD

七、编程基础数据结构详情列表算法 详情列表算法.排序 详情列表算法.加密 ...

2018-09-22 11:10:26 550

原创 博客文章列表(一)——JAVA

一、成长系列面试 详情列表编程难题 详情列表java总结 详情列表java技能 ...

2018-09-22 11:06:30 798 6

原创 Java Jenkins Api

一、Maven<dependency> <groupId>com.cdancy</groupId> <artifactId>jenkins-rest</artifactId> <version>0.0.20</version></dependency>github地址:https://github.com/cdancy/jenkins-rest如果需要最新的代码版本,则拉取源码编译安装

2021-11-14 21:28:47 762

原创 Java 证书pem转KeyStore、jks文件

一、服务端pem转KeyStore CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); FileInputStream caInputStream = new FileInputStream(caPath); List<X509Certificate> caList = certificateFactory.generateCert.

2021-10-24 00:37:28 27

原创 Java RSA私钥的格式pkcs1和pkcs8、PrivateKey转换

()一、私钥格式(1)pkcs1格式:-----BEGIN RSA PRIVATE KEY-----...-----END RSA PRIVATE KEY-----(2)pkcs8格式:-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----pkcs1私钥生成openssl genrsa -out pkcs1.pem 1024pkcs1转pkcs8私钥 :openssl pkcs8 -in pkcs8....

2021-10-17 16:38:49 121

原创 Java SSL与TLS客户端证书配置

一、证书存储格式1、pem格式:pem、crt、key。编码方式base64、pkcs1、pkcs82、p123、jks(依赖jdk版本,小版本差异会报错)二、TLS安全概念(1)PKIPKI是 Public Key Infrastructure的简称,意思是公钥基础设施。公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。通过证书和秘钥来确认通讯双方是否可信任。(2)CACA是Certificate Authority的简称,即证书的签发机构

2021-10-17 15:52:08 33

原创 Java 并发总结——AQS

一、AQSJava并发包(JUC)中提供了很多并发工具,ReentrangLock、Semaphore,它们的实现都用到了一个共同的基类——AbstractQueuedSynchronizer,简称AQS。AQS是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLock,SynchronousQueue,FutureTask等皆是基于AQS的(1)基本实

2021-08-01 21:40:22 122

原创 Java 并发总结——进程与线程

一、线程(1)线程与进程进程是一个实体,每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可

2021-08-01 21:38:32 119

原创 Java 并发总结——线程池

一、线程池在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程(1)线程池的作用1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。3、提高线程的可管理性。(2)常用线程池ExecutorService 是主要的实现类1、newSingleThreadExecutor创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务, 保证所有任务按照指定顺序(FIFO,

2021-08-01 21:37:25 90

原创 Java 并发总结——高并发与同步锁

一、线程(1)线程与进程进程是一个实体,每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可

2021-08-01 21:08:33 67

原创 DNS总结

一、DNS(1)简介域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 协议也是应用层的协议,DNS 使用客户-服务器模式运行在通信的端系统之间,在通信的端系统之间通过下面的端到端运输协议来传送 DNS 报文。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。(2)DNS服务器1、本地域名服务器LDNS

2021-08-01 15:32:41 53

原创 SpringCloud总结

一、SpringCloud(1)简介Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,做到一键启动和部署。(2)设计目标协调各个微服务,简化分布式系统开发。(3)优点1、组件丰富,功能齐全。Spring Cloud 为微服务架构提供了非常完整的支持。2、Spring Cloud 社区活跃度很高,教程很丰富,遇到问题很容易找到解决方案3、服务拆分粒度更细,耦合度比较低,有利于资源重复利用,有利于提高开发效率

2021-07-16 00:23:52 77

原创 计算机网络总结

一、计算机网络体系(1)OSI分层 (7层)物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。(2)TCP/IP分层(4层)网络接口层、 网际层、运输层、 应用层。(3)五层协议 (5层)物理层、数据链路层、网络层、运输层、 应用层。二、五层协议(1)应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。HTTP协议超文本传输协议(HT

2021-07-14 22:23:15 111 3

原创 Mybatis总结

一、Mybatis(1)简介MyBatis 是一款优秀的持久层框架,一个半 ORM(对象关系映射)框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects)为数据库中的记录。(2)优点1、基于SQL语句编程,相当灵活。SQL写在XML中,解除sql与程序代码的耦合,便于统一

2021-07-13 23:10:22 79

原创 SpringBoot总结

一、SpringBoot(1)简介SpringFramework:最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。使用 DI 或者是 IOC 的时候,可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。Spring MVC:提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。SpringBo

2021-07-11 21:26:14 60

原创 Spring MVC总结

一、Spring MVC(1)介绍Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架。通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。(2)优点1、可以支持各种视图技术,而不仅仅局限于JSP;2、与Spring框架集成(如IoC容器、AOP等);3、清晰的角色分配:前端控制器(dispatcherServlet) ,请求.

2021-07-11 19:09:41 66

原创 Spring Aop总结

一、什么是AOP面向方面的编程(AOP)是一种编程技术,是面向对象编程的补充,它也提供了模块化。在面向对象编程中,关键的单元是对象,AOP的关键单元是切面,或者说关注点。一些切面可能有集中的代码,但是有些可能被分散或者混杂在一起,它允许程序员模块化横切关注点或行为,这些问题或行为跨越典型的责任分工,例如日志记录和事务管理。二、关注点和横切关注点(1)关注点应用的模块中实现的行为。关注点可以被定义为:我们想实现以解决特定业务问题的方法。(2)横切关注点贯穿整个应用程序的关注点。像

2021-07-11 11:38:51 82

原创 Spring总结

一、注解二、设计模式设计模式9种:简单工厂、工厂方法、单例、适配、装饰、代理、观察者、策略、模板三、

2021-06-26 14:27:11 77

原创 Java JVM总结

一、jvm参数1)内存-Xms-Xmx-Xss-Xloggc:file-Xprof-XX:+DisabledExplicitGC-XX:PreBlockSpin-XX:CompileThreshold2)Parallel-XX:SurvivorRatio-XX:PreTenureSizeThreshold-XX:MaxTenuringThreshold-XX:+ParallelGCThreads-XX:+UseAdaptiveSizePolicy.

2021-06-21 22:12:40 87

原创 常用解题算法总结

一、四大基本算法分治法动态规划贪心算法穷举法二、其他算法异或法和差法头尾双指针快慢指针三、算法的复杂度优先级 算法 时间复杂度 空间复杂度 1 O(1) 0或O(1) 2 O(N) 0或O(1) 3 O(NlogN) 0或O(1) 4 O(N) O(N) 5 O(NlogN) O(N) 6 ...

2021-06-11 21:33:29 95 1

原创 Java基础总结

mysql一、存储引擎区别MyISAM专注性能,主键索引和辅助索引是独立的InnoDB专注事务,支持事务、行锁、外键、聚集索引① 是否有事务操作?有,InnoDB。②是否存储并发修改?有,InnoDB。③是否追求快速查询,且数据修改较少?是,MyISAM。④是否使用全文索引?如果不引用第三方框架,可以选择MyISAM,但是可以选用第三方框架和InnDB效率会更高。InnoDB四种事务隔离级别:读未提交(脏读)、读提交(不可重复读)、可重复读(幻读)、串行化事务特性:ACID二、.

2021-06-08 21:25:49 102

原创 数据结构总结

一、数组1、寻找数组中第二小的元素2、找到数组中第一个不重复出现的整数3、合并两个有序数组4、重新排列数组中的正值和负值二、栈1、使用栈计算后缀表达式2、对栈的元素进行排序3、判断表达式是否括号平衡三、队列1、使用队列表示栈2、对队列的前k个元素倒序3、使用队列生成从1到n的二进制数四、链表1、反转链表2、检测链表中的循环3、返回链表倒数第N个节点4、删除链表中的重复项5、合并链表五、图实现广度和深度优先...

2021-06-06 20:44:26 98

原创 linux总结

linux一、查看cat, tac, nlmore, lesshead, tail二、登录用户w, who, users, last, lastb, whoami, who am iid三、用户useradd, userdel, usermod -s -d -g, newusersgroupadd, groupdel, groupmod -g -n /etc/grouppasswd -l -u -d -f /etc/passwd,pwconv /etc/sh...

2021-05-29 21:43:02 104

原创 mysql总结

mysql一、存储引擎区别MyISAM专注性能,主键索引和辅助索引是独立的InnoDB专注事务,支持事务、行锁、外键、聚集索引① 是否有事务操作?有,InnoDB。②是否存储并发修改?有,InnoDB。③是否追求快速查询,且数据修改较少?是,MyISAM。④是否使用全文索引?如果不引用第三方框架,可以选择MyISAM,但是可以选用第三方框架和InnDB效率会更高。InnoDB四种事务隔离级别:读未提交(脏读)、读提交(不可重复读)、可重复读(幻读)、串行化事务特性:ACID二、.

2021-05-29 21:38:04 111

原创 java 集合总结

一、集合类型List Queue Set MapList Queue Set 实现Collection接口二、ListList 存储方式 初始容量 容量增长 同步方式 ArrayList 数组 10 oldSize + oldSize/2 Vector 数组 10 oldSize + oldSize synchronized LinkedList 链表 ...

2021-05-29 21:23:55 95

原创 redis总结

一、集合类型List Queue Set MapList Queue Set 实现Collection接口二、

2021-05-29 20:53:31 126

原创 阿里云OSS存储

阿里云OSS存储,文件上传与文件删除maven依赖: <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version> </dependency&gt

2021-05-22 22:14:24 88 1

原创 SpringCloud Consul自定义服务注册

SpringCloud自定义consul服务注册器,获取特定的本地地址进行注册,注销的时候检查并注销其他无效实例package com.mk.springcloud.config;import com.ecwid.consul.v1.ConsulClient;import com.ecwid.consul.v1.agent.model.NewService;import com.ecwid.consul.v1.health.HealthServicesRequest;import com.e

2021-05-22 21:53:04 108

原创 SpringBoot shedlock MongoDb锁配置

配置mongo的表进行锁任务管理maven依赖包 <dependency> <groupId>net.javacrumbs.shedlock</groupId> <artifactId>shedlock-spring</artifactId> <version>2.5.0</version> </depen.

2021-05-22 15:40:19 166

原创 MongoDB SpringBoot ObjectId序列化json为String

mongodb的ObjectId默认序列化为bean对象,如果需要转换为json字符对象,配置如下@Configurationpublic class JacksonConfig implements InitializingBean { @Resource private ObjectMapper objectMapper; @Override public void afterPropertiesSet() { SimpleModule si.

2021-05-22 15:36:51 435

原创 MongoDB SpringData去掉自动生成的_class字段

使用定义的Bean类插入数据,spring data默认会给数据增加一个_class字段存储类的全名,这里需要去除类型@Configurationpublic class MongoConverterConfig implements InitializingBean { @Autowired private MappingMongoConverter mappingConverter; @Override public void afterPropertiesSet() throws.

2021-05-22 15:32:52 90 1

原创 MongoDB新建或删除索引

一、创建索引创建正序索引BasicDBObject indexOptions = new BasicDBObject();indexOptions.put("fieldName", 1);mongoOperations.getCollection(getTableName(modName)).createIndex(indexOptions);创建逆序索引BasicDBObject indexOptions = new BasicDBObject();indexOptions.pu

2021-05-22 15:17:49 45

原创 MongoDB投影字段

一、投影表字段投影只包含a_field和b_field字段Aggregation aggregation= Aggregation.newAggregation(Aggregation.project("a_field", "b_field"));List<Map> list = mongoOperations.aggregate(aggregation, "table", Map.class).getMappedResults();二、投影排除字段排除a_field和.

2021-05-22 14:30:11 104

原创 MongoDb连接表的查询

一、外键关联a_table关联b_table通过a_table的a_field=b_table的b_field,在a_table生成lookup_field字段存储关联的b_table数据MongoOperations mongoOperations = ...; LookupOperation agg = Aggregation.lookup("b_table", "a_field", "b_field", "lookup_field");Ag

2021-05-22 13:03:10 179

原创 MongoDB嵌套数组,多维数组查询

一、嵌套数组数据:{ "arrays": [ [ { "key": "index" }, { "key": "index1" } ] ]}二、多维数组数据:{ "arrays": [ [ { "key": "index" }, { "key": "index1" } ] .

2021-05-21 22:36:47 306 1

原创 Spark SQL(十)之基于物品的推荐公式

一、基于物品的推荐公式其中,S(j,K)表示与物品j最相似的K个物品,N(u)表示用户u喜欢的物品集合,Rui表示用户u对物品i的评分。二、代码public class ItemCFRecommendApp { public static void main(String[]args){ SparkConf sparkConf = new SparkConf(); sparkConf.setAppName("ItemCFRecommendA.

2021-05-05 23:09:01 80

原创 Spark SQL(九)之基于用户的推荐公式

一、基于用户的推荐公式其中,S(u,K)表示与用户u最相似的K个用户,N(i)代表喜欢物品i的用户集合,rm表示用户v对物品i的评分。二、代码public class UserCFRecommendApp { public static void main(String[]args){ SparkConf sparkConf = new SparkConf(); sparkConf.setAppName("UserCFRecommendAp.

2021-05-05 22:55:12 71

原创 Spark SQL(八)之基于物品的相似度公式

一、基于物品的余弦相似度公式一其中,i、j表示任意两个物品,N(i)表示喜欢物品i的用户数,N(j)表示喜欢物品j的用户数。代码:public class ItemCFApp { public static void main(String[]args){ SparkConf sparkConf = new SparkConf(); sparkConf.setAppName("ItemCFApp"); sparkConf.setM

2021-05-05 22:03:58 99

原创 Spark SQL(七)之基于用户的相似度公式

一、基于用户的余弦相似度公式一其中,u、v表示任意两个用户,N(u)表示用户u喜欢的物品集合,N(v)表示用户v喜欢物品的集合。代码public class UserCFApp { public static void main(String[]args){ SparkConf sparkConf = new SparkConf(); sparkConf.setAppName("UserCFApp"); sparkConf.set

2021-05-05 21:53:47 106

转载 Arthas - 开源 Java 诊断工具

转载自Arthas使用Authas — 开源的java诊断工具下载安装authas是一个jar包,可以直接下载后运行wget https://alibaba.github.io/arthas/arthas-boot.jarjava -jar arthas-boot.jar就可以启动起来。启动后,authas会自动检测存在的java进程,这时候需要选择你想要诊断的进程,回车即可。如下图所示:如果不知道某个java进程的详情,可以使用jps -mlVv或p...

2021-04-17 10:39:04 120

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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