<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Tseng]]></title><description><![CDATA[只要心存希望就能绝处逢生]]></description><link>https://blog.youkuaiyun.com/StarsionBlog</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; StarsionBlog]]></copyright><item><title><![CDATA[ReentrantLock原理浅析]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/82455012</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/82455012</guid><author>StarsionBlog</author><pubDate>Thu, 06 Sep 2018 20:17:45 +0800</pubDate><description><![CDATA[一、序言

       最近一直在看高洪岩著的《java并发编程》，里面介绍了java.util.cocurrent下的常用并发相关类，但是基本上都是介绍如何用这些类，以及这些类的作用，并没有细究到相关原理，加上最近的工作内容很多涉及到异步多线程，用到了一些并发控制相关的类，如ReentrantLock、CountDownLatch等等，所以最近一直在看源码研究这些类的原理，而这篇文章就是从源码...]]></description><category></category></item><item><title><![CDATA[Java的private和final字段竟然可以被外部类修改？]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/78752524</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/78752524</guid><author>StarsionBlog</author><pubDate>Fri, 08 Dec 2017 16:32:34 +0800</pubDate><description><![CDATA[一、前言
今天在阅读源码的时候无意中发现被private修饰的变量竟然可以被外部类访问，不仅如此，final声明的变量在某种情况下还可以被修改。这种打破常规的操作就是用到神奇的反射。


二、演示


1、访问并修改private修饰的字段


将被外部修改的类


public class Person {

	private String name = "zhangs]]></description><category></category></item><item><title><![CDATA[git log统计每个作者的代码量]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/75409867</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/75409867</guid><author>StarsionBlog</author><pubDate>Wed, 19 Jul 2017 16:53:26 +0800</pubDate><description><![CDATA[前言
最近想写一个脚本文件自动统计git里每个作者分别增加了多少行代码，于是上网Google下看别人是怎么写的，来来去去都是下图这种需要提前知道作者名字的
这种脚本需要提前传入author参数，当新增加一个author时就需要去改动代码，这种代码的可扩展性极差。后来自己用awk写了一个不需要知道作者的名字就可以统计出每个作者新增了多少行代码的脚本


具体实现
脚本代码



]]></description><category></category></item><item><title><![CDATA[spring boot正常启动后，页面报404问题]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/73496449</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/73496449</guid><author>StarsionBlog</author><pubDate>Tue, 20 Jun 2017 12:57:31 +0800</pubDate><description><![CDATA[前言
今天用eclipse搭建spring boot项目时，在确保了代码和相关设置没错的情况下，在用浏览器访问时，总是会报404错误


解决方法
spring boot 的启动类只会扫描启动类当前的包和包下的所有类，不同包的类是不会被扫描到的，因此相关的controller类应该与启动类在同一个包下，这样才能扫描和加载到相关的类
项目结构如下图（启动类CdApplication和Te]]></description><category></category></item><item><title><![CDATA[fiddler修改返回数据的三种方法]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/73089010</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/73089010</guid><author>StarsionBlog</author><pubDate>Mon, 12 Jun 2017 11:17:13 +0800</pubDate><description><![CDATA[背景

访问某个URL地址，正常返回结果是
{"code":0,"msg":"success","rows":["US","CA","GB","AR","AU","AT","BE","BR","CL","CN","CO","HR","DK","DO","EG","FI","FR","DE","GR"]}，
而我们需要将response在返回之前将json数据修改成{"code":1,"ms]]></description><category></category></item><item><title><![CDATA[Intellij IDEA 使用Spring-boot-devTools无效解决办法]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/72956106</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/72956106</guid><author>StarsionBlog</author><pubDate>Fri, 09 Jun 2017 11:46:38 +0800</pubDate><description><![CDATA[转自：blog.youkuaiyun.com/wjc475869/article/details/52442484

相信大部分使用Intellij的同学都会遇到这个问题，即使项目使用了spring-boot-devtools，修改了类或者html、js等，idea还是不会自动重启，非要手动去make一下或者重启，
就更没有使用热部署一样。出现这种情况，并不是你的配置问题，相信自己，热部署那几个设置很简]]></description><category></category></item><item><title><![CDATA[Python自动化脚本splinter框架chromedriver的安装]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/72926007</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/72926007</guid><author>StarsionBlog</author><pubDate>Thu, 08 Jun 2017 16:57:19 +0800</pubDate><description><![CDATA[前言
前几天看了Python的splinter框架，今天打算动手写一下。在用脚本打开chrome浏览器时，显示没有安装chromedriver，因为网上相关教程不多，所以现在把如何安装chromedriver的教程写下来


缺少chromedriver的报错信息如下图：




安装步骤
1.到官网https://sites.google.com/a/chromium.org]]></description><category></category></item><item><title><![CDATA[pip安装报错[SSL:CERTIFICATE_VERIFY_FAILED]解决方法]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/72870009</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/72870009</guid><author>StarsionBlog</author><pubDate>Mon, 05 Jun 2017 18:25:27 +0800</pubDate><description><![CDATA[一些主机由于是使用公司内网的问题，导致pip快速安装时会出现如题目所说的问题，如图
 
将命令“pip install jinja2” 改成“pip --trusted-host pypi.python.org install jinja2”即可


注：jinja2是框架的名称，将命令的jinja2改成对应的名称即可]]></description><category></category></item><item><title><![CDATA[Git和GitHub连接后无法推送的问题]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/72764047</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/72764047</guid><author>StarsionBlog</author><pubDate>Fri, 26 May 2017 10:34:47 +0800</pubDate><description><![CDATA[昨天在用Git和GitHub连接上后，想用 git push -u origin master时，总是提示ssh:connect to host github.com port: connection time out错误，在Google查资料时有很多人说在.ssh文件下写一个config文件来改访问的端口为443，但是问题依旧无法解决。
在自习阅读了GitHub的一些说明后，我将Git和Git]]></description><category></category></item><item><title><![CDATA[fiddler网络调试神器（前端）——擦肩而过]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/72628374</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/72628374</guid><author>StarsionBlog</author><pubDate>Mon, 22 May 2017 17:38:53 +0800</pubDate><description><![CDATA[转自：http://shalles.github.io/blog/tools/fiddler/2015/02/08/tools-fiddler-profile

08 February 2015

##Web Debugging 支持基于windowsPC端windows、Mac、Linux系统，各种移动设备的通信调试且无浏览器限制（非pc
 windows只需多个设备与之在同一个网域下]]></description><category></category></item><item><title><![CDATA[“用户登陆”之MD5加密]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/72078712</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/72078712</guid><author>StarsionBlog</author><pubDate>Sun, 14 May 2017 21:36:27 +0800</pubDate><description><![CDATA[一、前言
众所周知，我们在网络中传送一些数据时，会有被窃听的风险。因此，我们需要对需要保密的数据进行加密，才能保证数据不被泄露。而加密的方式有两种，一种是对客户端和服务端整个通信信道进行保护加密，如https协议中的SSL，还有另一种加密是对通信数据本身进行加密，如MD5，这边文章主要将MD5在用户登陆功能中的应用。




二、存在的问题
在过去的开发中，比如对用户密码的加密，笔试]]></description><category></category></item><item><title><![CDATA[java线程安全总结]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/71075181</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/71075181</guid><author>StarsionBlog</author><pubDate>Mon, 01 May 2017 20:51:41 +0800</pubDate><description><![CDATA[原文：   
http://www.iteye.com/topic/806990
http://www.iteye.com/topic/808550
  
      最近想将Java基础的一些东西都整理整理，写下来，这是对知识的总结，也是一种乐趣。已经拟好了提纲，大概分为这几个主题： java线程安全，java垃圾收集，java并发包详细介绍，Java profile和jvm性能调优
]]></description><category></category></item><item><title><![CDATA[剖析Mysql的InnoDB索引]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/71055335</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/71055335</guid><author>StarsionBlog</author><pubDate>Mon, 01 May 2017 12:55:22 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/voidccc/article/details/40077329
摘要：
        本篇介绍下MySQL的InnoDB索引相关知识，从各种树到索引原理到存储的细节。
        InnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyISAM，文档)。本着高效学习的目的，本篇以介绍InnoDB为主，少量涉及MyISAM作]]></description><category></category></item><item><title><![CDATA[常见HTTP状态码]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/71023313</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/71023313</guid><author>StarsionBlog</author><pubDate>Sun, 30 Apr 2017 15:32:35 +0800</pubDate><description><![CDATA[100 Continue
  初始的请求已经接受，客户应当继续发送请求的其余部分

101 Switching Protocols
  服务器将遵从客户的请求转换到另外一种协议

200 OK
  一切正常，对GET和POST请求的应答文档跟在后面

201 Created
  服务器已经创建了文档，Location头给出了它的URL。

202 Accepted
  已]]></description><category></category></item><item><title><![CDATA[https详解]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/70947973</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/70947973</guid><author>StarsionBlog</author><pubDate>Sat, 29 Apr 2017 13:03:06 +0800</pubDate><description><![CDATA[转自：http://www.2cto.com/net/201608/539863.html

HTTP 的缺点

到现在为止，我们已了解到 HTTP 具有相当优秀和方便的一面，然而 HTTP 并非只有好的一面，事物皆具两面性，它也是有不足之处的。HTTP 主要有这些不足，例举如下。
1、通信使用明文（ 不加密） ， 内容可能会被窃听

2、不验证通信方的身份， 因此有可能遭遇伪装
]]></description><category></category></item><item><title><![CDATA[KMP模式匹配算法总结]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/70186277</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/70186277</guid><author>StarsionBlog</author><pubDate>Sat, 15 Apr 2017 19:34:38 +0800</pubDate><description><![CDATA[KMP算法主要是对朴素的模式匹配算法的改进，假设有String A和String B,i为A的首个字母的下标，j为B的首个字母的下标，即i=0,j=0，现要在A中匹配B，若用朴素的模式匹配算法，则i需要不断的回溯，如A=acbxacbd，B=abcd，当i=3,j=3时，发现字符不相等，如果使用的是朴素的模式匹配算法，则需要将i回溯为1，即i=i-j+1,而j=0。
若用的是KMP模式匹配算法，]]></description><category></category></item><item><title><![CDATA[字符编码介绍]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/65635486</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/65635486</guid><author>StarsionBlog</author><pubDate>Fri, 24 Mar 2017 18:34:23 +0800</pubDate><description><![CDATA[原文：https://wenku.baidu.com/view/cb9fe505cc17552707220865.html


很久很久以前，有一群人，他们决定用8个可以开合的晶体管来组合成不同的状态，以表示世界上的万物。他们看到8个开关状态是好的，于是他们把这称为”字节“。再后来，他们又做了一些可以处理这些字节的机器，机器开动了，可以用字节来组合出很多状态，状态开始变来变去。他们看到这样是]]></description><category></category></item><item><title><![CDATA[大数相乘]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/64937667</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/64937667</guid><author>StarsionBlog</author><pubDate>Wed, 22 Mar 2017 21:51:34 +0800</pubDate><description><![CDATA[一、背景
最近在看算法的时候发现了一个问题，我们都知道方法的形参是要指定类型的，假如有以下方法
public int example(int a,int b){
		int c = a+b;
		return c;
	}
其中的形参a和形参b的类型是int，我们都知道int类型的数据的取值会限制在一定范围之内，如果我要传入的参数是大于int的取值范围怎么办，有人可能会想到用long，再不够就]]></description><category></category></item><item><title><![CDATA[设计模式之单例模式的优化]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/63254271</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/63254271</guid><author>StarsionBlog</author><pubDate>Sat, 18 Mar 2017 15:16:25 +0800</pubDate><description><![CDATA[单例模式是一个非常重要的设计模式，而且代码量比较少，只需要几十行代码就能实现，虽然简洁，但是想要用好单例模式还是需要些门道，以下是我对单例模式的优化的总结


一、单线程下的单例模式
public class Singleton {

	private static Instance instance = null;
	
	private Singleton(){
		
	}
	
	pub]]></description><category></category></item><item><title><![CDATA[TCP四次挥手关闭连接的图解与实践总结]]></title><link>https://blog.youkuaiyun.com/StarsionBlog/article/details/62045587</link><guid>https://blog.youkuaiyun.com/StarsionBlog/article/details/62045587</guid><author>StarsionBlog</author><pubDate>Tue, 14 Mar 2017 16:53:05 +0800</pubDate><description><![CDATA[TCP的关闭连接比TCP连接的建立稍微复杂一些，下面我把个人的学习和理解写下来分享。
（参考《计算机网络》，第6版，谢希仁著）。

1、TCP关闭连接的步骤


假设现有客户端A和服务端B，客户端A向服务端B发出关闭连接请求。
步骤一：客户端A主动向服务端B发送请求关闭连接报文段，FIN=1，seq=u，并进入FIN-WAIT-1状态，
步骤二：服务端B接受到客户端A的请求之后返回]]></description><category></category></item></channel></rss>