<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[perry_x的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/perry_x</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; perry_x]]></copyright><item><title><![CDATA[[Restful] 执行 RestTemplate 时返回406 NOT Acceptable HttpClientErrorExceptio]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/102966649</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/102966649</guid><author>perry_x</author><pubDate>Fri, 08 Nov 2019 09:27:44 +0800</pubDate><description><![CDATA[在微服务之间互相调用restful api的时候有会遇到406问题,

比如异常HttpMediaTypeNotAcceptableException 或 HttpClientErrorException:406

使用restTemplate.exchange()或者execute()等方法调用Restful API call 去获取一个json或者xml并解析到pojo的时候：

(下列程序...]]></description><category></category></item><item><title><![CDATA[OAUTH2.0 需要授权码Authentication Code存在的真正原因]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/100582929</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/100582929</guid><author>perry_x</author><pubDate>Fri, 06 Sep 2019 17:09:29 +0800</pubDate><description><![CDATA[OAUTH2.0 有几种认证方式，最安全的是授权码模式 (Authentication code)

附：引用 OAUTH2.0 流程图：



图中用户/用户浏览器为资源的owner, 要访问的服务器（图中的中间部分）是OAuth Client, 图中右边为OAuth Server.

原因：

在上图的步骤4中, OAuth Server请求用户输入用户名和密码，

然后用户在浏览器输入用户名...]]></description><category></category></item><item><title><![CDATA[[Linux] 建立带参数的alias命令 - 迅速查找占用某端口的pid]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/94989439</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/94989439</guid><author>perry_x</author><pubDate>Sun, 07 Jul 2019 14:37:39 +0800</pubDate><description><![CDATA[在bash里建立alias可以定义你命令，比如最常用的alias ll=“ls -al”

但是bash本身是不支持参数的，需要通过方法来获取命令行参数, 想要获取参数必须通过bash的函数来实现：

例, 建立启动bash脚本


vi ~/.bash_profile

然后添加函数并绑定alias 你自己的命令(findport)到函数上


myfunction() {
    lsof -...]]></description><category></category></item><item><title><![CDATA[[Java] Spring boot 项目 pom.xml 第一行报error问题解决方法]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/94986831</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/94986831</guid><author>perry_x</author><pubDate>Sun, 07 Jul 2019 14:12:12 +0800</pubDate><description><![CDATA[由spring boot官方网站生成的spring initializr项目(https://start.spring.io/) 通过maven导入到eclipse/STS后 pom.xml文件第一行报unknown error.

搜了很多解决方法都不管用, 最终方法是在pom.xml里加&lt;maven-jar-plugin.version&gt;标签 然后 对maven项目点击

右键 ...]]></description><category></category></item><item><title><![CDATA[[SAP] 使用Server Snapshot和Kernel Snapshot Analyzer分析SAP系统问题]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/89411118</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/89411118</guid><author>perry_x</author><pubDate>Sat, 20 Apr 2019 01:41:16 +0800</pubDate><description><![CDATA[SAP的Server Snapshot (我也称之为Kernel Snapshot) 是从SAP Kernel 740 （SAP NETWEAVER ABAP 740内核）开始增加的新feature。

Snapshot中文名可以翻译为为系统快照，指的是将当前系统的所有内核级别信息全部保存下来到一个快照文件里，

这些内核信息可以非常方便地用于做SAP系统问题的根源分析，包括分析SAP系统为何ha...]]></description><category></category></item><item><title><![CDATA[用Wireshark分析re-transmission和package loss]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/89392214</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/89392214</guid><author>perry_x</author><pubDate>Fri, 19 Apr 2019 07:32:56 +0800</pubDate><description><![CDATA[使用Wireshark分析丢包, 需要先了解TCP的工作方式，下面我自己画的图总结了TCP建立/传输/关闭.

TCP工作原理



基本原理映射到Wireshark中如下:

TCP 建立连接
E.g. 50391申请建立连接刀8080，发送[SYN]. 8080收到后返还[SYN, ACK]说明收到连接建立请求.
之后50391发送ACK给8080确认建立链接



TCP 关闭连接
E.g....]]></description><category></category></item><item><title><![CDATA[[Linux] watch 命令的使用]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/80903123</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/80903123</guid><author>perry_x</author><pubDate>Tue, 03 Jul 2018 19:26:54 +0800</pubDate><description><![CDATA[watch 在linux可以周期性调用命令，并且可以指定周期长度。这是一个极其好用的命令。-n 指定执行2次命令之间的间隔秒数-d 高亮两次执行之间输出发生的变化 -&amp;gt; 对于看文本变化很有用！-t 在输出顶部显示当前系统时间例:watch -n 3 -t tail -n 10 abc.log每3秒刷新显示abc.log的后10行(第1个-n表示每3秒执行一次命令, 第2个-n表示显示尾部n行...]]></description><category></category></item><item><title><![CDATA[[Linux] Python脚本如何在linux后台运行以及输出重定向问题]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/80459304</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/80459304</guid><author>perry_x</author><pubDate>Sat, 26 May 2018 10:24:56 +0800</pubDate><description><![CDATA[在部署.py脚本到linux服务器的时候，我们经常想把后台脚本输出(程序print)的内容存到日志里。首先.py后台运行的2个方法：1.  nohupnohup python -u MainServices.py &amp;gt;&amp;gt; services.log 2&amp;gt;&amp;amp;1 &amp;amp;&amp;gt;&amp;gt; services.log   为重定向追加输出log到现有services.log文件, ...]]></description><category></category></item><item><title><![CDATA[[Python] Python与PyCharm的中文显示问题]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/80274714</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/80274714</guid><author>perry_x</author><pubDate>Thu, 10 May 2018 22:48:47 +0800</pubDate><description><![CDATA[最近在编写Python爬虫，用的Python2.7中文在IDE里的显示非常蛋疼，我用的IDE是PyCharm 2018.1...爬取的数据经常无法显示出中文，(估计一大部分是print语句的锅..) 想特意总结一下:1. 每个.py文件开头加# -*- coding:utf-8 -*-这样就可以在.py文件中出现中文了, 例如中文注释，注意这个声明和print内容以及文件输出没有任何关系2. 爬下...]]></description><category></category></item><item><title><![CDATA[[Java] 时间字符串比较的几种方法]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/80187996</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/80187996</guid><author>perry_x</author><pubDate>Thu, 03 May 2018 22:08:35 +0800</pubDate><description><![CDATA[最近一直写程序分析软件Trace, 所以Trace中的时间戳要处理一下...经常遇到的一个问题是比较给定格式的时间字符串的先后顺序，由于字符串包含英文月份, e.g. Aug, Jan, May, etc.所以需要用SimpleDateFormat格式化: new SimpleDateFormat(&quot;MMM dd HH:mm:ss yyyy&quot;, Locale.US);其中要解析英文月份的话必须用j...]]></description><category></category></item><item><title><![CDATA[[Java] 回溯法解数独(Sudoku)问题]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/80178408</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/80178408</guid><author>perry_x</author><pubDate>Thu, 03 May 2018 12:55:35 +0800</pubDate><description><![CDATA[数独是个很有意思的数学问题。写程序解决数独是个很好的算法实现锻炼，其也是Leetcode上一个Hard问题。 我的基本想法就是回溯法, 我是用人类正向解题思维的方式去实现的代码，应该还有更快更好的方法，我还没有更深入研究。PS: 数独规则对于一个数独问题，我们需要在9*9的空格内填入数字。这9*9被分成9个3*3的小块N1 - N9，要保证每个小块Ni包含的数字必须是1至9，不能重复。同时，9*9...]]></description><category></category></item><item><title><![CDATA[[Java] N皇后问题]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/80173584</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/80173584</guid><author>perry_x</author><pubDate>Wed, 02 May 2018 23:07:58 +0800</pubDate><description><![CDATA[搬来我在Github上做leetcode的经典题目(难度Hard)： N-Queens(N皇后)N皇后是说在N*N的棋盘上放置N个皇后，让她们各自谁也无法吃掉谁。(我们可能经常可以听到8皇后问题，其是N皇后问题的一个特例)对于这类问题，我的基本方法是回溯法，用递归的方式来找到可能的解：先确定N*N矩阵的每一行的皇后位置，然后再递归试探下一层可能满足条件的皇后的位置，以此类推，如果直到第N层皇后都有...]]></description><category></category></item><item><title><![CDATA[[C/C++] 如何快速写出2-归并排序]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/45079273</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/45079273</guid><author>perry_x</author><pubDate>Thu, 16 Apr 2015 18:53:31 +0800</pubDate><description><![CDATA[2路归并指的是每次将集合分为2个子集和的归并排序。（此处用2分法）归并排序原理是将现有集合划分为N个子集和，对N个子集和进行排序，再依次合并N个有序的子集和，直到最终合并成完整集合。之前面试遇到一个经典的链表问题是合并两个有序链表，其实和归并中的并很相近。归排和递归的快排写法相近，主要是合并函数merge的编写。写法如下：#include&amp;lt;iostream&amp;gt;
using namespa...]]></description><category></category></item><item><title><![CDATA[[C/C++] 回溯法解0-1背包问题]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/45077577</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/45077577</guid><author>perry_x</author><pubDate>Thu, 16 Apr 2015 17:05:55 +0800</pubDate><description><![CDATA[用最小的空间装最大价值的物品是经典的背包问题，而0-1背包是背包问题中最简单的情况，常见的做法有动态规划和回溯法等。本文用更为容易理解的回溯法来解决该问题。我们把每个输入的物品都看做一个节点，用标记数组来标记是否使用该物品，于是物品节点之间能够生成一颗二叉树，二叉树节点的左子(1)表示装该物品，右子(0)表示不装该物品。于是我们可以从二叉树的根节点用深度优先搜索的方法来遍历直到叶子节点，我们对每条...]]></description><category></category></item><item><title><![CDATA[[C/C++] 用线性时间选择来找无序数组的中位数]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/44958199</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/44958199</guid><author>perry_x</author><pubDate>Thu, 09 Apr 2015 12:37:39 +0800</pubDate><description><![CDATA[有一道题大概是这样的：有n条水平的线，知道线的纵坐标，选择一条线，使得这条线到所有线的距离之和最小。根据数学知识，我们知道，如果线是奇数条的话，那么中间那条（纵坐标的中位数）即可，如果是偶数条的话，那么中间那2条区间内的都可以，而如果要线的纵坐标尽可能小，那么就取中间两条纵坐标较小的那条即可。那么在线数量为偶数的时候，这并不是传统的求中位数问题，而线数量为奇数的时候，则变成传统的中位数问题。求中位...]]></description><category></category></item><item><title><![CDATA[[C/C++] 电缆分割问题(二分查找的应用)]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/44957907</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/44957907</guid><author>perry_x</author><pubDate>Thu, 09 Apr 2015 12:02:56 +0800</pubDate><description><![CDATA[课上的小朋友请自己编写..小心相似度。大二做过的题目绝大部分已经忘了，拿来回忆巩固一下也不错。描述如下：某地区即将举行区域程序设计比赛，竞赛委员会已经成立并决定举行一次最公平的竞赛， 他们决定利用星形拓扑结构来连接每个竞赛者的电脑---也即连接这些电脑到一个中心HUB上 为了达到真正的公平竞赛目的，竞赛委员会主任下令要求：每个竞赛电脑连接到中心HUB的 电缆必须是一样长的。竞赛委员会联系了一个本地...]]></description><category></category></item><item><title><![CDATA[[C/C++] 冒泡排序简洁写法]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/44940007</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/44940007</guid><author>perry_x</author><pubDate>Wed, 08 Apr 2015 14:06:15 +0800</pubDate><description><![CDATA[同样是面试常问的题目，虽然简单，能正确简洁写出冒泡的人其实也不多吧#include&amp;lt;iostream&amp;gt;
using namespace std;
void bSort(int n,int input[]){
	for(int i=0;i&amp;lt;n-1;i++){
		for(int j=0;j&amp;lt;n-i-1;j++){
			if(input[j+1]&amp;lt;input[j]) /...]]></description><category></category></item><item><title><![CDATA[[C/C++] 如何快速得写出快速排序]]></title><link>https://blog.youkuaiyun.com/perry_x/article/details/44939833</link><guid>https://blog.youkuaiyun.com/perry_x/article/details/44939833</guid><author>perry_x</author><pubDate>Wed, 08 Apr 2015 13:51:39 +0800</pubDate><description><![CDATA[最近很多同学找实习，面试一个环节是纸上写程序，如快速排序，链表合并等。那如何在短时间内有效写出快排？快排是一种分治法，每次找到基准并划分数组，再依次递归即可。重点在于如何划分，划分的重点在于从两侧的遍历和替换。（这里初始基准取第一个元素）压缩代码后快排程序如下：&amp;lt;pre name=&quot;code&quot; class=&quot;cpp&quot;&amp;gt;#include&amp;lt;iostream&amp;gt;
using nam...]]></description><category></category></item></channel></rss>