<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[WYYZ5的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/WYYZ5</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; WYYZ5]]></copyright><item><title><![CDATA[Handler详解]]></title><link>https://blog.csdn.net/WYYZ5/article/details/106896668</link><guid>https://blog.csdn.net/WYYZ5/article/details/106896668</guid><author>WYYZ5</author><pubDate>Wed, 24 Jun 2020 10:12:55 +0800</pubDate><description><![CDATA[ThreadLocal

ThreadLocal给currentThread.threadlocals = new ThreadLocalMap(this, value);
ThreadLocalMap等价new Entry(this, value)[lenth]
数值位置 i = this.threadLocalHashCode &amp; (lenth - 1)
this = new ThreadLocal&lt;T&gt;()
threadLocalHashCode = atomicInteger.g]]></description><category></category></item><item><title><![CDATA[Android 点滴——px、dp、dip、sp详解]]></title><link>https://blog.csdn.net/WYYZ5/article/details/78285566</link><guid>https://blog.csdn.net/WYYZ5/article/details/78285566</guid><author>WYYZ5</author><pubDate>Thu, 19 Oct 2017 15:37:51 +0800</pubDate><description><![CDATA[基本概念：
px   ：是屏幕的像素点
dp   ：一个基于density的抽象单位，如果一个160dpi的屏幕，1dp=1px
dip  ：等同于dp
sp   ：同dp相似，但还会根据用户的字体大小偏好来缩放(建议使用sp作为文本的单位，其它用dip)



1. 基础知识
    mm: millimeters 毫米，长度单位
    in: inches 英寸，长度单位]]></description><category></category></item><item><title><![CDATA[java垃圾回收——工作机制]]></title><link>https://blog.csdn.net/WYYZ5/article/details/78060270</link><guid>https://blog.csdn.net/WYYZ5/article/details/78060270</guid><author>WYYZ5</author><pubDate>Fri, 22 Sep 2017 10:35:38 +0800</pubDate><description><![CDATA[一.如何确定对象没有被引用
    第一种是遍历堆上的对象找引用；
    第二种是遍历堆栈或静态存储区的引用找对象
    第一种实现是“引用计数法”，第二种实现是“自适应”的垃圾回收技术


二.两种实现的机制
引用计数法：当有引用连接至对象时，引用计数加1，当引用离开作用域或被置为null时，引用计数减1，这种方法有个缺陷，如果对象之间存在循环引用，可能会出现“对象应该被回收，]]></description><category></category></item><item><title><![CDATA[Java垃圾回收——三种回收机制]]></title><link>https://blog.csdn.net/WYYZ5/article/details/78060221</link><guid>https://blog.csdn.net/WYYZ5/article/details/78060221</guid><author>WYYZ5</author><pubDate>Fri, 22 Sep 2017 10:32:03 +0800</pubDate><description><![CDATA[一、分代复制垃圾回收
    不同的对象的生命周期是不一样的。因此，不同生命周期的对象可以采取不同的收集方式，以便提高回收效率。 在Java程序运行的过程中，会产生大量的对象，其中有些对象是与业务信息相关，比如Http请求中的 
Session对象、线程、Socket连接，这类对象跟业务直接挂钩，因此生命周期比较长。但是还有一些对象，主要是程序运行过程中生成的临时变量，这些对象生命周期会比较短]]></description><category></category></item><item><title><![CDATA[Java垃圾回收——优点和原理]]></title><link>https://blog.csdn.net/WYYZ5/article/details/78060205</link><guid>https://blog.csdn.net/WYYZ5/article/details/78060205</guid><author>WYYZ5</author><pubDate>Fri, 22 Sep 2017 10:30:52 +0800</pubDate><description><![CDATA[优点：a.不需要考虑内存管理， b.可以有效的防止内存泄漏，有效的利用可使用的内存， c.由于有垃圾回收机制，Java中的对象不再有"作用域"的概念，只有对象的引用才有"作用域"

原理：垃圾回收器是作为一个单独的低级别的线程运行，在不可知的情况下对内存堆中已死亡的或者长期没有使用的对象回收，但是不能实时的对某一对象或者所有对象进行垃圾回收。

垃圾回收机制：分代复制垃圾回收、标记垃圾回收]]></description><category></category></item><item><title><![CDATA[Java设计模式 —— 适配器模式(Adapter)]]></title><link>https://blog.csdn.net/WYYZ5/article/details/49094149</link><guid>https://blog.csdn.net/WYYZ5/article/details/49094149</guid><author>WYYZ5</author><pubDate>Tue, 13 Oct 2015 10:00:51 +0800</pubDate><description><![CDATA[ADAPTER—在朋友聚会上碰到了一个美女Sarah，从香港来的，可我不会说粤语，她不会说普通话，只好求助于我的朋友kent了，他作为我和Sarah之间的Adapter，让我和Sarah可以相互交谈了(也不知道他会不会耍我)


适配器（变压器）模式：把一个类的接口变换成客户端所期待的另一种接口，从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实]]></description><category></category></item><item><title><![CDATA[Java设计模式 —— 单例模式(Singleton)]]></title><link>https://blog.csdn.net/WYYZ5/article/details/49078721</link><guid>https://blog.csdn.net/WYYZ5/article/details/49078721</guid><author>WYYZ5</author><pubDate>Mon, 12 Oct 2015 19:51:26 +0800</pubDate><description><![CDATA[SINGLETON—俺有6个漂亮的老婆，她们的老公都是我，我就是我们家里的老公Singleton，她们只要说道“老公”，都是指的同一个人，那就是我(刚才做了个梦啦，哪有这么好的事)


单例模式：单例模式确保某一个类只有一个实例，而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。
改善全局变量和命名空间的冲突，可以说是一种改良了的全局变量。]]></description><category></category></item><item><title><![CDATA[Java设计模式 —— 原型模式(Proto Type)]]></title><link>https://blog.csdn.net/WYYZ5/article/details/49077551</link><guid>https://blog.csdn.net/WYYZ5/article/details/49077551</guid><author>WYYZ5</author><pubDate>Mon, 12 Oct 2015 18:01:31 +0800</pubDate><description><![CDATA[PROTOTYPE—跟MM用QQ聊天，一定要说些深情的话语了，我搜集了好多肉麻的情话，需要时只要copy出来放到QQ里面就行了，这就是我的情话prototype了。（100块钱一份，你要不要）


原始模型模式：通过给出一个原型对象来指明所要创建的对象的类型，然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类，产品类不需要非得有任何事先确定的等级结构，]]></description><category></category></item><item><title><![CDATA[Java设计模式 —— 工厂方法模式 (Factory Method)]]></title><link>https://blog.csdn.net/WYYZ5/article/details/49075191</link><guid>https://blog.csdn.net/WYYZ5/article/details/49075191</guid><author>WYYZ5</author><pubDate>Mon, 12 Oct 2015 16:15:59 +0800</pubDate><description><![CDATA[FACTORY METHOD—请MM去麦当劳吃汉堡，不同的MM有不同的口味，要每个都记住是一件烦人的事情，我一般采用Factory Method模式，带着MM到服务员那儿，说“要一个汉堡”，具体要什么样的汉堡呢，让MM直接跟服务员说就行了。


工厂方法模式：核心工厂类不再负责所有产品的创建，而是将具体创建的工作交给子类去做，成为一个抽象工厂角色，仅负责给出具体工厂类必须实现的接口，而不接触]]></description><category></category></item><item><title><![CDATA[Java设计模式 —— 建造模式 (Builder)]]></title><link>https://blog.csdn.net/WYYZ5/article/details/49074971</link><guid>https://blog.csdn.net/WYYZ5/article/details/49074971</guid><author>WYYZ5</author><pubDate>Mon, 12 Oct 2015 16:03:52 +0800</pubDate><description><![CDATA[BUILDER—MM最爱听的就是“我爱你”这句话了，见到不同地方的MM，要能够用她们的方言跟她说这句话哦，我有一个多种语言翻译机，上面每种语言都有一个按键，见到MM我只要按对应的键，它就能够用相应的语言说出“我爱你”这句话了，国外的MM也可以轻松搞掂，这就是我的“我爱你”builder。（这一定比美军在伊拉克用的翻译机好卖）


建造模式：将产品的内部表象和产品的生成过程分割开来，从而使一个]]></description><category></category></item><item><title><![CDATA[Java设计模式 —— 抽象工厂模式 (Abstract Factory)]]></title><link>https://blog.csdn.net/WYYZ5/article/details/49072951</link><guid>https://blog.csdn.net/WYYZ5/article/details/49072951</guid><author>WYYZ5</author><pubDate>Mon, 12 Oct 2015 15:50:36 +0800</pubDate><description><![CDATA[FACTORY—追MM少不了请吃饭了，麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西，虽然口味有所不同，但不管你带MM去麦当劳或肯德基，只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory


抽象工厂模式：客户类和工厂类分开。
消费者任何时候需要某种产品，只需向工厂请求即可。消费者无须修改就可以接纳新产品。
缺点是当产品修改时，工厂类也要做相应的修改。如：如何创]]></description><category></category></item><item><title><![CDATA[Java设计模式 —— 开篇]]></title><link>https://blog.csdn.net/WYYZ5/article/details/49072327</link><guid>https://blog.csdn.net/WYYZ5/article/details/49072327</guid><author>WYYZ5</author><pubDate>Mon, 12 Oct 2015 13:33:47 +0800</pubDate><description><![CDATA[一、创建型模式
1, 抽象工厂模式 (Abstract Factory)
2, 建造模式
(Builder)
3, 工厂方法模式 (Factory Method)
4, 原型模式 (ProtoType)
5, 单例模式 (Singleton)


二、结构型模式
6, 适配器模式 (Adapter)
7, 桥梁模式 (Bridge)
8, 组合模式 (Composite)]]></description><category></category></item><item><title><![CDATA[ACM —— 1015 Jury Compromise]]></title><link>https://blog.csdn.net/WYYZ5/article/details/48713343</link><guid>https://blog.csdn.net/WYYZ5/article/details/48713343</guid><author>WYYZ5</author><pubDate>Thu, 24 Sep 2015 16:50:38 +0800</pubDate><description><![CDATA[解题代码：
import java.util.Arrays;
import java.util.Scanner;

public class Main {
	//dp[j][k]：取j个候选人，使其辩控差为k的所有方案中，辩控和最大的方案的辩控和 
	private static int[][] dp = new int[21][801];
	//记录所选定的候选人的编号
	pri]]></description><category></category></item><item><title><![CDATA[ACM —— 1014 Dividing]]></title><link>https://blog.csdn.net/WYYZ5/article/details/48681339</link><guid>https://blog.csdn.net/WYYZ5/article/details/48681339</guid><author>WYYZ5</author><pubDate>Wed, 23 Sep 2015 16:00:29 +0800</pubDate><description><![CDATA[解题代码：
DFS
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner stdin = new Scanner(System.in);
		int[] num;
		int count = 0;
		while (true) {
]]></description><category></category></item><item><title><![CDATA[ACM —— 1013 Counterfeit Dollar]]></title><link>https://blog.csdn.net/WYYZ5/article/details/48655477</link><guid>https://blog.csdn.net/WYYZ5/article/details/48655477</guid><author>WYYZ5</author><pubDate>Tue, 22 Sep 2015 16:14:28 +0800</pubDate><description><![CDATA[解题代码：
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner stdin = new Scanner(System.in);
		int num = stdin.nextInt();
		boolean[] flag;
		int[]]></description><category></category></item><item><title><![CDATA[ACM —— 1012 Joseph]]></title><link>https://blog.csdn.net/WYYZ5/article/details/48653373</link><guid>https://blog.csdn.net/WYYZ5/article/details/48653373</guid><author>WYYZ5</author><pubDate>Tue, 22 Sep 2015 14:00:02 +0800</pubDate><description><![CDATA[解题代码：
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner stdin = new Scanner(System.in);
		int k;
		int[] joseph = new int[14];
		while ((k = ]]></description><category></category></item><item><title><![CDATA[ACM —— 1011 Sticks]]></title><link>https://blog.csdn.net/WYYZ5/article/details/48628731</link><guid>https://blog.csdn.net/WYYZ5/article/details/48628731</guid><author>WYYZ5</author><pubDate>Mon, 21 Sep 2015 16:48:33 +0800</pubDate><description><![CDATA[解题代码：

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	static int num;
	static int[] sticks;
	static boolean[] vists;
	public static void main(String[] args) {
		S]]></description><category></category></item><item><title><![CDATA[ACM —— 1010 STAMPS]]></title><link>https://blog.csdn.net/WYYZ5/article/details/48369529</link><guid>https://blog.csdn.net/WYYZ5/article/details/48369529</guid><author>WYYZ5</author><pubDate>Fri, 11 Sep 2015 13:15:35 +0800</pubDate><description><![CDATA[解题代码：
package acm1010;

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	private static int[] mValues;
	private static int[] mTime;
	private static int[] mSolve;
	p]]></description><category></category></item><item><title><![CDATA[ACM —— 1009 Edge Detection]]></title><link>https://blog.csdn.net/WYYZ5/article/details/48319649</link><guid>https://blog.csdn.net/WYYZ5/article/details/48319649</guid><author>WYYZ5</author><pubDate>Wed, 09 Sep 2015 18:01:12 +0800</pubDate><description><![CDATA[解题代码：
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;

public class Main {

	static int mWidth, mHight;
	static int[][] pairs = new int[1000][2];
	static HashMap]]></description><category></category></item><item><title><![CDATA[ACM —— 1008 Maya Calendar]]></title><link>https://blog.csdn.net/WYYZ5/article/details/48294687</link><guid>https://blog.csdn.net/WYYZ5/article/details/48294687</guid><author>WYYZ5</author><pubDate>Tue, 08 Sep 2015 18:00:16 +0800</pubDate><description><![CDATA[解题代码：
import java.util.HashMap;
import java.util.Scanner;

public class Main {

	static String[] numTzolkin = new String[] {"imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "m]]></description><category></category></item></channel></rss>