<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yingfeng2oo8的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yingfeng2oo8</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yingfeng2oo8]]></copyright><item><title><![CDATA[Linux中的buffer和cache到底是什么？今天终于明白了]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/129360405</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/129360405</guid><author>yingfeng2oo8</author><pubDate>Mon, 06 Mar 2023 13:34:47 +0800</pubDate><description><![CDATA[Linux中的buffer和cache到底是什么？]]></description><category></category></item><item><title><![CDATA[IDEA中比较骚的操作技巧]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/113448087</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/113448087</guid><author>yingfeng2oo8</author><pubDate>Sat, 30 Jan 2021 22:47:40 +0800</pubDate><description><![CDATA[IDEA 有个很牛逼的功能，那就是后缀补全（不是自动补全），很多人竟然不知道这个操作，还在手动敲代码。

这个功能可以使用代码补全来模板式地补全语句，如遍历循环语句（for、foreach）、使用 String.format() 包裹一个字符串、使用类型转化包裹一个表达式、根据判（非）空或者其它判别语句生成 if 语句、用 instanceOf 生成分支判断语句等。

使用的方式也很简单，就是在一个表达式后按下点号 . ，然后输入一些提示或者在列表中选择一个候选项，常见的候选项下面会给出 GIF 演示。

]]></description><category></category></item><item><title><![CDATA[Flink及Storm、Spark主流流框架比较-实时框架比较]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/113441402</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/113441402</guid><author>yingfeng2oo8</author><pubDate>Sat, 30 Jan 2021 17:03:54 +0800</pubDate><description><![CDATA[实时计算框架对比 - flink，storm，spark 三者的区别

我相信有不少的工程师都有着这样的处境，在学flink之前很好奇flink，storm，spark的区别是什么，为什么现在很多企业都在往flink方向转它的优势是什么，为什么不适用storm，为什么不适用spark，在下面的内容中我会为大家解答。希望可以帮助大家，也希望大家看了之后可以提出自己宝贵建议。

有限数据集和无限数据集

1.有限数据集：数据大小有限（固定大小，比如固定的文件），用于批处理，这一类数据主要用于mr，hive，p.]]></description><category></category></item><item><title><![CDATA[上海市32岁PHP程序员兼技术专家兼管理者对12年职业生涯的9个生活感悟]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/102495817</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/102495817</guid><author>yingfeng2oo8</author><pubDate>Fri, 11 Oct 2019 10:06:28 +0800</pubDate><description><![CDATA[背景
如题，作者07年就开始上班了，所以12年职业生涯无需奇怪。从2009年就开始搞PHP直到现在，12年过去了，白驹过隙。
状态
有车、有房、有配偶、有二胎、有4个老人身体尚可，还有个弟弟未婚，月薪45K，对，你没看错，就是搞PHP的，45K。
困扰
喝醉时我会自我安慰：或许我已经达到了传说中的人生巅峰，知足常乐，惜福；但是醒来后还是心有不甘：32了，一事无成，没有自己的事业，更没有自己的企业，...]]></description><category></category></item><item><title><![CDATA[几张图轻松理解String.intern()]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/80177547</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/80177547</guid><author>yingfeng2oo8</author><pubDate>Thu, 03 May 2018 11:30:46 +0800</pubDate><description><![CDATA[在翻《深入理解Java虚拟机》的书时，又看到了2-7的 String.intern()返回引用的测试。 其实要搞明白String.intern()，我总结了下面几条规则： 一、new String都是在堆上创建字符串对象。当调用 intern() 方法时，编译器会将字符串添加到常量池中（stringTable维护），并返回指向该常量的引用。 二、通过字面量赋值创建字符串（如：String str=...]]></description><category></category></item><item><title><![CDATA[字符编码笔记：ASCII，Unicode和UTF-8]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/73613774</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/73613774</guid><author>yingfeng2oo8</author><pubDate>Fri, 23 Jun 2017 10:06:16 +0800</pubDate><description><![CDATA[今天中午，我突然想搞清楚Unicode和UTF-8之间的关系，于是就开始在网上查资料。

结果，这个问题比我想象的复杂，从午饭后一直看到晚上9点，才算初步搞清楚。

下面就是我的笔记，主要用来整理自己的思路。但是，我尽量试图写得通俗易懂，希望能对其他朋友有用。毕竟，字符编码是计算机技术的基石，想要熟练使用计算机，就必须懂得一点字符编码的知识。

1. ASCII码

我们知道，在计]]></description><category></category></item><item><title><![CDATA[Java内存、成员变量、局部变量]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/72899215</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/72899215</guid><author>yingfeng2oo8</author><pubDate>Wed, 07 Jun 2017 14:21:56 +0800</pubDate><description><![CDATA[一 java内存分配 

Java 中的数据类型分为 
1. 基本类型（原始数据类型） byte short int long float double char boolean 
基本类型的变量持有原始值。 
2. 复合数据类型（引用类型），引用类型持有引用值（即对某个对象的引用，而非对象本身）。

一般Java在内存分配时会涉及到以下区域： 
1. 寄存器：我们在程序中无法控制]]></description><category></category></item><item><title><![CDATA[Java-使用IO流对大文件进行分割和分割后的合并]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/71194345</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/71194345</guid><author>yingfeng2oo8</author><pubDate>Fri, 05 May 2017 11:27:28 +0800</pubDate><description><![CDATA[有的时候我们想要操作的文件很大，比如：我们想要上传一个大文件，但是受到上传文件大小的限制，无法上传，这时我们可以将一个大的文件分割成若干个小文件进行操作，然后再把小文件还原成源文件。分割后的每个小文件的类型可以自己定义。

以下是我编写的一个大文件的分割和合并的代码：





[java] view
 plain copy






package com.ly]]></description><category></category></item><item><title><![CDATA[15个不起眼但非常强大的 Vim 命令]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/70843727</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/70843727</guid><author>yingfeng2oo8</author><pubDate>Thu, 27 Apr 2017 10:29:37 +0800</pubDate><description><![CDATA[如果我的关于这个话题的最新帖子没有提醒到你的话，那我明确地说，我是一个 Vim 的粉丝。所以在你们中的某些人向我扔石头之前，我先向你们展示一系列“鲜为人知的 Vim 命令”。我的意思是，一些你可能以前没有碰到过的命令，但可能对你来说很有用。作为第二免责声明，我不知道哪些命令是你可能知道的，以及哪些是对你来说有用的。因此这些命令实际上是一些相对少见，但很可能很有用的 Vim 命令。



保]]></description><category></category></item><item><title><![CDATA[Spring 事务失效]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/70805906</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/70805906</guid><author>yingfeng2oo8</author><pubDate>Wed, 26 Apr 2017 15:57:43 +0800</pubDate><description><![CDATA[[问题]

       spring的声明式事务，我想就不用多介绍了吧，一句话“自从用了Spring
 AOP啊，事务管理真轻松啊，真轻松；事务管理代码没有了，脑不酸了，手不痛了，一口气全配上了事务；轻量级，测试起来也简单，嘿！”。不管从哪个角度看，轻量级声明式事务都是一件解放生产力的大好事。所以，我们“一直用它”。

 

      不过，最近的一个项目里，却碰到了一个事务管理]]></description><category></category></item><item><title><![CDATA[图解正向代理、反向代理、透明代理]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/69950934</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/69950934</guid><author>yingfeng2oo8</author><pubDate>Mon, 10 Apr 2017 16:29:20 +0800</pubDate><description><![CDATA[套用古龙武侠小说套路来说，代理服务技术是一门很古老的技术，是在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件，让其成为一个代理服务器，从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围，便于大家更深入理解代理服务技术。

一、正向代理(Forward Proxy)
   一般情况下，如果]]></description><category></category></item><item><title><![CDATA[JAVA程序员面试总结，高手整整理加强版]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/56277053</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/56277053</guid><author>yingfeng2oo8</author><pubDate>Tue, 21 Feb 2017 10:04:55 +0800</pubDate><description><![CDATA[第一阶段：三年

我认为三年对于程序员来说是第一个门槛，这个阶段将会淘汰掉一批不适合写代码的人。这一阶段，我们走出校园，迈入社会，成为一名程序员，正式从书本 上的内容迈向真正的企业级开发。我们知道如何团队协作、如何使用项目管理工具、项目版本如何控制、我们写的代码如何测试如何在线上运行等等，积累了一定的 开发经验，也对代码有了一定深入的认识，是一个比较纯粹的Coder的阶段。

第二阶段：五]]></description><category></category></item><item><title><![CDATA[互联网常用网络协议]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/54892468</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/54892468</guid><author>yingfeng2oo8</author><pubDate>Mon, 06 Feb 2017 14:17:14 +0800</pubDate><description><![CDATA[网络协议7层







应用层中就是开发中比较常见的协议。

HTTP协议单向，服务器不能主动发信息，也就衍生了comet等技术，来模拟服务器push。

对于即时通讯比较常用的协议xmpp，socket通信比较独立可实现双向通信，也就是即时通讯软件早起大多使用socket的原因。]]></description><category></category></item><item><title><![CDATA[浅谈web缓存]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/53927940</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/53927940</guid><author>yingfeng2oo8</author><pubDate>Thu, 29 Dec 2016 14:52:39 +0800</pubDate><description><![CDATA[在前端开发中，性能一直都是被大家所重视的一点，然而判断一个网站的性能最直观的就是看网页打开的速度。其中提高网页反应速度的一个方式就是使用缓存。一个优秀的缓存策略可以缩短网页请求资源的距离，减少延迟，并且由于缓存文件可以重复利用，还可以减少带宽，降低网络负荷。那么下面我们就来看看服务器端缓存的原理。

 



缓存分类


web缓存分为很多种，比如数据库缓存、代理服务器缓存、还]]></description><category></category></item><item><title><![CDATA[ThreadPoolExecutor机制]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/53924801</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/53924801</guid><author>yingfeng2oo8</author><pubDate>Thu, 29 Dec 2016 10:31:27 +0800</pubDate><description><![CDATA[一、概述 
1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现，以内部线程池的形式对外提供管理任务执行，线程调度，线程池管理等等服务； 
2、Executors方法提供的线程服务，都是通过参数设置来实现不同的线程池机制。 
3、先来了解其线程池管理的机制，有助于正确使用，避免错误使用导致严重故障。同时可以根据自己的需求实现自己的线程池 
]]></description><category></category></item><item><title><![CDATA[mysql乐观锁总结和实践]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/52943978</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/52943978</guid><author>yingfeng2oo8</author><pubDate>Thu, 27 Oct 2016 11:10:31 +0800</pubDate><description><![CDATA[上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁，但是悲观锁并不是适用于任何场景，它也有它存在的一些不足，因为悲观锁大多数情况下依靠数据库的锁机制实现，以保证操作最大程度的独占性。如果加锁的时间过长，其他用户长时间无法访问，影响了程序的并发访问性，同时这样对数据库性能开销影响也很大，特别是对长事务而言，这样的开销往往无法承受。所以与悲观锁相对的，我们有了乐观锁，具体参见下面介绍：
]]></description><category></category></item><item><title><![CDATA[mysql悲观锁总结和实践]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/52943948</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/52943948</guid><author>yingfeng2oo8</author><pubDate>Thu, 27 Oct 2016 11:08:53 +0800</pubDate><description><![CDATA[最近学习了一下数据库的悲观锁和乐观锁，根据自己的理解和网上参考资料总结如下：
 
悲观锁介绍（百科）：
悲观锁，正如其名，它指的是对数据被外界（包括本系统当前的其他事务，以及来自外部系统的事务处理）修改持保守态度，因此，在整个数据处理过程中，将数据处于锁定状态。悲观锁的实现，往往依靠数据库提供的锁机制（也只有数据库层提供的锁机制才能真正保证数据访问的排他性，否则，即使在本系统中实现了加锁机制]]></description><category></category></item><item><title><![CDATA[mysql死锁问题分析]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/52885462</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/52885462</guid><author>yingfeng2oo8</author><pubDate>Fri, 21 Oct 2016 17:20:01 +0800</pubDate><description><![CDATA[线上某服务时不时报出如下异常（大约一天二十多次）：“Deadlock found when trying to get lock;”。

      Oh, My God! 是死锁问题。尽管报错不多，对性能目前看来也无太大影响，但还是需要解决，保不齐哪天成为性能瓶颈。
     为了更系统的分析问题，本文将从死锁检测、索引隔离级别与锁的关系、死锁成因、问题定位这五个方面来展开讨论。

]]></description><category></category></item><item><title><![CDATA[MySQL 百万级分页优化]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/52883292</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/52883292</guid><author>yingfeng2oo8</author><pubDate>Fri, 21 Oct 2016 14:55:42 +0800</pubDate><description><![CDATA[以下分享一点我的经验 

一般刚开始学SQL的时候，会这样写 

复制代码代码如下:


SELECT * FROM table ORDER BY id LIMIT 1000, 10; 


但在数据达到百万级的时候，这样写会慢死 

复制代码代码如下:


SELECT * FROM table ORDER BY id LIMIT 1000000, 10; 

]]></description><category></category></item><item><title><![CDATA[Solr开发文档]]></title><link>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/52775147</link><guid>https://blog.youkuaiyun.com/yingfeng2oo8/article/details/52775147</guid><author>yingfeng2oo8</author><pubDate>Mon, 10 Oct 2016 10:16:07 +0800</pubDate><description><![CDATA[Solr 是一种可供企业使用的、基于 Lucene 的搜索服务器，它支持层面搜索、命中醒目显示和多种输出格式。在这篇文章中，将介绍 Solr 并展示如何轻松地将其表现优异的全文本搜索功能加入到 Web 应用程序中。

开发环境：

System：Windows

WebBrowser：IE6+、Firefox3+

JDK：1.6+

JavaEE Server：tomcat5]]></description><category></category></item></channel></rss>