<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[gotobar的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/gotobar</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gotobar]]></copyright><item><title><![CDATA[快速排序复习]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/119298944</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/119298944</guid><author>gotobar</author><pubDate>Sun, 01 Aug 2021 15:57:16 +0800</pubDate><description><![CDATA[网上抄来抄去的博客乱七八糟的太多了，标准的写法，实现一个partition函数和一个sort函数。

partition函数负责寻找每次的分割点，sort函数负责递归调用左右分段。

partition函数需要

传入一个初始选定的轴心下标，将其交换到数组末尾，
	锚定一个分组下标（初始从最左边开始）
	然后从数组左边到 [末尾-1] 的所有数字可以遍历一次来进行分组，
	碰到比轴心值小的，就和锚定值交换，锚定下标往右移动，最后返回锚定的下标。
上层sort函数对返回的锚定下标进行左右分组的sort，就完成]]></description><category></category></item><item><title><![CDATA[Leetcode 138 和 Java的深拷贝]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/104114640</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/104114640</guid><author>gotobar</author><pubDate>Thu, 30 Jan 2020 19:24:20 +0800</pubDate><description><![CDATA[今天做到leetcode的138题，题目是返回一个拥有随机指针的链表的深拷贝。



由于我是用Java做的，先深入复习一下Java的对象拷贝机制。

Java类型和浅拷贝

Java的类型分为值类型和引用类型。

其中值类型包括所有的基本类型，char, boolean, int, double, float, long, short, byte。

其他的类、接口、枚举和数组等都是引用类型。...]]></description><category></category></item><item><title><![CDATA[Bloom Filter (布隆过滤器) 介绍以及简单的Java实现]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/103793295</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/103793295</guid><author>gotobar</author><pubDate>Wed, 01 Jan 2020 18:09:03 +0800</pubDate><description><![CDATA[定义

布隆过滤器（Bloom Filter）是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多，缺点是有一定的误识别率和删除困难。

从简单的定义可以看出，使用布隆过滤器目的是为了优化元素查找的性能，不过布隆过滤器提升的是得到这个元素（key）的存在性的性能。



...]]></description><category></category></item><item><title><![CDATA[Java获取Cookie特殊字符处理]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/51902348</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/51902348</guid><author>gotobar</author><pubDate>Wed, 13 Jul 2016 23:11:27 +0800</pubDate><description><![CDATA[今天在工作中遇到一个问题，用request对象getCookies的时候，发现如果Cookie的value里面带有一些特殊字符，是会在request中就被过滤掉，从而缺失特殊字符后面的内容。
去查了一下，是因为RFC规范中规定了Cookie中不允许带有一些特殊字符，
例如这一串：{ '\t', ' ', '\"', '(', ')', ',', ':', ';', '', '=', '>', ]]></description><category></category></item><item><title><![CDATA[Mongodb上一次非正常关闭后修复]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/51084738</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/51084738</guid><author>gotobar</author><pubDate>Thu, 07 Apr 2016 12:03:20 +0800</pubDate><description><![CDATA[rm -rf /data/mongodb/data/puf_sfap/mongod.lock
rm -rf /data/mongodb/data/puf_sfap/WiredTiger.lock
/data/mongodb/bin/mongod --repair -f /data/mongodb/config/mongod.conf -nojournal --repairpath /data/mo]]></description><category></category></item><item><title><![CDATA[搭mongodb+zookeeper+kafka环境]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/50587289</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/50587289</guid><author>gotobar</author><pubDate>Tue, 26 Jan 2016 15:06:30 +0800</pubDate><description><![CDATA[先说最简单的mongodb
1.解压mongodb的包
2.启动命令为 ./bin/mongod --config ./config/mongod.conf
需要主意的点：修改mongod.conf中的内容与mongodb文件的解压目录（*path）要匹配

systemLog:
  destination: file
  path: /home/mongodb/log/mongod.l]]></description><category></category></item><item><title><![CDATA[《算法导论》代码搬运工--堆排序]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/49069835</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/49069835</guid><author>gotobar</author><pubDate>Mon, 12 Oct 2015 10:52:56 +0800</pubDate><description><![CDATA[最近买了本中文版的《算法导论》，打算系统的看一下基础的算法，并尽量的实现一下书上的代码例子。书很厚，内容很多，有简单的也有难懂的，所以打算开一个新的系列，长期不定时的加入新的内容，就叫《算法导论》代码搬运工系列。代码基本都是用java实现的，实现语言并不重要，java和C的语法差别也并不大。
这一篇来搬运一个基础的排序算法：堆排序。
堆排序：顾名思义，就是用堆来实现排序的功能，那么在堆排序之前]]></description><category></category></item><item><title><![CDATA[BitMap算法]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/48677607</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/48677607</guid><author>gotobar</author><pubDate>Wed, 23 Sep 2015 12:38:30 +0800</pubDate><description><![CDATA[对大量数据（超过内存上限的数据）的排序，典型的有外部排序，但是如果对不重复数据排序，还可以用bitmap算法。
bitmap算法的思想就是用一个整型的32位中的每一位去记录一个数，所以，每一个整型可以记录32个数，这样可以大大的节省空间，更加官方的解释有很多博客都有记载，更可以参考《编程珠玑》。
这里贴一下java的代码，都使用位运算。
public class Bitmap {

	sta]]></description><category></category></item><item><title><![CDATA[二叉树系列--层序遍历（java实现）]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/48578487</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/48578487</guid><author>gotobar</author><pubDate>Sat, 19 Sep 2015 19:52:02 +0800</pubDate><description><![CDATA[记录两道题目：
第一题：计算二叉树的深度，两行递归即可搞定。
public static int level(Node root) {
		if (root == null)
			return 0;
		return level(root.left) + 1 > level(root.right) + 1 ? level(root.left) + 1
				: level(root.rig]]></description><category></category></item><item><title><![CDATA[非递归遍历二叉树--java实现]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/48524331</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/48524331</guid><author>gotobar</author><pubDate>Thu, 17 Sep 2015 17:35:46 +0800</pubDate><description><![CDATA[经典数据结构--二叉树的遍历
递归遍历二叉树只有三行代码，特别容易理解且特别容易实现，但是非递归就没有那么的一目了然，不过其实就是把递归的做法平铺开来而已。下面来看每一种顺序的做法。
先序遍历：也就是先访问根节点，再左孩子，再右孩子。如何做呢，用手在纸上画一颗简单的二叉树，你会发现，先序遍历的顺序就是从根节点开始，一直访问左孩子，直到叶子（无孩子），然后访问这个叶子的父亲的右孩子（可能是子二叉]]></description><category></category></item><item><title><![CDATA[记录几个将来要看的问题]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/48232253</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/48232253</guid><author>gotobar</author><pubDate>Sat, 05 Sep 2015 23:43:59 +0800</pubDate><description><![CDATA[1.java的异常处理，包括finally的执行顺序细节
2.java的并发线程安全解决办法，重点看重入锁
3.外部排序]]></description><category></category></item><item><title><![CDATA[java的四种引用]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/48230337</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/48230337</guid><author>gotobar</author><pubDate>Sat, 05 Sep 2015 22:53:53 +0800</pubDate><description><![CDATA[很多详细的东西在网上都可以找到，因为这个问题在面试中被提到过，所以特此做一个简单的笔记。
java中有四种引用的方法（按照从强到弱）：
第一种：强引用，也就是一般的对象引用。特点是不管在什么时候，此引用的对象都不会被垃圾回收，JVM会在堆满的时候抛异常，也不会回收。。。
第二种：软引用，使用格式：SoftRefrence o = new SoftRefrence(); 只要内存空间足够，就不]]></description><category></category></item><item><title><![CDATA[网易校园招聘java面试经历]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/48153707</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/48153707</guid><author>gotobar</author><pubDate>Tue, 01 Sep 2015 10:39:44 +0800</pubDate><description><![CDATA[之前投过阿里，无奈缺乏实战经验，算法能力也不够出众，面试的时候没什么可说的被刷。这次被通知过了电话面试，所以就去了现场面。
这是我第一次过了所有轮的技术面最后面了HR面的经历，所以对我挺有意义的，所以想写下来。
先说说之前的电话面吧，接到电话的时候我刚刚坐飞机在浦东机场降落，所以跟面试官约了第二天上午，第二天上午电话准时响起。网易的电面不像阿里的一样会有较长的前戏，当时阿里电面跟我聊了很多我研]]></description><category></category></item><item><title><![CDATA[Tomcat能够在eclipse里启动，但是不能访问首页的问题]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/46863077</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/46863077</guid><author>gotobar</author><pubDate>Mon, 13 Jul 2015 15:22:24 +0800</pubDate><description><![CDATA[今天在使用eclipse的时候发现一个问题，就是我在eclipse里面已经启动了tomcat，部署上去的项目也可以启动，但是就是没法访问tomcat的首页，端口等等都没有问题。
后来查到解决方案，在这里记录一下：
1.进入控制台（console）标签旁边的服务器标签（server）
2.双击已经存在的server
3.把里面server locations这个选项卡里面 specify t]]></description><category></category></item><item><title><![CDATA[MongoDB中对象反序列化的一个小问题]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/46790889</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/46790889</guid><author>gotobar</author><pubDate>Tue, 07 Jul 2015 16:13:09 +0800</pubDate><description><![CDATA[今天在mongoDB存取对象数据的时候，碰到一个小问题：对象的某一个字段类型是抽象类或者接口，在存入的时候没有问题，但是在读取的时候，由于没有具体类的信息，无法完成对象的重新构建，就会报错：
Can not construct instance of com.bp.samples.json.generics.xxx, 
problem: abstract types either need to]]></description><category></category></item><item><title><![CDATA[leetcode:Isomorphic Strings (java)]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/45500869</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/45500869</guid><author>gotobar</author><pubDate>Tue, 05 May 2015 12:23:43 +0800</pubDate><description><![CDATA[记录一道hashtable的题，用两次互相的字符(s[i])到字符(t[i])映射记录，然后按照映射还原比较就可以判断是否相同，开始以为只有字母，后来发现是ascii码表长度的alphabet才可以~
public static boolean isIsomorphic(String s, String t) {
        char[] alph1 = new char[128];
   ]]></description><category></category></item><item><title><![CDATA[leetcode: Reverse Linked List(java)]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/45500631</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/45500631</guid><author>gotobar</author><pubDate>Tue, 05 May 2015 11:49:55 +0800</pubDate><description><![CDATA[哎呀，糟了，leetcode又有easy题了，好久没上，直接在网站上A了。题目就是把一个链表倒过来。。。
public ListNode reverseList(ListNode head) {
        if(head == null)return null;
        
        ListNode preNode = null;
        ListNode curNo]]></description><category></category></item><item><title><![CDATA[leetcode: Remove Linked List Elements(java)]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/45246347</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/45246347</guid><author>gotobar</author><pubDate>Fri, 24 Apr 2015 14:42:59 +0800</pubDate><description><![CDATA[Remove all elements from a linked list of integers that have value val.

Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5

Credits:

Special than]]></description><category></category></item><item><title><![CDATA[leetcode: Happy Number]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/45193515</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/45193515</guid><author>gotobar</author><pubDate>Wed, 22 Apr 2015 12:38:04 +0800</pubDate><description><![CDATA[题意：


Write an algorithm to determine if a number is "happy".

A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of th]]></description><category></category></item><item><title><![CDATA[leetcode：sudoku solver]]></title><link>https://blog.youkuaiyun.com/gotobar/article/details/45059391</link><guid>https://blog.youkuaiyun.com/gotobar/article/details/45059391</guid><author>gotobar</author><pubDate>Wed, 15 Apr 2015 14:52:07 +0800</pubDate><description><![CDATA[sudoku solver]]></description><category></category></item></channel></rss>