<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[angsu7023的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/angsu7023</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; angsu7023]]></copyright><item><title><![CDATA[Java教程]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126588</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126588</guid><author>angsu7023</author><pubDate>Fri, 26 Apr 2019 09:36:00 +0800</pubDate><description><![CDATA[1.小奋斗http://www.what21.com/u/10029/8939414159328047865.htm

转载于:https://www.cnblogs.com/dand/p/10772483.html]]></description><category></category></item><item><title><![CDATA[13.并发编程]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126586</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126586</guid><author>angsu7023</author><pubDate>Sat, 13 Apr 2019 23:14:00 +0800</pubDate><description><![CDATA[13.并发编程

转载于:https://www.cnblogs.com/dand/p/10703487.html]]></description><category></category></item><item><title><![CDATA[redis 实现]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126584</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126584</guid><author>angsu7023</author><pubDate>Wed, 10 Apr 2019 11:33:00 +0800</pubDate><description><![CDATA[/**
     *  Returns a string containing the string representation of each of {@code parts}, using the
     *  previously configured separator between each.
     * @param iterables 可遍历集合...]]></description><category></category></item><item><title><![CDATA[CyclicBarrier介绍]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126583</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126583</guid><author>angsu7023</author><pubDate>Tue, 09 Apr 2019 10:00:00 +0800</pubDate><description><![CDATA[应用场景 在某种需求中，比如一个大型的任务，常常需要分配好多子任务去执行，只有当所有子任务都执行完成时候，才能执行主任务，这时候，就可以选择CyclicBarrier了。 实例分析 我们需要统计全国的业务数据。其中各省的数据库是独立的，也就是说按省分库。并且统计的数据量很大，统计过程也比较慢。为了提高性能，快速计算。我们采取并发的方式，多个线程同时计算各省数据，最后再汇总统计。在这里Cy...]]></description><category></category></item><item><title><![CDATA[Future模式衍生出来的更高级的应用]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126581</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126581</guid><author>angsu7023</author><pubDate>Mon, 08 Apr 2019 15:26:00 +0800</pubDate><description><![CDATA[再上一个场景：我们自己写一个简单的数据库连接池，能够复用数据库连接，并且能在高并发情况下正常工作。
实现代码1：

package test;

import java.util.concurrent.ConcurrentHashMap;

public class ConnectionPool {

    private ConcurrentHashMap&lt;S...]]></description><category></category></item><item><title><![CDATA[并发编程 futuretask]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126536</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126536</guid><author>angsu7023</author><pubDate>Mon, 08 Apr 2019 15:08:00 +0800</pubDate><description><![CDATA[package com.mrbird.api.demoThread.future;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * @Descript...]]></description><category></category></item><item><title><![CDATA[并发编程futuretask]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126582</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126582</guid><author>angsu7023</author><pubDate>Mon, 08 Apr 2019 14:50:00 +0800</pubDate><description><![CDATA[package com.mrbird.api.demoThread.thread1;

/**
 * @Description
 * @Date: 2019/3/29
 */

import java.util.concurrent.*;

/**
 * Future
 * Futures是一个抽象的概念，它表示一个值，该值可能在某一点变得可用。一个Future...]]></description><category></category></item><item><title><![CDATA[Java重头学]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126580</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126580</guid><author>angsu7023</author><pubDate>Wed, 03 Apr 2019 11:18:00 +0800</pubDate><description><![CDATA[前言：这两周来上了腾讯课堂-软媒-JAVA架构师黄埔班的课程后，发现自己真心是一个菜鸟，Java基础知识和日常开发所需的知识还有很多很多。就此，我准备跟着这个课程重头学习Java，成为一名合格的Java程序员。
以下，为我准备在未来数年不等学习的知识点，如有错误或不全后续持续更改。
基础目录


    1java开发环境
    2.linux开发环境配置
    3.j...]]></description><category></category></item><item><title><![CDATA[InputString 转换成 BufferedImage 和  byte[]]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126579</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126579</guid><author>angsu7023</author><pubDate>Thu, 28 Mar 2019 13:54:00 +0800</pubDate><description><![CDATA[获取网络的一张图片，但是某种需要，要把获取的这段流输入换为BufferedImage流，有的地方还需要转换为byte[].
获得图片地址，获得了一个图片输入流，例如：
Url img = new URL(url);InputStream in =
img.openStream();


接着把输入流转为BufferedImage：
JPEGImageDecoder de...]]></description><category></category></item><item><title><![CDATA[mysql批量更新]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126576</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126576</guid><author>angsu7023</author><pubDate>Fri, 22 Mar 2019 09:28:00 +0800</pubDate><description><![CDATA[UPDATE t_in_collect_log LOGINNER JOIN ( SELECT invoice_number, gmt_created, gmt_modified FROM t_in_collect_invoice temp ) c ON log.invoice_number = c.invoice_number SET log.gmt_created = c.gmt_cr...]]></description><category></category></item><item><title><![CDATA[关于ajax请求数据，并将数据赋值给全局变量的一些解决方法]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126578</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126578</guid><author>angsu7023</author><pubDate>Fri, 15 Mar 2019 00:33:00 +0800</pubDate><description><![CDATA[在使用ajax请求数据是，开始的时候是打算将ajax的数据取出，并赋予给全局变量，但是在实际编码过程中发现并不能将数据赋予给最开始定义的全局变量，出现这个问题的原因是由于ajax异步加载的原因，所以只能用其他方法来解决，下来是解决的方法
第一个解决方法没有使用全局变量，直接在ajax请求中将请求到的数据赋值给需要的地方 第二个方法是将请求到的数据，通过方法传参来传递给一个方法，然后再方...]]></description><category></category></item><item><title><![CDATA[ajax 函数回调]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126574</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126574</guid><author>angsu7023</author><pubDate>Thu, 14 Mar 2019 15:47:00 +0800</pubDate><description><![CDATA[var initTaxPriod = function (taxNo) {    intitSearch();    $("#taxPeriod").html("");    taxPeriod.getTaxPeriodWithCallback($("#purchaserTaxNo").val(), getTaxPeriod);};============================...]]></description><category></category></item><item><title><![CDATA[java 23种设计模式 深入理解]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126572</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126572</guid><author>angsu7023</author><pubDate>Wed, 13 Mar 2019 19:28:00 +0800</pubDate><description><![CDATA[以下是学习过程中查询的资料,别人总结的资料,比较容易理解(站在各位巨人的肩膀上,望博主勿究)
创建型
工厂方法http://www.cnblogs.com/java-my-life/archive/2012/03/25/2416227.html (同一个产产品等级)抽象工厂模式http://www.cnblogs.com/java-my-life/archive/2012/03...]]></description><category></category></item><item><title><![CDATA[linux 硬盘满了如何处理]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126541</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126541</guid><author>angsu7023</author><pubDate>Wed, 13 Mar 2019 11:14:00 +0800</pubDate><description><![CDATA[事件源于在服务器运行一个脚本程序…
好好的脚本突然报错,还以为脚本出现问题了。细看报错原因(具体报错信息已经忘记了)，是没有可用空间。从没遇见过这个情况，怎么办呢？
一、确定是不是真的是磁盘空间不足
输入命令：df –lh 查看磁盘信息

很明显：Filesystem下的挂载点 /dev/xvda1 下的40G容量已经耗尽。
既然问题已经确定了，接下来就是处...]]></description><category></category></item><item><title><![CDATA[mybaits返回自增主键ID]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126537</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126537</guid><author>angsu7023</author><pubDate>Tue, 12 Mar 2019 09:35:00 +0800</pubDate><description><![CDATA[mybaits两种获取自增主键ID的方法：一种是使用useGeneratedKeys，第二种是selectKey方法获取。
useGeneratedKeys

&lt;insert id="insert" parameterType="com.github.chengbin.auth.entity.User" useGeneratedKeys="true" keyProperty=...]]></description><category></category></item><item><title><![CDATA[lambda表达式——写多线程]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126538</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126538</guid><author>angsu7023</author><pubDate>Tue, 05 Mar 2019 09:51:00 +0800</pubDate><description><![CDATA[JDK1.8 中Lambda 表达式的出现，基本可以取替原来的匿名类实现多线程的方式。下面列举常用的常用的三种情况。
一、普通开启异步线程

new Thread(() -&gt; System.out.println("--" + "aaa")).start();1
二、线程池开启异步线程（不接收返回参数）

public static ExecutorService ...]]></description><category></category></item><item><title><![CDATA[使用Spring ThreadPoolTaskExecutor实现多线程任务]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126577</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126577</guid><author>angsu7023</author><pubDate>Tue, 05 Mar 2019 09:42:00 +0800</pubDate><description><![CDATA[我们为何使用多线程，之前已经有讲过了，为了更快的处理多个任务，分割任务，或者调用多个毫无关联的第三方服务
其实spring就提供了ThreadPoolTaskExecutor这个类来实现线程池，线程池是啥，可以理解为数据源，或者有一堆线程的池子也行
在spring配置中我们可以写好如下代码（大致意思都在注释中，不多说了，百度也一堆）：

&lt;bean id="taskExec...]]></description><category></category></item><item><title><![CDATA[Java模拟耗时任务异步执行]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126575</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126575</guid><author>angsu7023</author><pubDate>Mon, 04 Mar 2019 13:29:00 +0800</pubDate><description><![CDATA[说明：耗时任务开启单独线程处理，任务线程处理完毕通知主线程
1、回调接口定义

public interface ResponseCallBack {

    public void printMsg(String msg);

}

2、模拟耗时任务线程

public class TestMain {

 

    public static voi...]]></description><category></category></item><item><title><![CDATA[MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126573</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126573</guid><author>angsu7023</author><pubDate>Wed, 27 Feb 2019 16:06:00 +0800</pubDate><description><![CDATA[最近在项目中遇到了这样的一个问题“：
在mysql数据库中需要每次插入的时候不能插入三个字段都相同的记录。在这里使用到了 insert into if not exists 和insert ignore into 这两种方式，既然使用到了就在这里总结一下吧，毕竟mysql中的函数或者关键字太多了，使用到了就将相关的都总结一下。分享出来各位爷参考参考。
先说我自己项目中使用到的，然...]]></description><category></category></item><item><title><![CDATA[ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql]]></title><link>https://blog.youkuaiyun.com/angsu7023/article/details/102126570</link><guid>https://blog.youkuaiyun.com/angsu7023/article/details/102126570</guid><author>angsu7023</author><pubDate>Wed, 27 Feb 2019 16:04:00 +0800</pubDate><description><![CDATA[本文为博主原创，转载请注明出处。
 在实际应用中，经常碰到导入数据的功能，当导入的数据不存在时则进行添加，有修改时则进行更新，
在刚碰到的时候，第一反应是将其实现分为两块，分别是判断增加，判断更新，后来发现在mysql中有
ON DUPLICATE KEY UPDATE一步就可以完成，感觉实在是太方便了，
 该语句是基于唯一索引或主键使用，比如一个字段a被...]]></description><category></category></item></channel></rss>