<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[剑飞的专栏]]></title><description><![CDATA[亦余心之所善兮，虽九死其犹未悔！]]></description><link>https://blog.youkuaiyun.com/happy_cheng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; happy_cheng]]></copyright><item><title><![CDATA[OmniPlan 3破解码]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/78669822</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/78669822</guid><author>happy_cheng</author><pubDate>Wed, 29 Nov 2017 20:58:19 +0800</pubDate><description><![CDATA[Omniplan for mac破解版是Mac OS X平台的的一款非常强大的项目管理软件，它提供的功能包含了自定检视表、阶层式的纲要模式、成本追踪、里程碑、任务限制与相关性、资源分配、时程控制、Gantt 图表、违反事项显示、关键路径等等。]]></description><category></category></item><item><title><![CDATA[Java-synchronize和lock详解(转)]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/76474331</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/76474331</guid><author>happy_cheng</author><pubDate>Tue, 01 Aug 2017 00:32:15 +0800</pubDate><description><![CDATA[由于同一进程的多个线程共享同一片存储空间，在带来方便的同时，也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突，有效避免了同一个数据对象被多个线程同时访问。
需要明确的几个问题：

synchronized关键字可以作为函数的修饰符，也可作为函数内的语句，也就是平时说的同步方法和同步语句块。如果 再细的分类，synchronized可作用于instance变量、object reference（对象引用）、static函数和class literals(类名称字面常量)身上。]]></description><category></category></item><item><title><![CDATA[scheduleAtFixedRate和scheduleWithFixedDelay区别]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/76376675</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/76376675</guid><author>happy_cheng</author><pubDate>Sun, 30 Jul 2017 11:36:42 +0800</pubDate><description><![CDATA[Java中的定时任务ScheduledExecutorService  Executors.newScheduledThreadPool
1.  scheduleAtFixedRate
	表示以固定频率执行的任务，如果当前任务耗时较多，超过定时周期period，则当前任务结束后会立即执行。
2. scheduleWithFixedDelay
	表示以固定延时执行任务，延时是相对当前任务结束为起点计算开始时间。]]></description><category></category></item><item><title><![CDATA[Mysql千万数据索引查询优化]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/74782761</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/74782761</guid><author>happy_cheng</author><pubDate>Sat, 08 Jul 2017 00:21:55 +0800</pubDate><description><![CDATA[ysql千万数据索引查询优化

1.索引的作用
索引就是想是书的目录，能够帮助快速查询。如果数据库没有索引的话，在查询的时候，就会进行全表扫描，在数据量大的情况下(几百万，上千万)的时候，查询会特别慢需要几秒，这个在线上系统是无法满足应用要求的。加上索引后查询只要几十毫秒，百倍的优化。

2. 索引的类型
1. 主键索引；
2. 普通索引：创建在非主键上的索引；
3. 聚合索引(组合索引)：用于多字段组合查询的情况，注意需要按照索引顺序来才能利用索引；​​​​​
4. 唯一约束：可以在数据库系统上保证数据上]]></description><category></category></item><item><title><![CDATA[Java小知识积累]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/73824804</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/73824804</guid><author>happy_cheng</author><pubDate>Tue, 27 Jun 2017 23:41:42 +0800</pubDate><description><![CDATA[在Java开发中的一些知识点记录下：
1. 字符串格式化是我们经常会使用的，String.format() ，格式化控制 %d 包括了 byte，int，long；
2. Java方法参数中没有默认值，而C++中有，原因主要是避免了Java中多函数重载的二义性，如果存在默认参数则可以不传参数的，这样编译器就不知道应该选择哪个重载方法，Java为了减少复杂性就不允许方法中存在默认参数值。]]></description><category></category></item><item><title><![CDATA[linux查看系统进程和线程]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/73009387</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/73009387</guid><author>happy_cheng</author><pubDate>Sat, 10 Jun 2017 22:54:24 +0800</pubDate><description><![CDATA[背景在我们实际开发，在压测、系统出现问题(load高、CPU使用率高、RT高等)的时候我们需要去排查，得先看些系统基本信息，便于我们定位问题。top命令
查看进程命令top 可以看到linux系统中内存，load，CPU使用率等等，还有所有的进程信息。 
另外如果想让内容单位显示g，可以top -M
在javaweb开发中，我们经常的web容器tomcat，就是一个进程多线程来处理每个线程，有些我们]]></description><category></category></item><item><title><![CDATA[windows 7 Scrapy爬虫安装成功实践记录]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/66475886</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/66475886</guid><author>happy_cheng</author><pubDate>Sun, 26 Mar 2017 16:05:24 +0800</pubDate><description><![CDATA[本文详细记录window7下面安装爬虫Scrapy框架的过程和踩坑解决方法，希望对碰到问题的朋友们有个帮助。]]></description><category></category></item><item><title><![CDATA[java启动参数和jar启动]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/62108653</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/62108653</guid><author>happy_cheng</author><pubDate>Wed, 15 Mar 2017 00:26:22 +0800</pubDate><description><![CDATA[java启动jvm参数，可以指定参数。jar包启动命令：java -jar ***.jar -Dspring.profiles.active=dev -verbose:class
1.-Dspring.profiles.active=dev 
 这个可以在spring-boot启动中指定系统变量，多环境(测试、预发、线上配置)的区分
2. 在排查jar包冲突时，可以指定启动的-verbose:class  打印出启动的应用实际加载类的路径，来排查来源。
3. jvm堆设值： -Xmx3550m -Xms35]]></description><category></category></item><item><title><![CDATA[URL中加入BASE64加密的字符串引起的问题（Illegal base64 character a）]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/54620127</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/54620127</guid><author>happy_cheng</author><pubDate>Thu, 19 Jan 2017 22:50:33 +0800</pubDate><description><![CDATA[BASE64 decode报错]]></description><category></category></item><item><title><![CDATA[4种常见的POST数据提交方式]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/54604700</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/54604700</guid><author>happy_cheng</author><pubDate>Wed, 18 Jan 2017 21:34:00 +0800</pubDate><description><![CDATA[HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据，本文主要讨论 POST 提交数据的几种方式。
我们知道，HTTP 协议是以 ASCII 码传输，建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分：状态行、请求头、消息主体。类似于下面这样：]]></description><category></category></item><item><title><![CDATA[spring-boot上传文件MultiPartFile获取不到文件问题解决]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/54178392</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/54178392</guid><author>happy_cheng</author><pubDate>Sat, 07 Jan 2017 22:02:06 +0800</pubDate><description><![CDATA[spring-boot上传文件MultiPartFile获取不到文件问题解决。现象是在spring-boot里加入commons-fileupload jar并且配置了mutilPart的bean，在upload的POST请求后，发现multipartRequest.getFiles("file")=null，有点奇怪，查了文档资料才解决。]]></description><category></category></item><item><title><![CDATA[如何将一个数组随机打乱]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/53591936</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/53591936</guid><author>happy_cheng</author><pubDate>Mon, 12 Dec 2016 23:59:40 +0800</pubDate><description><![CDATA[题目是如何将一个数据随机打乱：方案一：
直观能想到一种算法是循环遍历数组，每一次产生一个随机的小标数，将这个下标所在的位置移出去，然后将这个值存到另外一个新的数组里，直到最后还有一个元素为止。这样的随机取出来的数组成的数组是随机。
改算法伪代码：
       int j=0;
       int size = a.size;
       for(i=0;i < size ;i++)]]></description><category></category></item><item><title><![CDATA[app和wap手机网站的区别在那里]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/46676247</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/46676247</guid><author>happy_cheng</author><pubDate>Mon, 29 Jun 2015 00:34:55 +0800</pubDate><description><![CDATA[app在大行其道的情况下，本人来发表关于app和手机wap网站的几个观点，希望对各位同仁有参考价值：



第一点 我们从依附的平台来看：

移动Wap网站：由移动设备的浏览器来支持，只要移动设备支持上网浏览网站基本上可以随时随地的打开网站查找自己需要的信息。

移动App客户端：由智能移动设备的操作系统来支持，当然他包括现在的一个主流的安卓和苹果操作系统，还有基于安卓的各种的二次]]></description><category></category></item><item><title><![CDATA[java jdk查看源码]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/46337727</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/46337727</guid><author>happy_cheng</author><pubDate>Wed, 03 Jun 2015 00:15:30 +0800</pubDate><description><![CDATA[其实如果你安装了JDK的话，你就已经拥有了java api的源码。
JDK安装目录下的src.zip文件就是java api的源码。
比如：C:\Program Files\Java\jdk1.6.0_38\src.zip
你只要解压它就可以看到java api的源码了。还是很方便吧。]]></description><category></category></item><item><title><![CDATA[android studio引入第三方jar包]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/46318393</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/46318393</guid><author>happy_cheng</author><pubDate>Mon, 01 Jun 2015 23:09:44 +0800</pubDate><description><![CDATA[android开发中，需要引入第三方的jar包，来高效的使用已有的现成的功能。下面在android studio中如何引入第三方jar包。
在菜单File中==》Project structure ==》dependences 》》 绿色的+号，选择你要的第三方jar路径，这样在build.grade中就会有相应的配置]]></description><category></category></item><item><title><![CDATA[Python日志]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/45604551</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/45604551</guid><author>happy_cheng</author><pubDate>Sat, 09 May 2015 20:52:07 +0800</pubDate><description><![CDATA[每条记录都关联一个级别, 每个级别都有用于发出日志消息的方法, 日志分为五级,





Level

When it’s used

Method





DEBUG

详细信息, 通常出现在诊断问题

logging.debug()



INFO

确认一切按预期运行

logging.info()



WARNING(默认]]></description><category></category></item><item><title><![CDATA[Python字符串-非转义和unicode]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/45604035</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/45604035</guid><author>happy_cheng</author><pubDate>Sat, 09 May 2015 19:57:39 +0800</pubDate><description><![CDATA[(1) 以r或R开头的python中的字符串表示（非转义的）原始字符串；

(2) 以u或U开头的字符串表示unicode字符串
Unicode是书写国际文本的标准方法。如果你想要用非英语写文本,那么你需要有一个支持Unicode的编辑器。
类似地,Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。]]></description><category></category></item><item><title><![CDATA[Linux中定时任务crontab]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/45587183</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/45587183</guid><author>happy_cheng</author><pubDate>Fri, 08 May 2015 23:05:48 +0800</pubDate><description><![CDATA[linux中crontab是一个用于很方便定时任务的工具。比如说定时跑脚本处理等等。crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件；同时，操作系统保存一个针对整个系统的crontab文件，该文件通常存放于/etc或者/etc之下的子目录中，而这个文件只能由系统管理员来修改。]]></description><category></category></item><item><title><![CDATA[java.lang.ThreadLocal类]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/44728723</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/44728723</guid><author>happy_cheng</author><pubDate>Sun, 29 Mar 2015 17:52:01 +0800</pubDate><description><![CDATA[深入研究java.lang.ThreadLocal类

 

一、概述

 

ThreadLocal是什么呢？其实ThreadLocal并非是一个线程的本地实现版本，它并不是一个Thread，而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单，就是为每一个使用该变]]></description><category></category></item><item><title><![CDATA[Java 多线程同步--synchronized]]></title><link>https://blog.youkuaiyun.com/happy_cheng/article/details/44727311</link><guid>https://blog.youkuaiyun.com/happy_cheng/article/details/44727311</guid><author>happy_cheng</author><pubDate>Sun, 29 Mar 2015 15:06:31 +0800</pubDate><description><![CDATA[在多线程编程环境下，对于共享资源（比如多线程共享的变量）的写操作时，不同线程之间假如没有相互同步，而是随机读取、更改变量回写到内存中，就会出现混乱和错误！因此必须要在多线程的操作方法上添加锁对象，当一个线程进入操作的时候，其它线程必须要等待，这样依次串行完成任务。
synchronized关键字可以将对象或者方法标记为同步，以实现对对象和方法的互斥访问，可以用synchronized(对象) { … }定义同步代码块，或者在声明方法时将synchronized作为方法的修饰符。]]></description><category></category></item></channel></rss>