自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 问答 (1)
  • 收藏
  • 关注

原创 git 常用

学习使用git还是很有必要的,几乎git成了如今程序员工作的必备技能用大白话来说,git分为多个区域,工作区、暂存区、本地库、远程库;其实并不复杂,简单理解工作区:我们在电脑里面的项目,就是一个工作区,也就是我们用开发工具idea或者eclipse在写代码的地方;本地库:我们使用git init 就生成一个.git的隐藏文件,这个就是我们的本地库暂存区:在.git的文件中...

2018-11-27 23:41:03 200

原创 希尔排序

为什么工作之余还要学习算法?答:没办法,2020互联网卷王成为了年度热词,搞it的人越来越多,也算是为了面试时候的区分度,面试越来越看重算法了,就算是为了工作.....面试官心里想:面个算法,一个可以不用尬聊,节省时间(大约10分钟,大家都很忙,基本上都是在面试的时候才看面试者的简历,熟悉的流程:先简单自我介绍一下,先写个题吧)本人经历:第一次社招2020年,基本上面像样的公司,能在手机上经常看到名字的公司,基本都问了算法其他:当然,还可以在和朋友推杯换盏之际,把牛皮吹起来插入排序.

2020-12-13 20:48:52 284

原创 mac使用密钥对登陆阿里云服务器

涉及到的指令//key.pem 是服务器的密钥对文件名,这边文件的权限如果过大,会报错sudo chmod 0400 key.pem//使用指定密钥对登陆阿里服务器ssh -i key.pem root@ip//将pem.key添加到本机中,下次可以直接使用ssh -i root@ip 登陆ssh-add -K pem.key在windows中,我们可以使用xshell等软件,登陆一次远程服务器后可以记住密码等,但是mac自带的登陆没有那么方便,可以使用上述指令来简化登陆步骤...

2020-12-05 22:39:52 1166 1

原创 阿里跨境支付宝退款信息签名校验和对账文件注意点

退款api文档:https://global.alipay.com/docs/ac/global/forex_refund验证签名工具网站:https://isandbox.alipaydev.com/melitigo/Test_084.html这边要吐槽文档问题,看文档可以看到文档上响应的xml信息是相当简单,但是实际上并非如此,这边放上一个退款失败请求的例子:<?xml version="1.0" encoding="UTF-8"?><alipay> <is

2020-12-03 21:53:13 717

原创 spring boot 启动解析

run方法 public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start();//启动计时器 ConfigurableApplicationContext context = null; Collection<SpringBootExceptionReporter&g

2020-07-18 11:10:22 162

原创 Nginx输出请求内容

对特定请求路径输出请求内容 例:对/api/log/print 请求日志输出修改配置文件nginx.confhttp { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent $request_body "$http_referer" ' '"$http_.

2020-07-16 10:29:21 3384

原创 浩鲸社招面试题

Arraylist的默认大小和扩容方式?答:arraylist的默认大小是10,如果的new ArrayList不带参数的话,会先返回一个为0的数组,类似有一个懒加载的过程,扩容方法是0.5,扩容的时候又一个需求值,如果扩容0.5后还小于需求值,那么就使用需求值的容量。使用过什么线程安全的容器?答:Collections.SynchronizedArrayList,CopyOnWriteArraylist,ConcurrentHashMap等说说Hashmap的实现?为什么长度是2的n方?

2020-06-27 10:55:43 937

原创 抢红包-二倍均值算法

package com.redpackage;import java.util.ArrayList;import java.util.List;import java.util.Random;import com.zuochengyun.book.chaptertwo.list.MyListUtils;/** * 抢红包的二倍均值法 当前钱数/当前人数*2 * @author caizongyu * */public class DoubleAvgMethod { /**.

2020-06-24 12:50:07 570

原创 jdk8新特性

接口可以定义默认方法和静态方法package com.jdk8.newpat;public interface InterfacePat{ void method1(String s); /* * 接口可以定义默认方法 */ default void defaultMethod() { System.out.println("i am interface's default method"); } /** * 接口可以定义静态方法 */ static void .

2020-06-21 15:55:32 123

原创 文件锁-进程级别锁

package com.learnFileLock;import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;import java.io.RandomAccessFile;import java.io.UnsupportedEncodingException;import java.nio.channels.FileChannel;import java.nio.channels.

2020-06-11 10:23:49 234

原创 tomcat源码阅读(二)-架构

tomcat主要组件Server服务器:可以理解成tomcat,一个Server可以包含多个Service服务Service服务:管理Connetor和Container,一个service有一个Container和多个ConnetorConnetor:连接器,负责接收请求Container:容器,主要负责处理请求Session管理器:负责管理session,例如:session的创建和删除等上一张架构图:架构重点是Connetor和ContainerConneto.

2020-06-07 21:17:31 211

原创 动态规划常规打表和优化

/** * 矩阵最小路径和 * 给定一个矩阵m,从左上角开始每次只能向右或者向下走,返回所有路径中最小的路劲和。 *经典dp题 * @author caizongyu * */public class MatruxMinPathSum { /* * 常规打表的办法 */ private static int getMinPath(int[][] arr) { if(arr == null) { return -1; } int[][] tmp = new int.

2020-05-20 18:48:55 393

原创 tomcat7源码阅读(一)tomcat启动

先从tomcat启动脚本开始,我们可以使用startup.sh启动tomcatstartup.sh脚本分析 先判断操作系统(os400是 IBM的AIX、darwin是MacOSX 操作环境的操作系统成份、Darwin是windows平台上运行的类UNIX模拟环境) 获取catalina.sh的真实路径,并判断是否有可执行权限。调用catalina.sh脚本 PRG="$0"while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` l

2020-05-15 15:49:07 263

原创 linux 上打jar包

首先确保jdk环境安装正常进入/code 目录下把需要编译的java类到写到javaFiles.txt 项目导入了lib库下的包,.java文件编译后变成.calss文件,存放在/root/class 目录下javac -d /root/class -cp .:./lib/* @./javaFiles.txt切换目录cd /root/class编译jar包 并且指定ma...

2020-04-30 09:59:26 1939

原创 阿里esc服务器大坑

ESC服务器在后台的安全组上开放了端口,使用telnet去链接端口,不论怎么设置,只有22端口可以连上需要在linux上在开放firewall上开放端口才可以连上..................firewall-cmd --zone=public --add-port=6666/tcp --permanent firewall-cmd --reload...

2020-04-25 22:28:53 336

原创 性能监控常用指令

输入top指令后界面如下:top - 17:45:47 up 5 days, 22:49, 5 users, load average: 28.55, 34.75, 36.16Tasks: 360 total, 4 running, 356 sleeping, 0 stopped, 0 zombieCpu(s): 33.6%us, 18.4%sy, 0.0%ni, 3...

2020-03-11 17:55:30 324

原创 约瑟夫环

package com.zuobook.two.list;/** * 约瑟夫环 * 输入一个环形单向链表的头结点 和m * @author Administrator * */public class JosephRang { private static Node doGetAns(Node head, int m) { if(head == null || m<...

2020-03-10 00:17:04 97

原创 docker异常

systemd-udevd[6399]: inotify_add_watch(7, /dev/dm-3, 10) failed: No解决方法:yum update xfsprogs 即可

2020-03-07 15:52:32 237

原创 cpu占用高线上问题排查

在线上运行的服务器,被发现cpu占用率高的问题。第一步:top指令一般cpu占用率搞和内存占用高,都是先用top看一看详情,top后可以按p来按照cpu使用率排序进程。这边用的图不是发生问题机器,主要是记录一下思路和方法通过top我们可以发现cpu占用率高的pid,记录一下第二步:ps -ef |grep pid查看该进程运行的是什么项目第三步:top -H -...

2020-03-07 00:27:06 273

原创 逆置链表中的一段

package com.zuochengyun.book.chaptertwo.list;import java.util.ArrayList;import java.util.List;import java.util.regex.Pattern;/** * 反转一个链表的一段 * @author * */public class ListRevertNT...

2020-03-06 18:53:57 128

原创 最大值减去最小值小于或者等于num的子数组数量

给定一个整数数组,求有多少个数组满足:max(arr[i....j])-min(arr[i.....j])<=nummax(arr[i...])表示子数组中的最大值,min(arr[i.....j])表示子数组中的最小值package com.zuochengyun.book.chapterone;import java.util.Deque;import java....

2020-02-11 21:35:41 234

原创 如何仅用递归函数和栈操作逆序一个栈

解题思路:这里使用了两个递归函数getLastValueAndRemove():取出栈中的最后一个元素并在栈中移除;实现就是将栈中元素全部出栈,然后在入栈doReverse():调用上面的函数,不停的将最后一个元素移出来,全部移除后入栈,逆序。package com.zuochengyun.book.chapterone;import java.util.Stack;...

2020-01-21 17:59:37 161

原创 图解算法-动态规划

假设你是个小偷,背着一个可装4kg东西的背包。你可盗窃的商品有如下3件。音箱 3000美元 4kg 笔记本电脑 2000美元 3kg 吉他 1500美元 1kg为了让盗窃的商品价值最高,你该选择哪些商品?要点:1.动态规划几乎都需要用到表格(二维数组)2.大问题转化为小问题3.找到公式pac...

2020-01-16 12:57:35 207

原创 虚拟化知识总结

先了解一下虚拟机监视器(vvm)虚拟机监视器:负责对虚拟机提供硬件资源抽象,为客户操作系统提供运行环境。服务器虚拟化根据虚拟化实现的方式不同,服务器虚拟化有两种类型:寄宿虚拟化:虚拟机监视器是运行在宿主操作系统之上的应用程序,由于虚拟机对资源的操作需要通过宿主操作系统来完成,因此其性能通常较低。如vm workstation原生虚拟化:虚拟机监视器运行在硬件之上而不是宿主...

2020-01-13 15:48:51 1395

原创 漏洞记录- Host头攻击

因为Host的属性是客户端生成的,那么客户端的输入往往是不可靠的,但为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。这个header是不可信赖的,如果应用程序没有对host header进行处理,就有可能造成恶意代码的传入。修复方法:可修改Tomcat修复:修改tomcat下的conf/server.xml文件HOST的name修改为静态...

2019-12-04 15:41:58 350

原创 《深入理解计算机系统》一

程序翻译成不同格式在unix系统上,从源文件到目标文件的转化是有编译器驱动程序完成的。命令:gcc -o hello hello.c 这里GCC编译器驱动将hello.c翻译成一个目标文件hello,这个过程可分为4个步骤预处理阶段:根据#开头的命令修改成宿 如#include<stdio.h>,读取系统头文件插入程序文本中 编译阶段:讲程序hello.i翻...

2019-11-24 23:50:06 140

原创 图解密码学笔记(三)

消息认证码的局限性:可以校验消息的整性,但是无法防止否认数字签名:1.生成消息签名的行为:由消息发送者进行2.验证消息签名的行为:由消息接收者进行,也可以由第三方来完成,这是和消息认证码不同的地方数字签名中的生成签名和验证签名使用的是不同的密钥来完成的,分为签名密钥和验证密钥与公钥密码相类似,区别在于数字签名就是将公钥密码反过来使用公钥密码和数字签名对比: ...

2019-11-19 23:24:41 131

原创 图解密码技术笔记(二)

公钥密码的缺点:1.处理速度远远低于对称密码2.难以抵御中间人攻击混合密码系统-用对称密码提高速度,用公钥密码保护会话密钥角色:小A和小B1.小A和小B先进行一次公钥密码流程,这个时候小B拥有小A的公钥2.小B生成对称加密密钥D3.小B将要发送的消息使用密钥D加密4.小B使用小A的公钥对密钥D加密,将加密后的密钥D和消息一起发送密码技术的组合:数字签名:有单...

2019-11-08 00:00:03 4638

原创 图解密码技术笔记(一)

对称加密:加密和解密的密钥相同非对称加密:分为公钥和私钥DESDES的秘钥长度 64比特=56比特+8比特;没7比特设置一个用于错误检测的比特,实质上秘钥长度是56比特。DES是以64比特明文为一个单位分组进行加密的,这样的密码算法成为分组密码;Feistel网络加密的各个步骤成为轮,整个加密过程就是进行多次轮的循环,比如DES就是一种16轮循环的Feistel网络;...

2019-11-03 23:34:36 195

原创 python脚本pdb调试

以下记录的是在linux中,对python代码进行调试。python -m pdb xxx.py 使用pdb调试命令列表:c 继续执行 w 显示当前正在执行 a 打印当前函数的参数列表 s 执行当前代码,单步进入 n 继续执行到当前函数的下一行,单步跳过 l 显示当前上下文行数 p 后加参数名,显示参数的...

2019-10-09 22:02:05 258

原创 Openssl和Openssh

SSLSSL的全名叫做secure socket layer(安全套接字层),是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密,广泛用于服务器和浏览器之间的身份认证和加密数据传输。 协议可分为两层:ssl记录协议:为高层协议提供基本的安全服务,例如:对数据的压缩 ssl握手协议:协调客户和服务器的状态,是双方能够达到状态的同步,用于管理信息的交互,比如...

2019-09-09 11:34:23 1664

原创 Apache Tomcat Default Files 修复记录

Apache Tomcat Default Files描述:tomcat默认文件会暴露tomcat的信息,比如在404页面会暴露tomcat的版本信息修复方法:method1:进入tomcat的lib目录下有一个catalina.jar包,路径/tomcat/lib/catalina.jar解压后会有一个org文件,修改catalina.jar中的org/...

2019-09-06 18:10:55 7033

原创 IDEA安装

IntelliJ IDEA简介-copy百度IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。安装步骤下载地址:https://www...

2019-08-13 14:33:45 96

原创 dubbo-admin监控zk建群配置

dubbo-admin的配置文件是application.properties 正常来说路径:dubbo-admin\src\main\resources想要监控zookeeper集群可以更改配置dubbo.registry.address=zookeeper://[ip]:2181?backup=[ip]:2181,[ip]:2181想要运行也很简单在dubbo-adm...

2019-06-05 11:54:25 1898

原创 奇安信java面试

一面Time_wait状态?三次握手交换了什么? SYN,ACK,SEQ,窗口大小redis的5种基础数据类型? string,list,hash,set,sorted setredis hash 短字段???docker? hashmap 1.7和1.8? 红黑树,还有链表的倒插法concurrenthashmap 1.7和1.8? 分段锁, ...

2019-05-19 21:13:45 3564 13

原创 zk 集群搭建

先装奇数台zk,修改配置文件中的 data存放目录,新建 mkdir zkData 文件夹 在zkData文件夹中新建一个myid的文件,使用vim来操作,保证不会乱码 在myid文件中添加server对应的编号,不能相同,最好不要从0开始 配置zoo.cfg文件,增加如下配置: ##########cluster#########server.11=ip地址:2888:3888...

2019-03-14 21:37:21 312

原创 使用两个栈来实现队列

栈:先进后出队列:先进先出/*- * 两个栈实现队列 * @author Administrator * */public class StaticToQueue { Stack&lt;Integer&gt; stack1 = new Stack&lt;&gt;();//保存原数据 Stack&lt;Integer&gt; stack2 = new Stack&lt;&gt...

2019-03-07 10:24:28 91

原创 全排列

这里用到了递归的方式来写:首先 一个数组 1,2,3我们要全排列 可以看成是 1 + 数组{2,3}的全排列 2+ 数组{1,3}的全排列 3+ 数组{1,2}的全排列一个排列的结束就是到了数组最后一个数字的时候 import j...

2019-03-03 23:19:14 503

原创 dubbo源码解析--服务暴露

先来个官网解析源码地址:http://dubbo.apache.org/zh-cn/docs/source_code_guide/export-service.htmldubbo有自己的配置标签,在java里中,一切皆对象,配置文件到最后也是解析成了对象,那么dubbo有一个专属的Parser(解析器),来将配置解析成对象,那就是类DubboBeanDefinitionParser;通过d...

2019-02-25 12:06:29 125

原创 dubbo笔记

先放一个官方文档的url:http://dubbo.apache.org/zh-cn/docs/user/preface/background.html,看过一些书,上面的内容和文档的差不多,所以可以好好研究下文档这里盗取一下官方文档的图片:其实简单的说,就是一些  功能模块对外暴露接口,在注册中心(registry)注册,消费者(往往是客户端)调用接口,然后通过注册中心找服务,然后调...

2019-02-24 18:23:09 119

空空如也

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

TA关注的人

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