<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[younger_z的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/younger_z</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; younger_z]]></copyright><item><title><![CDATA[android阅读器长按选择文字功能实现代码]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/119544120</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/119544120</guid><author>younger_z</author><pubDate>Mon, 09 Aug 2021 18:19:43 +0800</pubDate><description><![CDATA[前言： 有时候我们需要实现长按选择文字功能，比如阅读器一般都有这个功能，有时候某个自定义控件上可能就有这种需求，如何实现呢？正好最近还算闲，想完善一下自己写的那个轻量级的txt文件阅读器（比如这个长按选择文字的功能就想加进去）。于是花了两三天时间，实现了这个功能，效果还是不错的。

首先先看看效果图吧：

转载注务必明：http://blog.youkuaiyun.com/u014614038/article/details/74451484

授人以鱼不如授人以渔，下面具体实现原理的教程。‘

1.实现原理
原理其实]]></description><category></category></item><item><title><![CDATA[uniapp DES加解密]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/109157490</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/109157490</guid><author>younger_z</author><pubDate>Mon, 19 Oct 2020 11:26:27 +0800</pubDate><description><![CDATA[1、打开HBuilderX的视图-&gt;显示终端

　　cd 切换到你项目的根目录

　　执行命令 npm install crypto-js

   安装成功后你的项目根目录会生成node_modules文件夹，里面有crypto-js就说明成功了

2、封装一个des.js






	import CryptoJS from '../node_modules/crypto-js/crypto-js.js'
	
	
	
	// DES加密
	
	
	export const encryp...]]></description><category></category></item><item><title><![CDATA[一分钟解决this.$refs.xxx 取值为undefined问题]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/108894228</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/108894228</guid><author>younger_z</author><pubDate>Thu, 01 Oct 2020 11:56:35 +0800</pubDate><description><![CDATA[问题场景是这样，
我们设定一个组件的ref = ‘a’，根据生命周期，我们是可以在mounted中访问的，但是console.log(this.$refs.a)是undefined，而我们this.$refs打印出来，这个a是存在的，这是为什么呢？

可能你还没有注意到，Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化，Vue 将开启一个队列，并缓冲在同一事件循环中发生的所有数据变更。如果同一个 watcher 被多次触发，只会被推入到队列中一次。这种在缓冲时去除重复数据对于避免不必要的计算和 D]]></description><category></category></item><item><title><![CDATA[uniapp中使用sqlite模块1——打包SQLite]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/108756866</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/108756866</guid><author>younger_z</author><pubDate>Wed, 23 Sep 2020 17:02:42 +0800</pubDate><description><![CDATA[官方SDK下载地址：https://nativesupport.dcloud.net.cn/AppDocs/download/android

sqlite用法：使用SQLite

uniapp导入sqlite模块：

第一步，使用HBuilderX：

打开manifest.json配置文件：



第二步，如果使用离线打包，此时无需其他配置，可直接打包使用，如使用离线打包：

使用Android studio：

在官方提供的SDK解压后，在libs目录下找到sqlite-release.aar，并将.]]></description><category></category></item><item><title><![CDATA[Inno Setup 根据window系统32位或64位安装对应程序]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/108644263</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/108644263</guid><author>younger_z</author><pubDate>Thu, 17 Sep 2020 15:19:30 +0800</pubDate><description><![CDATA[最近在弄java Swing 打包成可执行文件，这时候用到了Inno Setup工具，这个打包成安装程序还是非常不错的，下面用到的Inno Setup的脚本，有注释








	; -- 64BitTwoArch.iss --
	
	
	; Demonstrates how to install a program built for two different
	
	
	; architectures (x86 and x64) using a single installer.
	
	
	
...]]></description><category></category></item><item><title><![CDATA[VUE+Element-UI环境搭建]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/108582253</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/108582253</guid><author>younger_z</author><pubDate>Mon, 14 Sep 2020 16:40:53 +0800</pubDate><description><![CDATA[1. 在命令行终端进入eclipse的工作目录下面，查看npm的版本，npm的版本需要大于3.0，如果版本低需要升级npm：



check npm version

也可以使用npm的淘宝镜像及其命令cnpm，速度比较快：

$cnpm install npm -g #升级npm

$npm install cnpm -g #升级or安装cnpm

2. 安装Vue， vue-router：

$cnpm install vue

$cnpm install vue-router

3. 安装vu...]]></description><category></category></item><item><title><![CDATA[windows10环境下的RabbitMQ安装步骤（图文）]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/108467323</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/108467323</guid><author>younger_z</author><pubDate>Tue, 08 Sep 2020 14:03:14 +0800</pubDate><description><![CDATA[windows10环境下的RabbitMQ安装步骤（图文）

记录下本人在win10环境下安装RabbitMQ的步骤，以作备忘。

第一步：下载并安装erlang



原因：RabbitMQ服务端代码是使用并发式语言Erlang编写的，安装Rabbit MQ的前提是安装Erlang。
	下载地址：http://www.erlang.org/downloads


根据本机位数选择erlang下载版本。



下载完是这么个东西：




双击，点next就可以。




选择一个自己想保存的地方，...]]></description><category></category></item><item><title><![CDATA[饿了么交易系统 5 年演化史]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/105831798</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/105831798</guid><author>younger_z</author><pubDate>Wed, 29 Apr 2020 09:06:56 +0800</pubDate><description><![CDATA[挽晴技术琐话今天



Photo@Bluehouse Skis

文 |挽晴


个人简介:

2014年12月加入饿了么，当时参与后台系统的研发(Walis+Javis=&gt;Walle)，主要面向客服和BD。

2015年5月开始接触订单系统的研发，7月负责订单研发组；度过单体应用到服务化这个阶段。

2016年初搭建订单的测试团队，订单拆分为正逆向后，主要负责正向和...]]></description><category></category></item><item><title><![CDATA[JS版汉字与拼音互转终极方案，附简单的JS拼音]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/104948200</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/104948200</guid><author>younger_z</author><pubDate>Wed, 18 Mar 2020 16:49:15 +0800</pubDate><description><![CDATA[前言

网上关于JS实现汉字和拼音互转的文章很多，但是比较杂乱，都是互相抄来抄去，而且有的不支持多音字，有的不支持声调，有的字典文件太大，还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字典文件，无法根据实际需要满足需求。

综上，我精心整理并修改了网上几种常见的字典文件并简单封装了一下可以直接拿来用的工具库。

代码和DEMO演示

github项目地址：https://githu...]]></description><category></category></item><item><title><![CDATA[Spring task定时任务执行一段时间后莫名其妙停止的问题]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/104552820</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/104552820</guid><author>younger_z</author><pubDate>Fri, 28 Feb 2020 11:23:34 +0800</pubDate><description><![CDATA[前因：

我写了一个小项目，主要功能是用Spring task定时任务每天定时给用户发送邮件。执行了几个月一直没有问题，前几天，莫名其妙的突然不再发送邮件了。

只好花费一些时间来查看到底是什么原因造成的。



定时任务的作业内容：

step1: http请求方式调用远程的一个WebService接口,来获取数据,一个任务中需要调用n（n&gt;1）次远程接口。

step2: 解析获取的数...]]></description><category></category></item><item><title><![CDATA[集群、限流、缓存 BAT 大厂无非也就是这么做]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/100135045</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/100135045</guid><author>younger_z</author><pubDate>Thu, 29 Aug 2019 11:57:19 +0800</pubDate><description><![CDATA[前言

前阵子有网友询问，如何优化网站？这个问题真的很大，跟他简单的聊了一下，随便说了几点，觉得有必要整理一篇文章出来，正好前阵子在做爬虫博客，于是把大体思路分享出来，与大家互通有无，共同进步。

优化

版本一



系统开始是这样子的，一个 Tomcat 拖着一个 MySql 服务，跑在一个 2C 4G 的Linux服务器上，所有的请求都走 Tomcat，所有的查询都走 MySql，看起来像一...]]></description><category></category></item><item><title><![CDATA[Java NIO 读取文件、写入文件、读取写入混合]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/99744088</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/99744088</guid><author>younger_z</author><pubDate>Mon, 19 Aug 2019 17:51:37 +0800</pubDate><description><![CDATA[前言

Java NIO(new/inputstream outputstream)使用通道、缓冲来操作流，所以要深刻理解这些概念，尤其是，缓冲中的数据结构（当前位置(position)、限制(limit)、容量(capacity)）,这些知识点要通过写程序慢慢体会。



NIO vs 传统IO

NIO是面向缓冲、通道的；传统IO面向流

通道是双向的既可以写、也可以读；传统IO只能是单向...]]></description><category></category></item><item><title><![CDATA[java IO、NIO、AIO详解]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/99731094</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/99731094</guid><author>younger_z</author><pubDate>Mon, 19 Aug 2019 15:33:05 +0800</pubDate><description><![CDATA[目录

概述
	一、IO流（同步、阻塞）
	二、NIO（同步、非阻塞）
	三、NIO2(异步、非阻塞)


正文

回到顶部

概述

在我们学习Java的IO流之前，我们都要了解几个关键词

同步与异步（synchronous/asynchronous）：同步是一种可靠的有序运行机制，当我们进行同步操作时，后续的任务是等待当前调用返回，才会进行下一步；而异步则相反，其他任务不需要等待当前调用返...]]></description><category></category></item><item><title><![CDATA[中移短信cmpp协议netty5实现编解码]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/99334173</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/99334173</guid><author>younger_z</author><pubDate>Mon, 12 Aug 2019 20:25:30 +0800</pubDate><description><![CDATA[CMPPGate

中移短信cmpp协议netty实现编解码

这是一个在netty5框架下实现的cmpp3.0短信协议解析及网关端口管理。 代码copy了huzorro@gmail.com基于netty3.7的cmpp协议解析huzorro@gmail.com 的代码

##性能测试 在48core，128G内存的物理服务器上测试协议解析效率：35K条/s, cpu使用率25%.

Bui...]]></description><category></category></item><item><title><![CDATA[vue 监听滚轮滚动事件]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/95998549</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/95998549</guid><author>younger_z</author><pubDate>Mon, 15 Jul 2019 18:23:14 +0800</pubDate><description><![CDATA[&lt;script&gt;
    export default {
      name:"vue-scroll",
      data () {
        return {
          ……
        }
      }，
      mounted: function () {
        window.addEventListener('scroll', th...]]></description><category></category></item><item><title><![CDATA[vue 项目中 下载保存文件（MP3）]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/95919654</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/95919654</guid><author>younger_z</author><pubDate>Sun, 14 Jul 2019 20:14:53 +0800</pubDate><description><![CDATA[前面解决了 a标down属性 down不下来的问题。今天来说一下遇到的下载mp3文件的需求。解决图片跨域 用到了canvas。那么mp3格式的文件，可以采用哪些方式down下来呢。

1---form 表单 action 为下载地址 但是form表单有大小限制 对于不固定大小的MP3格式文件明显不友好。

2---file-saver 插件

vue 中应用

安装


			1
			
		...]]></description><category></category></item><item><title><![CDATA[vue路由，解决同一路由页面多次触发不刷新页面【vue开发】]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/94985244</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/94985244</guid><author>younger_z</author><pubDate>Sun, 07 Jul 2019 13:51:30 +0800</pubDate><description><![CDATA[vue路由的机制是这样的：

不同的路由vue会刷新并跳转到相应路由，但如果是下一个点击触发的还是当前路由则当前路由页面不会被刷新





要解决的问题是：

很多时候是通过地址传参触发同一个页面就没法加载不同的数据



解决思路：

虽然下一个点击还是当前路由不会刷新当前路由，但我们知道$route路由数据此时是发生了变化的，比如$route里传递的参数信息会随着每次不同的点击发...]]></description><category></category></item><item><title><![CDATA[音视频播放对应文字同步高亮且滚动到指定位置(scrollTop)]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/94381905</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/94381905</guid><author>younger_z</author><pubDate>Mon, 01 Jul 2019 10:33:38 +0800</pubDate><description><![CDATA[需求
播放音频或者视频，对应文字高亮展示以及滚动到该位置，红色方框是一个scroll


数据


代码

&lt;div class="col-sm-12 float-none new-content" height="652"&gt;
  //some infos
  &lt;input type="hidden" paraid="1" idindex="2" starttime...]]></description><category></category></item><item><title><![CDATA[15种CSS混合模式让图片产生令人惊艳的效果]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/93638396</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/93638396</guid><author>younger_z</author><pubDate>Tue, 25 Jun 2019 18:02:41 +0800</pubDate><description><![CDATA[如果你曾经广泛地使用过图片编辑应用软件（例如，Adobe Photoshop，Pixelmator，GIMP等），那么你可能对混合模式比较熟悉。如同名称中所暗示的，混合模式是指将上层的图像融入下层图像时采用的各种模式。根据您所选择的模式，你会看到不同的融合后的效果。

混合模式采取铺设在彼此顶部的两个像素，并结合他们不同的方式进行展现，例如较深的颜色混合模式只会呈现两个像素的颜色较深。在扩展到整...]]></description><category></category></item><item><title><![CDATA[vue-引入外部js文件的方法和常量]]></title><link>https://blog.youkuaiyun.com/younger_z/article/details/92154107</link><guid>https://blog.youkuaiyun.com/younger_z/article/details/92154107</guid><author>younger_z</author><pubDate>Sat, 15 Jun 2019 19:07:16 +0800</pubDate><description><![CDATA[1、方法调用

a: js文件（static/js/public.js）


			1

			2

			3

			4
			
			
			//函数的定义 返回上一页

			exportfunctiongoback(laststep) {　

			　　laststep

			}　
			
		b: 调用


			1

			2

			3

			4

			5

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