<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java 学习笔记]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sliping123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sliping123]]></copyright><item><title><![CDATA[音频文件合成]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/135078364</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/135078364</guid><author>sliping123</author><pubDate>Tue, 19 Dec 2023 10:18:21 +0800</pubDate><description><![CDATA[音频文件合成http://ffmpeg.org/download.html
https://blog.youkuaiyun.com/u013314786/article/details/89682800
http://www.360doc.com/content/19/0317/01/10519289_822112563.shtml
https://www.cnblogs.com/zx3707/p/13083921.htmlhttps://blog.youkuaiyun.com/zranxi/article/details/122]]></description><category></category></item><item><title><![CDATA[CompletableFuture指定异步线程池]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/121221454</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/121221454</guid><author>sliping123</author><pubDate>Tue, 09 Nov 2021 09:42:19 +0800</pubDate><description><![CDATA[CompletableFuture指定异步线程池

自定义线程池

@Configuration
public class ThreadPoolConfig {

    //参数初始化
    private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
    //核心线程数量大小
    private static final int corePoolSize = Math.max(2, Math.m]]></description><category></category></item><item><title><![CDATA[多线程InheritableThreadLocal]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/109994328</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/109994328</guid><author>sliping123</author><pubDate>Mon, 23 Nov 2020 13:58:59 +0800</pubDate><description><![CDATA[多线程InheritableThreadLocal用法
public class ThreadEnd extends InheritableThreadLocal {

    @Override
    protected Object childValue(Object parentValue) {
        return parentValue;
    }
}

public class Tools {
  public static ThreadEnd t2= new ThreadEnd()]]></description><category></category></item><item><title><![CDATA[多线程ThreadLocal]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/109994204</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/109994204</guid><author>sliping123</author><pubDate>Mon, 23 Nov 2020 13:55:48 +0800</pubDate><description><![CDATA[多线程ThreadLocal用法
public class Tools {

    public static ThreadLocal t1 = new ThreadLocal();
`
}``


@Slf4j
public class ThreadA implements Runnable{
@Override
public void run() {
try{
for(int i=0;i&lt;5;i++){
Tools.t1.set(“ThreadA=”+(i+1));
log.info(“Thre]]></description><category></category></item><item><title><![CDATA[多线程CyclicBarrier]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/109991415</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/109991415</guid><author>sliping123</author><pubDate>Mon, 23 Nov 2020 11:49:41 +0800</pubDate><description><![CDATA[CyclicBarrier用法
  public static void main(String[] args) {

       Executor executors= Executors.newFixedThreadPool(1);

        final CyclicBarrier barrier = new CyclicBarrier(2,()-&gt;{
                executors.execute(()-&gt;{
                    Syste]]></description><category></category></item><item><title><![CDATA[多线程CountDownLatch]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/109852609</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/109852609</guid><author>sliping123</author><pubDate>Fri, 20 Nov 2020 16:10:18 +0800</pubDate><description><![CDATA[CountDownLatch 用法
在这里插入代码片

@Slf4j
public class LactchA implements Runnable{
private CountDownLatch countDownLatch;

@Override
public void run() {
    try {
        log.info("洗苹果");
        countDownLatch.countDown();
    }catch (Exception e){

    }
}

pu]]></description><category></category></item><item><title><![CDATA[多线程编future用法]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/109850225</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/109850225</guid><author>sliping123</author><pubDate>Fri, 20 Nov 2020 15:15:05 +0800</pubDate><description><![CDATA[future
public class FutureA implements Callable&lt;String&gt; {
    @Override
    public String call() throws Exception {

        return "hello,";
    }
}

public class FutureB implements Callable&lt;String&gt; {
    @Override
    public String call() thr]]></description><category></category></item><item><title><![CDATA[多线程Join方法]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/109847924</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/109847924</guid><author>sliping123</author><pubDate>Fri, 20 Nov 2020 14:28:30 +0800</pubDate><description><![CDATA[多线程编程join
join保证线程顺序执行
@Slf4j
public class JoinA  implements Runnable{
    @Override
    public void run() {
        log.info("洗苹果");
    }
}

@Slf4j
public class JoinB implements Runnable {
    @Override
    public void run() {
        log.info("吃苹果");
  ]]></description><category></category></item><item><title><![CDATA[jfree 后台画图(网上找的资料)]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/104051063</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/104051063</guid><author>sliping123</author><pubDate>Mon, 20 Jan 2020 14:07:48 +0800</pubDate><description><![CDATA[org.jfree.chart 画图
package com.pdf.pdfdemo.bcharts;

import java.awt.Color;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Date;


import com.pdf.pdfdemo.bcharts.util.ChartUtil...]]></description><category></category></item><item><title><![CDATA[poi合并docx文档]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/104014996</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/104014996</guid><author>sliping123</author><pubDate>Fri, 17 Jan 2020 10:15:27 +0800</pubDate><description><![CDATA[poi合并docx文档
package com.pdf.pdfdemo;

import org.docx4j.jaxb.Context;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
impo...]]></description><category></category></item><item><title><![CDATA[doc文档转化为docx，python]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/104014834</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/104014834</guid><author>sliping123</author><pubDate>Fri, 17 Jan 2020 10:09:01 +0800</pubDate><description><![CDATA[doc文件转化为docx
目前找到doc文件转化为docx比较少，商业版 com.spire.doc 很好用，但是需要收费
查找资料，找到一种利用python脚本，将doc转化docx的实现方式，性能好像很差

Java代码
package com.pdf.pdfdemo;

import java.io.BufferedReader;
import java.io.InputStreamRead...]]></description><category></category></item><item><title><![CDATA[Java后台执行echarts画图]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/104014687</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/104014687</guid><author>sliping123</author><pubDate>Fri, 17 Jan 2020 10:04:14 +0800</pubDate><description><![CDATA[代码示例（参考网上别人的代码，自己整理的）
package com.pdf.pdfdemo;


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.i...]]></description><category></category></item><item><title><![CDATA[生成word的方法]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/103929770</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/103929770</guid><author>sliping123</author><pubDate>Fri, 10 Jan 2020 19:35:53 +0800</pubDate><description><![CDATA[frermark
在word文档中，用${}占用填充，转化成xml文件，然后更改后缀名ftl，然后在里面加代码，一些freemark的语法标签

ireport
下载ireport包，挑战表格

itext
制作pdf模板，itext填充

poi
spire.doc
商业版的doc文档操作，功能很强大


...]]></description><category></category></item><item><title><![CDATA[freemark 列循环]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/103737391</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/103737391</guid><author>sliping123</author><pubDate>Fri, 27 Dec 2019 19:22:45 +0800</pubDate><description><![CDATA[freemark列循环
先行循环，在列循环，双层循环




]]></description><category></category></item><item><title><![CDATA[freemark导出word]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/103732357</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/103732357</guid><author>sliping123</author><pubDate>Fri, 27 Dec 2019 15:02:30 +0800</pubDate><description><![CDATA[freemark填充表格
pom.xml 添加jar
  &lt;dependency&gt;
            &lt;groupId&gt;org.freemarker&lt;/groupId&gt;
            &lt;artifactId&gt;freemarker&lt;/artifactId&gt;
            &lt;version&gt;2.3.20&...]]></description><category></category></item><item><title><![CDATA[好用的注解]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/91421833</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/91421833</guid><author>sliping123</author><pubDate>Tue, 11 Jun 2019 14:41:20 +0800</pubDate><description><![CDATA[DateTimeFormat
 @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date date;
在接受json对象时，在对应的字段上加上这个注解，可以字段转化为日期对象

JsonFormat
@JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
  ...]]></description><category></category></item><item><title><![CDATA[理解学习restful风格接口]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/89849087</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/89849087</guid><author>sliping123</author><pubDate>Sun, 05 May 2019 16:40:30 +0800</pubDate><description><![CDATA[理解学习restful风格接口
对于之前不理解restful风格接口的规范，用法，以及的他的好处的，可以看一下博客
https://www.colabug.com/228298.html
https://blog.youkuaiyun.com/zl1zl2zl3/article/details/73867113
https://www.jianshu.com/p/91600da4df95

...]]></description><category></category></item><item><title><![CDATA[redis系统知识教程]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/89516568</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/89516568</guid><author>sliping123</author><pubDate>Thu, 25 Apr 2019 15:09:15 +0800</pubDate><description><![CDATA[redis系统教程
学习一门新技术之前，个人认为首先了解新技术产生的背景，解决问题，遗留的问题，应用场景，应用中会产生什么问题，其次了解其工具的使用，再其次深入原理，最近看到一篇很好的redis博客教程，在此分享
博客地址: https://mp.weixin.qq.com/s?__biz=MzI1NDY0MTkzNQ==&amp;mid=2247484570&amp;idx=1&amp;sn=3...]]></description><category></category></item><item><title><![CDATA[redis序列化方式]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/89515710</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/89515710</guid><author>sliping123</author><pubDate>Thu, 25 Apr 2019 14:38:00 +0800</pubDate><description><![CDATA[redis序列化方式 （内容复制别人的博客，留作学习笔记）
spring-data-redis的序列化类有下面这几个:
GenericToStringSerializer: 可以将任何对象泛化为字符串并序列化
Jackson2JsonRedisSerializer: 跟JacksonJsonRedisSerializer实际上是一样的
JacksonJsonRedisSerializer: 序列化...]]></description><category></category></item><item><title><![CDATA[ide配置git和gradle]]></title><link>https://blog.youkuaiyun.com/sliping123/article/details/89515387</link><guid>https://blog.youkuaiyun.com/sliping123/article/details/89515387</guid><author>sliping123</author><pubDate>Thu, 25 Apr 2019 14:23:28 +0800</pubDate><description><![CDATA[配置git博客地址
https://blog.youkuaiyun.com/u012236123/article/details/80415883
配置gradle博客地址
https://blog.youkuaiyun.com/achenyuan/article/details/80682288#在idea里gradle配置和使用

]]></description><category></category></item></channel></rss>