自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(122)
  • 资源 (3)
  • 收藏
  • 关注

原创 多线程

线程的基本概念、线程的本状态以及状态之间的关系 新建 (Born) : 新建的线程处于新建状态 就绪 (Ready) : 在创建线程后,它将处于就绪状态,等待 start() 方法被调用 运行 (Running) : 线程在开始执行时进入运行状态 睡眠 (Sleeping) : 线程的执行可通过使用 sleep() 方法来暂时中止。在睡眠后,线程将进入就绪状态 等待

2017-06-20 10:02:19 588

原创 面试整理温习记录1

搜罗和记录

2023-06-10 23:33:23 1145

原创 springData JPA

JAP学习记录

2022-09-18 19:08:08 394 1

原创 Devops

初识DevOps是一种思想和方法论,它包含开发、测试、运维的整个过程!强调软件开发人员与软件测试人员,软件运维、质量保障部门之间有效的沟通与协作。表现:通过自动化的方法管理软件变更,软件集成。目的:使软件从构建到测试、发布更加快捷,可靠,最终按时交付软件...

2022-05-05 17:56:31 564

原创 go语言

Go 语言用途Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。语法当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被...

2020-02-15 20:04:42 271

原创 Greys

1:查看运行的进程sudo docker ps2:进入命令目录sudo docker exec -it dcf8968cb69e /bin/bash3:安装greyscurl -sLk http://ompc.oss.aliyuncs.com/greys/install.sh|sh4:查看运行的进程jps5:启动./greys.sh jarid6:看具体类.方法的踪迹 耗时...

2020-01-16 09:48:58 336

原创 MAC开发环境

sequel pro :智能提示可以设置延迟时间的,默认1.5s,在performance>query editor的auto completion下有delay by的选项。

2019-12-05 17:23:16 154

原创 Elasticsearch

定义ES(elaticsearch)是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。 ES也使用Java开发并使用Lucene(库)作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。应用目的快速的检索相关数据以及统计结果数据...

2019-11-20 18:24:11 227

原创 RocketMQ

介绍RocketMQ的前身是Metaq,当发布到3.0版本时更名。特点如下:1:能够保证严格的消息顺序2:提供丰富的消息拉取模式3:高效的订阅者水平扩展能力4:事实的消息订阅机制5:支持事务消息6:亿级消息堆积能力7:高吞吐(比kafaka略低)环境64位、jdk8+、maven 3.3.+、4g+安装...

2019-10-31 18:40:23 383

原创 分布式锁与幂等性问题

分布式系统由独立的服务器通过网络松散耦合组成。在这个系统中每个服务器都是一台独立的主机,服务器之间通过内部网络连接。分布式系统有以下几个特点:可扩展性:可通过横向水平扩展提高系统的性能和吞吐量。高可靠性:高容错,即使系统中一台或几台故障,系统仍可提供服务。高并发性:各机器并行独立处理和计算。廉价高效:多台小型机而非单台高性能机。互斥性(锁)分布式锁条件(1):存储空间锁是一个抽...

2019-10-12 10:21:07 1259 1

原创 排序算法

简述术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度:一个算法执行所耗费的时间。空间复杂度:运行完一个程序所需内存的大小。稳定性稳定性的好处。排序算法如果...

2019-10-06 14:53:53 190

原创 消息中间件

RabbitMQ架构RabbitMQ是一个分布式系统,这里面有几个抽象概念。broker:每个节点运行的服务程序,功能为维护该节点的队列的增删以及转发队列操作请求。master queue:每个队列都分为一个主队列和若干个镜像队列。mirror queue:镜像队列,作为master queue的备份。在master queue所在节点挂掉之后,系统把mirror queue提升为mas...

2019-10-04 20:56:49 243

原创 分布式id生成器

在高并发或者分表分库情况下保证数据id的幂等性,经常用到的解决方案有以下几种。1:微软公司通用唯一识别码(UUID)2:Twitter公司雪花算法(SnowFlake)3:基于数据库的id自增4:对id进行缓存这里我们以snowflake算法为例snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为...

2019-09-29 09:28:03 282

原创 springCloud

基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的开发工具;Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架;Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。对比dubbo生产者...

2019-09-25 16:53:21 229

原创 不小心执行 rm -f,该如何恢复

使用 lsof 命令查看当前是否有进程打开 /root/xxx/xxx.txt 文件查看是否存在恢复数据:cat /proc/13067/fd/86/proc/13067/fd:进程操作的文件描述符目录。86:文件描述符。cat /proc/23778/fd/86 > /root/xxx/xxx.txt3. 使用I/O重定向恢复文件ls -l /root/xxx/x...

2019-09-25 15:47:59 174

原创 Netty

简述Netty是由JBoss开发,基于Java NIO的一个高性能通信框架。Netty支持非常多的协议,比如HTTP、WebSocket等。当然,Netty也可以自定义协议。Netty同时支持Java的BIO和NIO两种方式。且很容易与Spring等主流框架进行集成。为什么不适用原生的IO原生API使用单线程模型,不能很好利用多核优势,如果自己去写多线程结合起来比较麻烦;原生API是直接...

2019-09-23 19:43:19 1436

原创 IDEA环境配置

设置maven在File->settings->搜索mavenMavan home directory–设置maven安装包的bin文件夹所在的位置User settings file–设置setting文件所在的位置Local repository–设置本地仓库IDEA 设置代码行宽度在File->settings->Editor->Code St...

2019-09-23 11:36:13 865

原创 找到字符串种最长的回文子串

1、先对字符串进行预处理,两个字符之间加上特殊符号#2、然后遍历整个字符串,用一个数组来记录以该字符为中心的回文长度,为了方便计算右边界,我在数组中记录长度的一半(向下取整)3、每一次遍历的时候,如果该字符在已知回文串最右边界的覆盖下,那么就计算其相对最右边界回文串中心对称的位置,得出已知回文串的长度4、判断该长度和右边界,如果达到了右边界,那么需要进行中心扩展探索。当然,如果第3步该字符没...

2019-09-19 19:08:20 274

原创 API网管

简述当去搭建一个庞大的网站,会涉及到很多后端的微服务,如果为每一个微服务分配一个域名 ,会存在很多问题1:每个业务都会需要鉴权、限流、权限校验等逻辑,放到一个统一的地方去做。2:每上线一个新的服务,都需要运维参与,申请域名、配置Nginx等,当上线、下线服务器时,同样也需要运维参与3:后端每个微服务可能是由不同语言编写的、采用了不同的协议,比如HTTP、Dubbo、GRPC等,但是你不可能...

2019-09-19 18:44:59 383

原创 JDK

JDK5JDK6JDK7JDK8JDK9JDK10JDK11JDK12文件对比public static void main(String[] args) throws IOException { Path dir = Paths.get("d:/"); Path path1 = dir.resolve("javastack1.txt"); Pat...

2019-09-17 16:53:57 4660

原创 Swagger2

简述简单的来说,Swagger2的诞生就是为了解决前后端开发人员进行交流的时候API文档难以维护的痛点,它可以和我们的Java程序完美的结合在一起,并且可以与我们的Spring Boot来配合使用。环境搭建导入POM文件 <dependency> <groupId>io.springfox</groupId> ...

2019-08-13 15:09:51 133

原创 Lombok

简述:lombok是java类库,会利用注解自动生成相应的操作,使代码更加简洁,美观。@Data他相当于@ToString,@EqualAndHashCode,@Getter/@Setter 和@RequiredArgsConstructor绑定在一起的效果。但是其无法为这些注解设置参数,例如callSuper,includeFieldNames和exclude,如果需要为这些注解设置参数,...

2019-08-12 20:10:15 216

原创 Python3

Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断,缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。Tuple 元组:与列表比较,元祖的元素不能修改 格式:(,,,,,)空元祖:tul=(),元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。格式:[,,,,,]

2019-08-06 18:59:23 247

原创 ehcache

简述EhCache 是一个纯Java的分布式的进程内缓存框架,具有快速、精干等特点,主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点,是Hibernate中默认的CacheProvider;...

2019-07-12 17:32:43 7521 1

原创 线程基础

在java中,除去long型和double型以为的任何类型的变量的写操作都是原子操作。但是java规范还特别规定对于volatile关键字修饰的long/double型变量的写操作具有原子性。竞态的模式与竞态产生的条件两种模式:(read-modify-write)读-改-写 、 (check-then-act)检测而后行动可能会导致竞态产生的条件状态变量:即类的实例变量,静态变量共...

2019-06-17 16:13:26 165

原创 Quartz结合spring boot实现定时器

简述Quartz的3个基本要素Scheduler:调度器。所有的调度都是由它控制。Scheduler由scheduler工厂创建:DirectSchedulerFactory或者StdSchedulerFactory。StdSchedulerFactory使用较多,因为DirectSchedulerFactory使用起来不够方便,需要作许多详细的手工编码设置。Scheduler主要有三种:R...

2019-05-28 19:12:26 152

原创 SFTP和秘钥连接传输

简述SFTP可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至服务器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的...

2019-04-24 11:26:07 8653

原创 windows脚本命令编写

简单批处理内部命令简介cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建、编辑和查看。两者所用的命令行代码也是共用的,只是cmd文件中允许使用的命令要比bat文件多。cmd文件只有在windows2000以上的系统中才能运行,而bat文件则没有这个限制echo 命令打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前...

2019-03-22 11:35:57 9052

原创 常用MYSQL优化

查看执行计划type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len列,索引长度rows列,扫描行数。该值是个预估值extra列,详细说明。注意常见的不太友好的值有:Using filesort, Using temporarySQL语句中IN包含的值不应过多My...

2019-03-20 10:02:02 150

原创 解决端口占用

有时候我们会发现我们机器上的tomcat没有启动,也报这个错误,这其实是因为maven项目有自己的tomcat,他没有被关闭,可以采用如下方式解决1.打开cmd2.运行netstat -ano|findstr 8080,这是找到8080端口被谁占用3.运行taskkill /pid xxxx -t -f,其中xxxx指的是查出的占用端口程序的pid...

2019-03-07 19:41:33 501

原创 ftp.listFiles Cannot assign requested address: JVM_Bind

java项目中使用commons-net-3.0.1.jar实现FTP文件的遍历,程序抛出 Cannot assign requested address: JVM_Bind程序运行到 FTPClient.listFiles()或者FTPClient.retrieveFile()方法时。在调用这两个方法之前,调用ftp.enterLocalPassiveMode();这个方法的意思就是每次数...

2019-03-07 10:20:02 304

原创 拓扑排序

拓扑排序是指,将一个有向无环图(Directed Acyclic Graph简称DAG)进行排序进而得到一个有序的线性序列。例如,一个项目包括A、B、C、D四个子部分来完成,并且A依赖于B和D,C依赖于D。现在要制定一个计划,写出A、B、C、D的执行顺序。这时,就可以利用到拓扑排序,它就是用来确定事物发生的顺序的。在拓扑排序中,如果存在一条从顶点A到顶点B的路径,那么在排序结果中B出现在A的后...

2019-02-22 14:39:26 3310 1

原创 归并排序

基本思想归并排序:是利用归并的思想实现的排序方法,该算法采用经典的分治策略(分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。合并相邻有序子序列再来看看治阶段,我们需要将两个已经有序的子序列合并成一个有序序列,比如上图中的最后一次合并,要将[4,5,7,8]和[1,2,3,6]两个已经有序的子序列,合并为最终序列[1,2,3,4,5...

2019-02-21 17:23:34 116

原创 数据库乐观锁和悲观锁

数据锁分为乐观锁和悲观锁它们使用的场景如下:乐观锁适用于写少读多的情景,因为这种乐观锁相当于JAVA的CAS(Compare And Swap),所以多条数据同时过来的时候,不用等待,可以立即进行返回。悲观锁适用于写多读少的情景,这种情况也相当于JAVA的synchronized,reentrantLock等,大量数据过来的时候,只有一条数据可以被写入,其他的数据需要等待。执行完成后下一条...

2019-02-12 11:37:54 1312

原创 十进制转换为二进制的几种方法

除基倒取余法这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2…依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数。那么,在实际实现中,可以用int的一个数来存储最后的二进制,每次求余后把余数存储在int型数的低位,依次递增。 public void binaryToDecimal(int n){ 2 in...

2019-02-11 18:13:50 19858 2

原创 SingleNumber问题

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。要求:具有线性时间复杂度,不使用额外空间题目解析:根据题目描述,由于加上了时间复杂度必须是O(n),并且空间复杂度为O(1)的条件,因此不能用排序方法,也不能使用map数据结构。因此,答案是使用 位操作Bit Operation 来解此题。将所有元素做异或运算,即a[1]...

2019-02-11 10:58:50 228

原创 数据结构简述

定义简单说,数据结构就是一个容器,以某种特定的布局存储数据。这个“布局”使得数据结构在某些操作上非常高效,在另一些操作上则不那么高效。你的目标就是理解数据结构,这样就能为手头的问题选择最优的数据结构。常用的数据结构数组数组是一种最简单和最广泛使用的数据结构,其它数据结构比如堆栈和队列都源自数组。基本操作:Insert——在给定索引位置插入一个元素Get——返回给定索引位置的元...

2019-01-29 11:44:19 289

原创 海盗问题

题目:有5个海盗,获得了100枚金币,于是他们要商量一个方法来分配金币。商议方式如下:1. 由5个海盗轮流提出分配方案。2. 如果超过半数海盗(包括提出者)同意该方案,则按照该方案分配。3. 如果同意该方案的人数(包括提出者)小于等于半数,则提出者要被扔到海里喂鱼,剩下的海盗继续商议分配。4. 海盗们都是绝对理性的,以自己尽可能多获得金币为目的。但是在收益相等的情况下,会倾向把提出者扔到...

2019-01-24 14:18:11 865

原创 集群信息管理

互联网典型分层架构web-server层 service层 db层与cache层为了保证高可用,每一个站点、服务、数据库、缓存都会冗余多个实例,组成一个分布式的系统,集群则是一个分布式的物理形态。一个集群,会包含若干信息,例如:集群名称,IP列表,二进制目录,配置目录,日志目录,负责人列表等等 存在问题  集群信息管理分散化。这里最大的问题,是耦合,当集群的信息发生变化的时...

2019-01-24 10:18:06 270

原创 idea控制台输出中文乱码

windows环境下,Intellij idea 中maven操作时,控制台中文乱码问题解决方法:Setting->maven->runner:VMoptions: -Dfile.encoding=GB2312

2019-01-16 10:15:42 2322 2

grpc学习资料grpc学习资料grpc学习资料

grpc学习资料grpc学习资料grpc学习资料

2023-10-01

jdk最新版 liunx可用 解压版

jdk9可以帮助大家多练习新的特性,帮助大家快速认识到新版本的特性(下载后有链接和密码)

2017-11-17

ssh三大框架所有所需的jar包

SSH三大框架的jar包,完全可以承担一些平常的项目

2017-06-28

传智播客ssh项目crm 源码

通过这个实例可以把ssh熟悉掌握,提高

2017-06-04

空空如也

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

TA关注的人

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