<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u013317653的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u013317653</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u013317653]]></copyright><item><title><![CDATA[线程间通信]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/95630961</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/95630961</guid><author>u013317653</author><pubDate>Fri, 12 Jul 2019 16:32:44 +0800</pubDate><description><![CDATA[编写两个线程  一个线程打印1~25，另一个线程打印字母A~Z


public static void main(String[] args) {
        final Object object = new Object();
        final LinkedList&lt;String&gt; a =  buildA() ;
        final LinkedList&...]]></description><category></category></item><item><title><![CDATA[android  viewgroup 事件分发]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/95489678</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/95489678</guid><author>u013317653</author><pubDate>Thu, 11 Jul 2019 16:28:24 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[Gson  json 简化 优化]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/95078838</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/95078838</guid><author>u013317653</author><pubDate>Mon, 08 Jul 2019 17:50:35 +0800</pubDate><description><![CDATA[今天代码review的时候 发现同事解析一段json 做法很麻烦 所以我就帮他重构了一下


{
	"total": 51,
	"per_page": 15,
	"current_page": 1,
	"last_page": 4,
	"data": [{
		"id": 00,
		"title": "地铁旁+精装全明办公间+中小企业拎包入住+虚拟办公",
		"image": "htt...]]></description><category></category></item><item><title><![CDATA[jwt android]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/95061968</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/95061968</guid><author>u013317653</author><pubDate>Mon, 08 Jul 2019 15:19:34 +0800</pubDate><description><![CDATA[&lt;dependency&gt;
      &lt;groupId&gt;com.auth0&lt;/groupId&gt;
      &lt;artifactId&gt;java-jwt&lt;/artifactId&gt;
      &lt;version&gt;3.8.1&lt;/version&gt;
    &lt;/dependency&gt;


package ...]]></description><category></category></item><item><title><![CDATA[堆排序]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/94632669</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/94632669</guid><author>u013317653</author><pubDate>Thu, 04 Jul 2019 17:04:55 +0800</pubDate><description><![CDATA[把一个数组构建为大顶堆的过程





根据完全二叉树的性质 计算出来某个节点父节点的index 左孩子的index右孩子的index






/**
 * 堆排序
 *
 */
public class MyHeapSort extends App {

    /**
     * 把数组构建为大顶堆
     */
    private static void...]]></description><category></category></item><item><title><![CDATA[set 的 无序性 不重复性  （以hashset举例）]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/93893130</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/93893130</guid><author>u013317653</author><pubDate>Thu, 27 Jun 2019 17:33:18 +0800</pubDate><description><![CDATA[/**
     *
     * hashset的add方法
     *
     */
    public boolean add(E e) {
        return map.put(e, PRESENT)==null;
    }

    /**
     *
     * hashmap的put方法
     *
     */
    public V put(K ...]]></description><category></category></item><item><title><![CDATA[hashmap  put 方法  源码分析]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/93890318</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/93890318</guid><author>u013317653</author><pubDate>Thu, 27 Jun 2019 16:57:28 +0800</pubDate><description><![CDATA[public V put(K key, V value) {
        //如果 HashMapEntry 数组为空   进行初始化操作
        if (table == EMPTY_TABLE) {
            inflateTable(threshold);
        }
        //如果key==null  执行nullkey 操作
        ...]]></description><category></category></item><item><title><![CDATA[RecycleView 最小实现]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/93725089</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/93725089</guid><author>u013317653</author><pubDate>Wed, 26 Jun 2019 11:49:02 +0800</pubDate><description><![CDATA[package com.example.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.R...]]></description><category></category></item><item><title><![CDATA[21. 合并两个有序链表]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/91542316</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/91542316</guid><author>u013317653</author><pubDate>Wed, 12 Jun 2019 15:44:53 +0800</pubDate><description><![CDATA[将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例：

输入：1-&gt;2-&gt;4, 1-&gt;3-&gt;4
输出：1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4

网上各位大神的做法 全是递归 可是我想不到啊。。。 就自己想了一个方法


    public ListNode mergeTwoLists(Lis...]]></description><category></category></item><item><title><![CDATA[删除字符串中的所有相邻重复项]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/91432666</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/91432666</guid><author>u013317653</author><pubDate>Tue, 11 Jun 2019 14:14:38 +0800</pubDate><description><![CDATA[给出由小写字母组成的字符串S，重复项删除操作会选择两个相邻且相同的字母，并删除它们。

在 S 上反复执行重复项删除操作，直到无法继续删除。

在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。

输入："abbaca"
输出："ca"
解释：
例如，在 "abbaca" 中，我们可以删除 "bb" 由于两字母相邻且相同，这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aac...]]></description><category></category></item><item><title><![CDATA[括号匹配问题]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/91417363</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/91417363</guid><author>u013317653</author><pubDate>Tue, 11 Jun 2019 11:16:40 +0800</pubDate><description><![CDATA[public boolean isValid(String s) {
        HashMap&lt;Character,Character&gt; map = new HashMap&lt;&gt;() ;
        map.put(')','(');
        map.put('}','{');
        map.put(']','[');
        Stack...]]></description><category></category></item><item><title><![CDATA[链表反转]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/91413564</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/91413564</guid><author>u013317653</author><pubDate>Tue, 11 Jun 2019 10:24:34 +0800</pubDate><description><![CDATA[反转一个单链表。

示例:


输入: 1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;NULL
输出: 5-&gt;4-&gt;3-&gt;2-&gt;1-&gt;NULL

数据初始化：


   public class ListNode {
        int val;
        ListNode next;
        ListNode(int x) { val...]]></description><category></category></item><item><title><![CDATA[对字符串数组 进行排序]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/91366202</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/91366202</guid><author>u013317653</author><pubDate>Mon, 10 Jun 2019 11:38:51 +0800</pubDate><description><![CDATA[String[] x = {"nba","abc","cba","zz","qq","haha"};

        //自己写的排序
        // 排序的方法 直接用的冒泡排序    以前都是比较数字  直接用 &gt;  &lt;  =  就好了    但是 字符串的比较怎么办？  用String类提供的compareTo 方法就可以了
        for(in...]]></description><category></category></item><item><title><![CDATA[实现字符串 trim 功能]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/91360939</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/91360939</guid><author>u013317653</author><pubDate>Mon, 10 Jun 2019 09:50:13 +0800</pubDate><description><![CDATA[String x = "  dfdfdf  " ;
        char[] array = x.toCharArray();

        int begin = 0;
        for(int i= 0;i&lt;array.length;i++){
            if(' '==array[i]){
                continue;...]]></description><category></category></item><item><title><![CDATA[利用接口 解决开发中的小问题]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/90901834</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/90901834</guid><author>u013317653</author><pubDate>Wed, 05 Jun 2019 14:44:36 +0800</pubDate><description><![CDATA[需求如图 

其实直接传递个字符串就可以了


Intent intent=new Intent(context,B.class);
intent.putExtra("Stringkey","String value is id");
startActivity(intent);


//页面接收
String id = getIntent().getStringExtra("Stri...]]></description><category></category></item><item><title><![CDATA[死锁示例]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/89233935</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/89233935</guid><author>u013317653</author><pubDate>Fri, 12 Apr 2019 13:20:54 +0800</pubDate><description><![CDATA[拥有死锁的程序 并不是每一次都互相锁住 也许能正常运行 也许被永远锁住


    @Test
    public void test() throws InterruptedException {
        //那个被多个线程来共同操作的对象   这次试验使用静态方法了  。。。  所以就不用new 出来对象了。。。
        ThisLock thisLock =new T...]]></description><category></category></item><item><title><![CDATA[静态同步方法的锁  是.class对象]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/89227719</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/89227719</guid><author>u013317653</author><pubDate>Fri, 12 Apr 2019 10:53:36 +0800</pubDate><description><![CDATA[@Test
    public void test() throws InterruptedException {
        //那个被多个线程来共同操作的对象   这次试验使用静态方法了  。。。  所以就不用new 出来对象了。。。
        //Class thisLock = ThisLock.class;
        //线程 t1
        Threa...]]></description><category></category></item><item><title><![CDATA[java 同步方法的锁 是this]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/89226430</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/89226430</guid><author>u013317653</author><pubDate>Fri, 12 Apr 2019 10:20:26 +0800</pubDate><description><![CDATA[多说一句 为什么没有新建一个Runnable对象 ？ 因为我们不是研究同一个对象的数据被多个线程共享的问题。

我们只是为了研究作为一个同步方法被多个线程竞争调用的同时，这个类里面别的同步方法是阻塞还是运行状态，所以只是新建了一个ThisLock 对象。


    @Test
    public void test() throws InterruptedException {
    ...]]></description><category></category></item><item><title><![CDATA[对一个有序数组  进行逆序操作]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/89025731</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/89025731</guid><author>u013317653</author><pubDate>Thu, 04 Apr 2019 16:00:49 +0800</pubDate><description><![CDATA[觉得还是首尾位置的值调换比较简单直接吧


    private void reverse(int[] x,int low,int high){
        int nums = (high-low) &gt;&gt; 1;
        for(int i=0;i&lt;nums;i++){
            int tem = x[i];
            x[i] =...]]></description><category></category></item><item><title><![CDATA[两数之和]]></title><link>https://blog.youkuaiyun.com/u013317653/article/details/89015632</link><guid>https://blog.youkuaiyun.com/u013317653/article/details/89015632</guid><author>u013317653</author><pubDate>Thu, 04 Apr 2019 10:47:59 +0800</pubDate><description><![CDATA[给定一个整数数组nums和一个目标值target，请你在该数组中找出和为目标值的那两个整数，并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是，你不能重复利用这个数组中同样的元素。

示例:


给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

给定一个整...]]></description><category></category></item></channel></rss>