<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[guorun18的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/guorun18</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; guorun18]]></copyright><item><title><![CDATA[SecureRandom 引发的线程阻塞]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/101226799</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/101226799</guid><author>guorun18</author><pubDate>Mon, 23 Sep 2019 22:08:14 +0800</pubDate><description><![CDATA[写在前面--每个人都是在不断碰壁中获得成长，bug的逼格越高， 成长速度越快。

    本人上周亲手写下了一个牛逼的bug，直接导致的结果是，晚上12点升级后台接口以后，第二天早上7点多开始，所有的app页面出现卡顿，白屏。公司研发老总，迅速召集公司运维大佬，产品大佬，研发大佬奔赴公司解决bug。所有人，开始手忙脚乱，查看线上日志，抓包，阿尔萨斯监听 接口耗时。各个大神，各种手段，各显才...]]></description><category></category></item><item><title><![CDATA[分布式锁（转载自:https://www.cnblogs.com/seesun2012/p/9214653.html）]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/89386298</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/89386298</guid><author>guorun18</author><pubDate>Thu, 18 Apr 2019 19:43:16 +0800</pubDate><description><![CDATA[### 什么是锁？

在单进程的系统中，当存在多个线程可以同时改变某个变量（可变共享变量）时，就需要对变量或代码块做同步，使其在修改这种变量时能够线性执行消除并发修改变量。
	而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行，那么需要在某个地方做个标记，这个标记必须每个线程都能看到，当标记不存在时可以设置该标记，其余后续线程发现已经有标记了则等待拥有标记的线...]]></description><category></category></item><item><title><![CDATA[HBase读写的几种方式（三）flink篇（转载自：https://www.cnblogs.com/swordfall/p/10527423.html）]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/88974464</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/88974464</guid><author>guorun18</author><pubDate>Tue, 02 Apr 2019 16:10:39 +0800</pubDate><description><![CDATA[1. HBase连接的方式概况

主要分为：

纯JavaAPI读写HBase的方式；
	Spark读写HBase的方式；
	Flink读写HBase的方式；
	HBase通过Phoenix读写的方式；
第一种方式是HBase自身提供的比较原始的高效操作方式，而第二、第三则分别是Spark、Flink集成HBase的方式，最后一种是第三方插件Phoenix集成的JDBC方式，Phoenix集成的...]]></description><category></category></item><item><title><![CDATA[对于集合一定要调用isEmpty]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/80625773</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/80625773</guid><author>guorun18</author><pubDate>Fri, 08 Jun 2018 17:12:38 +0800</pubDate><description><![CDATA[转自:https://blog.youkuaiyun.com/xiaojianpitt/article/details/6886208Reasons to call.isEmpty on collections我已经不止一次看到这样的代码：if (collection.size() &amp;gt; 0) { ...}这是大多数程序员检查集合不为空的第一固有想法。但是，这里有一个更好的方法isEmpty:if (!c...]]></description><category></category></item><item><title><![CDATA[深入理解Java：SimpleDateFormat安全的时间格式化]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/80625750</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/80625750</guid><author>guorun18</author><pubDate>Fri, 08 Jun 2018 17:11:31 +0800</pubDate><description><![CDATA[本文转自：https://www.cnblogs.com/peida/archive/2013/05/31/3070790.html想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类，该类用来对日期字符串进行解析和格式化输出，但如果使用不小心会导致非常微妙和难以调试的问题，因为 DateFormat 和 SimpleDateFor...]]></description><category></category></item><item><title><![CDATA[根据图片路径把图片的二进制数据写入内存]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/79761234</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/79761234</guid><author>guorun18</author><pubDate>Fri, 30 Mar 2018 17:54:32 +0800</pubDate><description><![CDATA[public static byte[] readInputStream(InputStream inStream) throws Exception{  	        ByteArrayOutputStream outStream = new ByteArrayOutputStream();  	        //创建一个Buffer字符串  	        byte[] buffer ...]]></description><category></category></item><item><title><![CDATA[开启多线程执行]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/79761197</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/79761197</guid><author>guorun18</author><pubDate>Fri, 30 Mar 2018 17:52:40 +0800</pubDate><description><![CDATA[public static void main(String[] args) throws Exception {		        for (int i = 0; i &amp;lt; 500; i++) {		        	startThread();		           		         }	}	public static void startThread() {	       new ...]]></description><category></category></item><item><title><![CDATA[spring boot thymeleaf 报 找不到模板]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/79665441</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/79665441</guid><author>guorun18</author><pubDate>Fri, 23 Mar 2018 11:48:26 +0800</pubDate><description><![CDATA[启动类如下:   @ RestController@SpringBootApplicationpublic class ExampleSpringBoot extends WebMvcConfigurerAdapter{	public static void main(String[] args) {		SpringApplication.run(ExampleSpringBoot.class, ...]]></description><category></category></item><item><title><![CDATA[多线程模式下懒汉式单利模式]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/79364643</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/79364643</guid><author>guorun18</author><pubDate>Sat, 24 Feb 2018 18:42:01 +0800</pubDate><description><![CDATA[private static Singlon instance = null;	public static String s = &quot;aa&quot;;	private Singlon() {    }	public static Singlon getInstance(){		 if (instance == null) {  	            synchronized (Singlon.class...]]></description><category></category></item><item><title><![CDATA[java简单实现RabbitMQ]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/78043810</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/78043810</guid><author>guorun18</author><pubDate>Wed, 20 Sep 2017 18:11:04 +0800</pubDate><description><![CDATA[前言：在这里我将用java来简单的实现rabbitMQ。下面我们带着下面问题来一步步的了解和学习rabbitMQ。

1：如果消费者连接中断，这期间我们应该怎么办

2：如何做到负载均衡

3：如何有效的将数据发送到相关的接收者？就是怎么样过滤

4：如何保证消费者收到完整正确的数据

5：如何让优先级高的接收者先收到数据

一："Hello RabbitMQ"

下面]]></description><category></category></item><item><title><![CDATA[Java中的set去重复（基础类型，与对象）转载自http://blog.youkuaiyun.com/miqi770/article/details/8998517]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/77452660</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/77452660</guid><author>guorun18</author><pubDate>Mon, 21 Aug 2017 17:08:59 +0800</pubDate><description><![CDATA[import java.util.ArrayList;  
import java.util.HashSet;  
import java.util.List;  
import java.util.Set;  
  
/** 
 * 编写者：CP 
 * 编写日期：2011-9-7 
 * 类描述：set集合针对String 类型和8大基础数据类型  过滤掉重复数据,如果存放的是]]></description><category></category></item><item><title><![CDATA[redis的使用（转载自:http://www.cnblogs.com/edisonfeng/p/3571870.html）]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/77195568</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/77195568</guid><author>guorun18</author><pubDate>Tue, 15 Aug 2017 15:57:02 +0800</pubDate><description><![CDATA[java对redis的基本操作




一、server端安装
　　1、下载
　　　　https://github.com/MSOpenTech/redis
　　　　可看到当前可下载版本：redis2.6
　　　　
　　　　下载windows平台文件：
　　　　
　　　　　
　　　　　解压后，选择当前64位win7系统对应的版本：
　　　　　
　　2、安装
　　　　]]></description><category></category></item><item><title><![CDATA[spring 配置数据库连接池]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/75034714</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/75034714</guid><author>guorun18</author><pubDate>Wed, 12 Jul 2017 17:12:53 +0800</pubDate><description><![CDATA[1 dbcp
 bean id = "dataSource" class = "org.apache.commons.dbcp.BasicDataSource" >
           property name = "driverClassName" value = "com.mysql.jdbc.Driver" />
               property name = "ur]]></description><category></category></item><item><title><![CDATA[关于echarts 跟ie的兼容性问题]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/74531603</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/74531603</guid><author>guorun18</author><pubDate>Thu, 06 Jul 2017 12:00:06 +0800</pubDate><description><![CDATA[1 echarts 在谷歌浏览器中可以所向披靡，丝毫不会出现因兼容性问题出现图像不显示的结果。而在ie中似乎却不太混得开
最近在做折线图的展示，引入了资源echarts.js
谷歌中正常显示，而在ie中却出现了如下问题:
 初始化的时候图形不显示，在F12开启的情况下 刷新页面，图形正常显示，经过调试发现 echarts.init(document.getElementById('first]]></description><category></category></item><item><title><![CDATA[js ie下 new Date()带参数不兼容的问题]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/73129427</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/73129427</guid><author>guorun18</author><pubDate>Mon, 12 Jun 2017 17:33:24 +0800</pubDate><description><![CDATA[//时间转为时间格式
var mills = new Date(Date.parse(currentTime.replace(/-/g,"/"))).getTime();//获得毫秒数
var nowDate = new Date(mills);]]></description><category></category></item><item><title><![CDATA[把查询结果的两行的同一列合并的方法]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/72236120</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/72236120</guid><author>guorun18</author><pubDate>Tue, 16 May 2017 10:12:59 +0800</pubDate><description><![CDATA[Oracle中提供了该方法，
Wm_concat(pv.value)
但是查询结果是clob类型。Oracle中提供了

dbms_lob的一些用法
对Lob进行处理


dbms_lob.substr(Wm_concat(pv.value)) 把clob转化成了字符串类型]]></description><category></category></item><item><title><![CDATA[jQuery中的一些自己写的方法]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/71268536</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/71268536</guid><author>guorun18</author><pubDate>Sat, 06 May 2017 15:41:14 +0800</pubDate><description><![CDATA[/*
 * 把字符串中的所有s1,替换为s2
 * 
 * */
String.prototype.replaceAll  = function(s1,s2){   
    return this.replace(new RegExp(s1,"g"),s2);    
}


/*
 * 
 * 页面传值获取参数，
 * 已对中文进行解码
 * */
function]]></description><category></category></item><item><title><![CDATA[在ibatis中打印sql语句]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/71169845</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/71169845</guid><author>guorun18</author><pubDate>Thu, 04 May 2017 13:59:54 +0800</pubDate><description><![CDATA[web.xml中配置:




org.springframework.web.util.Log4jConfigListener


log4jConfigLocation
WEB-INF/classes/config/log4j.xml




:log4j.xml:










value="%p - %C{1}.%M(%L) | %m]]></description><category></category></item><item><title><![CDATA[照片上传]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/71169802</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/71169802</guid><author>guorun18</author><pubDate>Thu, 04 May 2017 13:52:46 +0800</pubDate><description><![CDATA[Class BaseAction {
public File image; //上传的文件
public String imageFileName; //文件名称
public String imageContentType; //文件类型








//获取上传照片的路径
String path = ServletActionContext.getServletC]]></description><category></category></item><item><title><![CDATA[redis 使用]]></title><link>https://blog.youkuaiyun.com/guorun18/article/details/70242334</link><guid>https://blog.youkuaiyun.com/guorun18/article/details/70242334</guid><author>guorun18</author><pubDate>Wed, 19 Apr 2017 16:46:36 +0800</pubDate><description><![CDATA[redis是Nosql数据库中使用较为广泛的非关系型内存数据库，redis内部是一个key-value存储系统。它支持存储的value类型相对更多，包括string(字符串)、list(链表)、set(集合)、zset(sorted
 set –有序集合)和hash（哈希类型，类似于Java中的map）。Redis基于内存运行并支持持久化的NoSQL数据库，是当前最热门的NoSql数据库之一，也]]></description><category></category></item></channel></rss>