<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_31258245的博客]]></title><description><![CDATA[永远做自己感兴趣的事]]></description><link>https://blog.youkuaiyun.com/qq_31258245</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_31258245]]></copyright><item><title><![CDATA[ConstraintLayout 基本用法大全]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/85019222</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/85019222</guid><author>qq_31258245</author><pubDate>Sat, 15 Dec 2018 22:17:29 +0800</pubDate><description><![CDATA[一、概述
ConstraintLayout 是一个 ViewGroup，它可以解决复杂布局视图嵌套问题，创建布局一般为平面视图层次结构。跟 ReletiveLayout 很像，所有的 view 通过和相邻的 view 或者 parent layout 之间建立关系来布局，但是比 ReletiveLayout 更加灵活、简单，而且减少绘制。
二、添加约束
// 位置约束
app:layout_con...]]></description><category></category></item><item><title><![CDATA[Mac 上 docker 使用]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/83932032</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/83932032</guid><author>qq_31258245</author><pubDate>Sat, 10 Nov 2018 18:43:56 +0800</pubDate><description><![CDATA[Use Docker On Mac入门安装运行 hello world
入门
安装
在 docker 官网上下载 docker for mac 的 dmg 文件安装即可。
运行 hello world
在终端运行 docker run hello-world，即可下载运行docker 的 helloworld 镜像。
如果终端出现错误信息如下：

docker: Error response fr...]]></description><category></category></item><item><title><![CDATA[Hadoop伪分布模式环境搭建]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/81055675</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/81055675</guid><author>qq_31258245</author><pubDate>Sun, 15 Jul 2018 18:42:43 +0800</pubDate><description><![CDATA[伪分布模式：Hadoop 守护进程运行在本地机器上， 模拟一个小规模集群

操作系统信息：Linux 4.9.0-deepin4-amd64 可以当做是Ubuntu ～

安装Hadoop之前系统需要具备的条件如下↓↓↓

一、需要安装的软件


  
  安装JDK，并且修改/etc/profile添加环境变量，步骤不再多说。
  安装 ssh 并且确保 sshd 服务已经开启，安装pdsh。
...]]></description><category></category></item><item><title><![CDATA[Ubuntu环境下JDK自动安装脚本]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/80259020</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/80259020</guid><author>qq_31258245</author><pubDate>Wed, 09 May 2018 20:23:37 +0800</pubDate><description><![CDATA[1.需下载jdk-10.0.1_linux-x64_bin.tar.gz源码包或者其他版本源码包放在与脚本同目录下 
2.需替换JDK_PATH变量中源码包的文件名 
3.脚本源码

#!/bin/bash

JDK_PATH=&amp;quot;`pwd`/jdk-10.0.1_linux-x64_bin.tar.gz&amp;quot;
INSTALL_DIR=&amp;quot;/usr/java&amp;quot;

# 判断java命令的输出
echo '检...]]></description><category></category></item><item><title><![CDATA[Ubuntu环境下Mysql自动安装脚本]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/80258956</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/80258956</guid><author>qq_31258245</author><pubDate>Wed, 09 May 2018 20:19:14 +0800</pubDate><description><![CDATA[1.需自备mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz或者其他版本的源码包
2.需修改脚本头部SOURCE_GZ_FILE变量路径
3.脚本代码：
#!/bin/bash

# 安装mysql，使用脚本前请修改源码包在文件系统中的路径
# author:someone
# date:2018/04/21

SOURCE_GZ_FILE="/home/someo...]]></description><category></category></item><item><title><![CDATA[深入理解JVM-类执行机制]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/80033297</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/80033297</guid><author>qq_31258245</author><pubDate>Sat, 21 Apr 2018 20:40:43 +0800</pubDate><description><![CDATA[Java类执行是在完成将class文件信息加载到jvm中并且产生Class对象之后。字节码只是一种中间代码形式，在实际运行时要由jvm解释执行。



字节码分析

因为Java采取的是中间码的形式，应用程序可以在不同的操作系统上由JVM解释执行，因此具有良好的扩展性。那么JVM肯定会有一套自己的执行方法的指令。在JVM中： 
invokestatic调用static方法 
invokevirtu...]]></description><category></category></item><item><title><![CDATA[下载JDK9源码]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79860180</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79860180</guid><author>qq_31258245</author><pubDate>Mon, 09 Apr 2018 23:22:47 +0800</pubDate><description><![CDATA[操作系统：Linux 
准备工具：Mercurial



第一步：安装Mercurial版本控制工具



sudo apt-get install mercurial

安装好之后新建~/.hgrc文件，写入如下内容，完成hg的配置



[ui]
username = yourname

感觉username需要配置正确，不然可能在克隆时会出现问题



第二步：克隆jdk9源码到本地


...]]></description><category></category></item><item><title><![CDATA[android为什么要设计出bundle而不是直接使用hashmap来进行数据传递]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79874565</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79874565</guid><author>qq_31258245</author><pubDate>Mon, 09 Apr 2018 23:21:40 +0800</pubDate><description><![CDATA[ 
                Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递？


Bundle内部是由ArrayMap实现的，ArrayMap的内部实现是两个数组，一个int数组是存储对象数据对应下标，一个对象数组保存key和value，内部使用二分法对key进行排序，所以在添加、删除、查找数据的时候，都会使用二分法查找，只适合于小数据量操作，如果在数据...]]></description><category></category></item><item><title><![CDATA[Python常用开发环境搭建]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79783770</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79783770</guid><author>qq_31258245</author><pubDate>Mon, 02 Apr 2018 00:57:57 +0800</pubDate><description><![CDATA[总结一些使用python过程中类库安装方法



安装pip



wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py]]></description><category></category></item><item><title><![CDATA[草莓派Raspberry3B]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79765190</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79765190</guid><author>qq_31258245</author><pubDate>Sat, 31 Mar 2018 02:38:17 +0800</pubDate><description><![CDATA[硬件端部分实现



准备材料：


草莓派主板1个
8G闪迪SD卡1张
读卡器1个
USB电源适配器1个(或者普通的USB线+充电宝)
杜邦线若干（公对公、公对母、母对母）
面包板1个
LED灯若干
继电器模块




启动草莓派，Wifi连接


从官网下载草莓派Debian系统
下载win32diskimager工具
将系统写入SD卡中
刻录之后，SD卡有两个分区，在boot分区中添加ssh...]]></description><category></category></item><item><title><![CDATA[限流-令牌桶算法]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79764459</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79764459</guid><author>qq_31258245</author><pubDate>Fri, 30 Mar 2018 22:57:22 +0800</pubDate><description><![CDATA[常见的限流算法有令牌桶算法、

令牌桶算法


假设限速为r,那么每隔1/r秒往桶中添加一个令牌。速率固定。
桶中最多放置令牌个数为b，桶满时，会移除，令牌被丢弃或者拒绝。
当一个n个字节大小的数据包到达时，将从桶中删除n个令牌，接着数据包发送到网络上。
如果桶中剩余的令牌数目不足n个，将不会删除令牌，这时候数据包被丢弃或者放入队列中。
...]]></description><category></category></item><item><title><![CDATA[图文详解YUV420数据格式]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79730817</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79730817</guid><author>qq_31258245</author><pubDate>Wed, 28 Mar 2018 17:18:31 +0800</pubDate><description><![CDATA[
            图文详解YUV420数据格式
        
        
        
            YUV格式有两大类：planar和packed。对于planar的YUV格式，先连续存储所有像素点的Y，紧接着存储所有像素点的U，随后是所有像素点的V。对于packed的YUV格式，每个像素点的Y,U,V是连续交*存储的。
&amp;nbsp;
YUV，分为三个分量，“Y”...]]></description><category></category></item><item><title><![CDATA[java.nio学习之Buffer]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79706762</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79706762</guid><author>qq_31258245</author><pubDate>Tue, 27 Mar 2018 01:36:13 +0800</pubDate><description><![CDATA[Buffer抽象类

  Buffer是java.nio包中的一个抽象类，Buffer中存储的数据为一种特定的基本数据类型，除了boolean基本类型外，每个基本类型都对应一个子类，其特点为线性、有限序列，Buffer有几个比较重要的属性，分别为capacity、limit、position、mark。 
大小关系: mark &amp;lt;= position &amp;lt;= limit &amp;lt;= ca...]]></description><category></category></item><item><title><![CDATA[OutOfMemoryError&StackOverflowError异常]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79549001</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79549001</guid><author>qq_31258245</author><pubDate>Wed, 14 Mar 2018 00:54:25 +0800</pubDate><description><![CDATA[实验一：程序计数器不会导致异常

package error;

/**
 * 实验：Java内存模型中程序计数器是唯一一个不会发生OutOfMemoryError的内存区域
 * 思路：开启任意多个线程，每个线程一个程序计数器，验证是否会产生异常
 * 结果：程序不会终止，一直创建线程，但是会同时运行8个线程（4处理器2核），并且线程轮流切换，but死机了。。。
 */
class OutOfM...]]></description><category></category></item><item><title><![CDATA[JVM深入理解之Java内存模型]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79548836</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79548836</guid><author>qq_31258245</author><pubDate>Wed, 14 Mar 2018 00:02:32 +0800</pubDate><description><![CDATA[一、JVM运行时数据区域

JVM运行时内存数据区有：方法区、堆、虚拟机栈、本地方法栈、程序计数器。其中方法区和堆属于多个线程共有区域，而其他为每个线程独有。 
运行时数据区如下： 
 
1. 程序计数器：程序计数器是一个比较小的内存区域，主要用来存储线程运行时当前执行的字节码信息。字节码工作时会通过读取程序计数器中待执行字节码的行号来选取下一条要执行的字节码指令。Java虚拟机的多线程通过多个线...]]></description><category></category></item><item><title><![CDATA[Spring学习之SpringBoot项目搭建]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79520922</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79520922</guid><author>qq_31258245</author><pubDate>Sun, 11 Mar 2018 22:00:35 +0800</pubDate><description><![CDATA[使用maven搭建,pom.xml文件如下

&amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven....]]></description><category></category></item><item><title><![CDATA[RecyclerView的Item没有填充屏幕原因分析]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79470129</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79470129</guid><author>qq_31258245</author><pubDate>Wed, 07 Mar 2018 13:58:51 +0800</pubDate><description><![CDATA[  项目需求是这样的：使用RecyclerView实现一个列表，列表中每个Item可以左滑出现菜单，类似QQ。 
  实现过程首先需要自定义一个组件，即每个Item的根布局组件。这个组件是继承自FrameLayout，所以组件的特性和FrameLayout差不多，就是子视图相当于放在栈中，最新放置的视图会遮挡旧视图。 
  这个控件实现完毕后，然后编写list_item布局文件，以这个控件为根布局...]]></description><category></category></item><item><title><![CDATA[安卓Library部署到Maven]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79435970</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79435970</guid><author>qq_31258245</author><pubDate>Sun, 04 Mar 2018 13:05:15 +0800</pubDate><description><![CDATA[MavenDeployDemo

利用Android Studio发布包aar/jar到bintray jcenter远程仓库中的笔记

参考blog.bugtags.com 文档

参考demo例子



Maven包（Package）

至于 Maven 是什么，请参考 Apache Maven。

对于 Android 开发者而言，只需要知道 Maven 是一种构建工具，Maven 包是由所...]]></description><category></category></item><item><title><![CDATA[序列化Serializable和Parcelable的理解和区别]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79416121</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79416121</guid><author>qq_31258245</author><pubDate>Thu, 01 Mar 2018 18:38:58 +0800</pubDate><description><![CDATA[
  原文地址：http://www.jianshu.com/p/a60b609ec7e7
  
  


一、android为什么要序列化？什么是序列化，怎么进行序列化

why

为什么要了解序列化？—— 进行Android开发的时候，无法将对象的引用传给Activities或者Fragments，我们需要将这些对象放到一个Intent或者Bundle里面，然后再传递。

what

什么是序...]]></description><category></category></item><item><title><![CDATA[java学习教程之Reference详解]]></title><link>https://blog.youkuaiyun.com/qq_31258245/article/details/79415891</link><guid>https://blog.youkuaiyun.com/qq_31258245/article/details/79415891</guid><author>qq_31258245</author><pubDate>Thu, 01 Mar 2018 18:08:45 +0800</pubDate><description><![CDATA[
Java引用体系中我们最熟悉的就是强引用类型，如 A a= new A();这是我们经常说的强引用StrongReference，jvm
 gc时会检测对象是否存在强引用，如果存在由根对象对其有传递的强引用，则不会对其进行回收，即使内存不足抛出OutOfMemoryError。


除了强引用外，Java还引入了SoftReference，WeakReference，PhantomReferen...]]></description><category></category></item></channel></rss>