<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Run_ning_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Run_ning_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Run_ning_]]></copyright><item><title><![CDATA[深拷贝List＜对象＞]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/124450508</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/124450508</guid><author>Run_ning_</author><pubDate>Wed, 27 Apr 2022 14:35:37 +0800</pubDate><description><![CDATA[public static void main(String[] args) throws CloneNotSupportedException {
        final List&lt;Subscribe&gt; zpResultAdsList = Lists.newArrayList();
        Subscribe zpResultAds = new Subscribe();
        zpResultAds.setUserId("123456");
        zpResul]]></description><category></category></item><item><title><![CDATA[ES学习笔记(八)--kibana软件安装（MAC版本）]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/119970551</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/119970551</guid><author>Run_ning_</author><pubDate>Sat, 28 Aug 2021 17:18:54 +0800</pubDate><description><![CDATA[安装
官方下载地址：https://www.elastic.co/cn/downloads/past-releases/kibana-7-8-0
⚠️注意：软件版本需与ES版本相同，我使用的7.8.0版本


下载解压


打开/config/kibana.yml，做如下配置
 # kibana 默认端口
 server.port: 5858
 # ES服务器的地址
 	elasticsearch.hosts: ["http://localhost:8001"]
 	# 索引名 (存储kibana相关的一些]]></description><category></category></item><item><title><![CDATA[ES学习笔记(七)：文档分析]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/119854699</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/119854699</guid><author>Run_ning_</author><pubDate>Sun, 22 Aug 2021 16:57:54 +0800</pubDate><description><![CDATA[文档分析器所包含的步骤：

字符过滤器：整理字符串。eg：去掉HTML样式，&amp;转变为and
分词器：将字符串分割成词条
Token过滤器：对词条进行增、删、改

其中分词器又各有千秋
分词器大致包含：
以例句：Set the shape to semi-transparent by calling set_trans(5)

标准分析器：默认。删除绝大部分标点。最后，将词条小写

结果：set, the, shape, to, semi, transparent, by, calling, set_]]></description><category></category></item><item><title><![CDATA[Random和ThreadLocalRandom]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/119650297</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/119650297</guid><author>Run_ning_</author><pubDate>Thu, 12 Aug 2021 17:53:20 +0800</pubDate><description><![CDATA[Random和ThreadLocalRandom
Random 的随机原理：
是对一个”随机种子”进行固定的算术和位运算，得到随机结果，再使用这个结果作为下一次随机的种子。
如果在某个类中定义静态的Random，在解决线程安全问题时，Random 使用 CAS 更新下一次随机的种子，可以想到，如果多个线程同时使用这个对象，就肯定会有一些线程执行 CAS 连续失败，进而导致线程阻塞。
Random性能问题的解决方法：
可以搭配ThreadLocal使用。这样每个线程有自己的Random对象，也就是有自己的随机]]></description><category></category></item><item><title><![CDATA[ES学习笔记(六)：近实时搜索]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/119089047</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/119089047</guid><author>Run_ning_</author><pubDate>Sun, 25 Jul 2021 22:26:46 +0800</pubDate><description><![CDATA[近实时操作：

写入操作延时时间 = 主分片数据写入时间 + 并行写入副本的最大延时
在数据安全和数据延时之间，ES所做的妥协：

实时存储数据、实时读取数据的过程


首先在memory（内存）中建立索引，并在内存中写入Translog日志。后写入日志的原因是：数据在建立索引时，需要经过分词等一系列复杂的操作，有可能写入失败，为了保证日志中都是成功的数据，所以后写入。


索引建立分段的数据对象（segment）


Segment会默认在1s内refresh 到OS Cache（内存缓冲区），此时，数据]]></description><category></category></item><item><title><![CDATA[ES学习笔记(五)：读&写流程&倒排索引]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/119088995</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/119088995</guid><author>Run_ning_</author><pubDate>Sun, 25 Jul 2021 22:22:07 +0800</pubDate><description><![CDATA[一、ES写流程


客户端发起请求，ES计算此数据应存储在P0节点。
协调节点，将请求发送到主分片P0，进行数据保存
P0将数据复制发送给R0负分片
R0保存数据后，对主分片进行反馈
主分片收到副分片反馈后，将结果反馈给客户端





参数值
value





consistency
one
主分片数据写成功，就反馈



all
主分片和负分片都写成功，才反馈



quorum
默认。写之前必须确保大多数 shard 都可用，当 number_of_replicas&gt;1 时才生效。quoru]]></description><category></category></item><item><title><![CDATA[ES学习笔记(四)：分片相关]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/119088971</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/119088971</guid><author>Run_ning_</author><pubDate>Sun, 25 Jul 2021 22:19:01 +0800</pubDate><description><![CDATA[一、分片操作
创建索引时，对索引进行分片
{“settings”:{
“number_of_shards”:3,
“number_of_replicas”:1
}}

查看es集群健康程度插件 elasticsearch_head

⚠️主分片数量在创建索引时就已经确定，并且不可再改变。但是可以水平扩容副本分片。增删改时是在主分片上进行的。
具体这次请求由哪个节点的哪个分片处理，节点通过负载均衡轮询决定，分片通过协调节点根据公式（见下方）计算所得。
协调节点：请求发到哪个节点上哪个节点就是协调节点，每次请求]]></description><category></category></item><item><title><![CDATA[ES学习笔记(三)：基本核心概念]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/118668828</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/118668828</guid><author>Run_ning_</author><pubDate>Mon, 12 Jul 2021 09:57:19 +0800</pubDate><description><![CDATA[核心概念

索引 Index：一切设计都是为了提高搜索的性能
文档 Document：可被索引的基础信息单元
字段 Field：对文档数据根据属性的不同进行标识
映射 mapping： 处理数据的方式和规则方面做一些限制：某个字段的数据类型、默认值、分析器、是否被索引等。
分片 Shards：可以理解为mysql中的分表。每个分片都是本身也是一个功能完善并且独立的“索引”，这个索引可以被放置到集群中的任何节点上。

​    分片重要原因：

允许水平分割、扩展内容容量；
可进行分布式、并行的操作，进而提高]]></description><category></category></item><item><title><![CDATA[ES学习笔记(二)：集群配置与启动 --mac环境]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/118656408</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/118656408</guid><author>Run_ning_</author><pubDate>Sun, 11 Jul 2021 16:57:38 +0800</pubDate><description><![CDATA[1 环境准备：

复制原有es文件，分别为三个文件夹：Node-8001，Node-8002，Node-8003
删除三个文件夹中的data文件，清除log文件
修改配置文件

1.1修改配置文件
配置文件路径es/config/elasticsearch.yml
Node-8001文件详情：

# 集群名称
cluster.name: my-application
# 节点名称
node.name: node-8001
# master节点
node.master: true
# 是否是数据节点
node]]></description><category></category></item><item><title><![CDATA[黑客与画家--读书笔记]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/118638837</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/118638837</guid><author>Run_ning_</author><pubDate>Sat, 10 Jul 2021 18:26:51 +0800</pubDate><description><![CDATA[向着未来而生。
Live the future，then build what‘s missing。
​			               	——保罗·格雷厄姆（Paul Graham）
第一章 为什么书呆子不受欢迎
​	在美国社会的小学教育中，作者认为学生分为两种人：努力让自己变得受欢迎的人 和 书呆子。 受欢迎，是在美国公立学校这个类比监狱一样的环境下，孩子们凭空创造的一种等级制度。书呆子理解自己的处境，并不是这场游戏的失败者，只是在玩一场接近于真实世界的游戏。
​	人的精力是有限的，在成为书呆子和受欢]]></description><category></category></item><item><title><![CDATA[ES学习笔记(一) :http请求]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/118278832</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/118278832</guid><author>Run_ning_</author><pubDate>Sun, 27 Jun 2021 19:49:15 +0800</pubDate><description><![CDATA[视频学习链接：
基础知识
Elastic search：

开源的高扩展的分布式全文搜索引擎，整个ES技术栈的核心。
近乎实时的存储、检索数据
扩展性好，可扩展上百台服务器，处理PB级别的数据
基于Lucene开发（Lucene提供了全文检索的能力，但是没有办法直接使用）

入门（mac版本）
官网下载地址：https://www.elastic.co/cn/downloads/elasticsearch


启动：
通过终端进入到目录 elasticsearch-7.13.2/bin 下，执行 命令  .]]></description><category></category></item><item><title><![CDATA[CountDownLatch]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/117264237</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/117264237</guid><author>Run_ning_</author><pubDate>Tue, 25 May 2021 20:43:09 +0800</pubDate><description><![CDATA[CountDownLatch
一种同步辅助工具，允许一个或多个线程等待，直到在其他线程中执行的一组操作完成。CountDownLatch是用给定的计数初始化的。由于调用了countDown方法，await方法会阻塞，直到当前计数为零，在此之后，所有等待的线程都会被释放，后续的await调用会立即返回。这是一种一次性现象——计数不能重置。如果需要重置计数的版本，可以考虑使用CyclicBarrier。CountDownLatch是一个通用的同步工具。
/**锁存器计数-1 
 当前计数-1=0（新计数==0）]]></description><category></category></item><item><title><![CDATA[《一个广告人的自白》读书笔记]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/117199362</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/117199362</guid><author>Run_ning_</author><pubDate>Sun, 23 May 2021 19:39:10 +0800</pubDate><description><![CDATA[一个广告人的自白
背景故事
四个问题

打折销售的钱大于做广告的钱
广告文案不易被消费者读懂
产品不贴合实际
阴式广告（黑字白底的广告）


一日经商，终身经商

第一章 怎样经营广告公司
作者在美琪饭店做厨师时，他的厨师长皮塔先生对他的影响至深。从厨师长那里学到的以下品质，一直沿用至今。

比较少的夸奖下属，使下属感受到赞扬的可贵
增强下属的使命感（使下属认识到工作的意义）
信守对客户的承诺
办公桌保持整洁，否则会产生一种懒散的气氛
审核员工的工作成果
身体力行的加班，员工就不会拒绝（气死了，就这么剥削员]]></description><category></category></item><item><title><![CDATA[《计算广告》第二版 读书笔记]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/117045235</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/117045235</guid><author>Run_ning_</author><pubDate>Wed, 19 May 2021 20:27:18 +0800</pubDate><description><![CDATA[在线广告创意类型：

横幅广告
	文字链广告
	富媒体广告
	视频广告
	社交广告
	移动广告
	邮件定向营销广告、
广告发展历程：

合约广告-&gt;定向广告-&gt;竞价广告 （上下文广告）



术语解释：

ADN（ad Network）：广告网络

GSP （Generalized Second Price）：广义第二高价

CTR （Click Through Rate）：点击率=广告点击/广告展现

CVR （Conversion Rate）：转化率=转化次数/到达次数

CPS(cost.]]></description><category></category></item><item><title><![CDATA[mysql事务级别以及是如何实现的（锁）]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/113846558</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/113846558</guid><author>Run_ning_</author><pubDate>Thu, 18 Feb 2021 16:22:18 +0800</pubDate><description><![CDATA[隔离级别：ACID

读未提交

读已提交

不可重复读

串行

脏读：事务A读取到了事务B还未提交的数据
不可重复读：事务A在多次读取某数据时，读取到了事务B已经提交（update、delect）的数据，导致事务A前后读取结果不一致
	幻读：事务A在多次统计数据时，统计到了事务B已经提交的insert数据，导致事务A的前后统计结果不一致
事务隔离级别


			隔离级别
			
			
			脏读
			
			
			不可重复读
			
			
			幻读
			
			
			备注
			
		
	]]></description><category></category></item><item><title><![CDATA[JVM  类加载机制  学习笔记]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/113193677</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/113193677</guid><author>Run_ning_</author><pubDate>Tue, 26 Jan 2021 21:27:55 +0800</pubDate><description><![CDATA[类加载流程图






	加载：在硬盘上查找并通过IO读入字节码文件至JVM虚拟机方法区，同时在堆中创建class对象
	
	
	验证：校验字节码文件的正确性
	
	
	准备：为类的的静态变量分配内存，并将其初始化为默认值。此阶段仅为静态变量（static）分配内存；对于fina...]]></description><category></category></item><item><title><![CDATA[你应该知道的 JVM-垃圾回收 基础知识]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/112721053</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/112721053</guid><author>Run_ning_</author><pubDate>Sat, 16 Jan 2021 18:37:44 +0800</pubDate><description><![CDATA[垃圾回收区域：



垃圾定位算法：

1.引用计数法；栈中有几个引用指向堆中的对象，则此对象计数为几。但是这种无法解决循环依赖的问题，故基本上不采用此方法

2.可达性分析算法：根据GC roots对象作为起点，向下搜索到的引用的对象，都属于非垃圾对象，其余都是垃圾对象。

               GC roots：线程栈的本地变量、静态变量、本地方法栈的变量

垃圾回收算法：

1.标记-清除算法：Mark-sweep

           ...]]></description><category></category></item><item><title><![CDATA[必须了解的线程池基本参数类型]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/112719939</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/112719939</guid><author>Run_ning_</author><pubDate>Sat, 16 Jan 2021 18:27:18 +0800</pubDate><description><![CDATA[用户线程ULT：不需要用户态/核心态切换，速度快；线程阻塞则进程阻塞
	内核线程KLT：线程的创建、调度、管理由内核完成，速度慢；线程阻塞不会引起进程阻塞
线程的创建：

jvm通过本地方法栈的p_thread接口到内核中创建线程，内核中有线程表存储线程信息

线程的执行：

java程序创建线程后，通过库调度器（操作系统）到内核空间创建线程，并维护到线程表中。此时CPU会根据调度的算法给每个线程分配不同的执行时间（时间片），当时间片结束后，CPU还没执行完，会再分配一定的时间片。









...]]></description><category></category></item><item><title><![CDATA[2020-11月份bug集合]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/110393678</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/110393678</guid><author>Run_ning_</author><pubDate>Mon, 30 Nov 2020 18:00:20 +0800</pubDate><description><![CDATA[***1.***一定要注意在多线程的运行环境下，list、map、set类都要换成线程安全的类。
线程安全类：
newConcurrentHashXXX();
new CopyOnWriteXXX();
总之不要用线程不安全的，坑太多
***2.***依旧是多线程情况下，如果加签方法不是线程安全的，会造成请求对方时，变成一半能请求成功，一半验签失败。
原来的对方的MD5加签方法
protected static MessageDigest messagedigest = null;
 static {
  ]]></description><category></category></item><item><title><![CDATA[第二章 java内存区域与内存溢出异常 ---笔记]]></title><link>https://blog.youkuaiyun.com/Run_ning_/article/details/110393187</link><guid>https://blog.youkuaiyun.com/Run_ning_/article/details/110393187</guid><author>Run_ning_</author><pubDate>Mon, 30 Nov 2020 17:34:45 +0800</pubDate><description><![CDATA[第二章 java内存区域与内存溢出异常

2.2 运行时数据区域





1.程序计数器：为了线程切换后能恢复到正确的执行位置，每个线程都需要有一个独立的程序计数器，（线程私有内存）注：唯一一个没有规定任何内存溢出异常（OutOfMemoryError）情况的区域

2.java虚拟机栈：java方法在执行的同时创建的一个栈帧（用于存储局部变量表等），也就是常常提到的栈内存。 局部变量表的空间在编译期间完成分配



3.本地方法栈（Native Method Stack）：给非java语言使用的虚拟机.]]></description><category></category></item></channel></rss>