<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[马里奥的专栏]]></title><description><![CDATA[You have a dream, you got to protect it.]]></description><link>https://blog.youkuaiyun.com/feipeixuan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; feipeixuan]]></copyright><item><title><![CDATA[操作系统-分段分页]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/69543902</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/69543902</guid><author>feipeixuan</author><pubDate>Fri, 07 Apr 2017 14:43:21 +0800</pubDate><description><![CDATA[1.分页与分段的主要区别：
1）、段是信息的逻辑单位，它是根据用户的需要划分的，因此段对用户是可见的；页是信息的物理单位，是为了管理主存的方便而划分的，对用户是透明的。
2）、页的大小固定不变，由系统决定。段的大小是不固定的，它由其完成的功能决定。
3）、段式向用户提供的是二维地址空间，页式向用户提供的是一维地址空间，其页号和页内偏移是机器硬件的功能。
4）、由于段是信息的逻辑单位，因此便]]></description><category></category></item><item><title><![CDATA[Top N问题（一）基础]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/69525585</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/69525585</guid><author>feipeixuan</author><pubDate>Fri, 07 Apr 2017 12:06:29 +0800</pubDate><description><![CDATA[前言：
在分析MapReduce、Hive、Redis和Storm、Spark等工具实现分组Top
 n问题前，我们先看下Java最原始实现Top的方法有哪些，为后面奠定些基础，这也是我要整理成一个系列的原因。
对于Top n问题，这里根据数据特点用合并法、快排过程法、大小顶堆和PriorityQueue固定队列四种方式来实现。
合并法：
数据描述：这种方法适用于几个数组有序的情况，来求]]></description><category></category></item><item><title><![CDATA[Contains Duplicate II]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51422767</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51422767</guid><author>feipeixuan</author><pubDate>Mon, 16 May 2016 10:03:51 +0800</pubDate><description><![CDATA[1、题目名称

Contains Duplicate II（判断数组内是否有重复元素2）


2、题目地址

https://leetcode.com/problems/contains-duplicate-ii/


3、题目内容

英文：Given an array of integers and an integer k, find out whether there]]></description><category></category></item><item><title><![CDATA[53. Maximum Subarray]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51367789</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51367789</guid><author>feipeixuan</author><pubDate>Tue, 10 May 2016 23:38:39 +0800</pubDate><description><![CDATA[53. Maximum Subarray
   My Submissions

Question
Editorial Solution


Total Accepted: 111178 Total
 Submissions: 302914 Difficulty: Medium




Find the contiguous subarray within an array]]></description><category></category></item><item><title><![CDATA[Java异常处理(3)自动关闭的try]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51271865</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51271865</guid><author>feipeixuan</author><pubDate>Thu, 28 Apr 2016 10:08:22 +0800</pubDate><description><![CDATA[新增了try-with-resource 异常声明

在JDK7中只要实现了AutoCloseable或Closeable接口的类或接口，都可以使用try-with-resource来实现异常处理和资源关闭，圆括号声明的资源，必须在程序结束时显示关闭，try语句在{}结束后自动关闭资源。

异常抛出顺序。在Java se 7中的try-with-resource机制中异常的抛出顺序与Jav]]></description><category></category></item><item><title><![CDATA[Java异常处理(2)]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51263859</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51263859</guid><author>feipeixuan</author><pubDate>Wed, 27 Apr 2016 19:45:05 +0800</pubDate><description><![CDATA[java.lang.Exception类是Java中所有异常的直接或间接父类。即Exception类是所有异常的根类。

　　比如程序：　


public class ExceptionTest
{
      public static void main(String[] args)
      {
             int a = 3;
             int ]]></description><category></category></item><item><title><![CDATA[Java异常处理(1)]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51262926</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51262926</guid><author>feipeixuan</author><pubDate>Wed, 27 Apr 2016 19:22:15 +0800</pubDate><description><![CDATA[1.Java异常机制

Java把异常当做对象来处理，并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类：错误Error和异常Exception，Java异常体系结构如下图所示：



图片来源：http://blog.youkuaiyun.com/wuwenxiang91322/article/details/10346337

2.Throw]]></description><category></category></item><item><title><![CDATA[Java输入输出深入序列化(5)]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51245182</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51245182</guid><author>feipeixuan</author><pubDate>Mon, 25 Apr 2016 20:58:12 +0800</pubDate><description><![CDATA[要搞清楚，什么情况下需要实例化？
 1、当你想把的内存中的对象状态保存到一个文件中或者数据库中时候；
 2、当你想用套接字在网络上传送对象的时候；
 java对象序列化不仅保留一个对象的数据，而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中，可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制"，即复制对象本身及引用的对象本身。序列化一个对象可能得到整]]></description><category></category></item><item><title><![CDATA[191. Number of 1 Bits]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51244825</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51244825</guid><author>feipeixuan</author><pubDate>Mon, 25 Apr 2016 19:52:13 +0800</pubDate><description><![CDATA[191. Number of 1 Bits、



Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the
Hamming weight).
For example, the 32-bit integer ’11' has b]]></description><category></category></item><item><title><![CDATA[Java输入输出(4)序列化]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51213513</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51213513</guid><author>feipeixuan</author><pubDate>Thu, 21 Apr 2016 22:16:16 +0800</pubDate><description><![CDATA[一、序列化和反序列化的概念

　　把对象转换为字节序列的过程称为对象的序列化。
　　把字节序列恢复为对象的过程称为对象的反序列化。
　　对象的序列化主要有两种用途：
　　1） 把对象的字节序列永久地保存到硬盘上，通常存放在一个文件中；
　　2） 在网络上传送对象的字节序列。
　　在很多应用中，需要对某些对象进行序列化，让它们离开内存空间，入住物理硬盘，以便长期保存。比如最常见的是We]]></description><category></category></item><item><title><![CDATA[Java输入输出(3) 处理流和节点流]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51207127</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51207127</guid><author>feipeixuan</author><pubDate>Thu, 21 Apr 2016 11:13:14 +0800</pubDate><description><![CDATA[首先，流是什么？

流是个抽象的概念，是对输入输出设备的抽象，Java程序中，对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件，网络，内存等。



流具有方向性，至于是输入流还是输出流则是一个相对的概念【取决于流向】，一般以程序为参考，如果数据的流向是程序至设备，我们成为输出流，反之我们称为输入流。

可以将流想象成一个“水流管道”，水流就在这管道中形成了，【水滴救]]></description><category></category></item><item><title><![CDATA[Java输入输出(2) 层次体系结构]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51200268</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51200268</guid><author>feipeixuan</author><pubDate>Wed, 20 Apr 2016 15:00:56 +0800</pubDate><description><![CDATA[4.java.IO层次体系结构 






在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader；一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了



      Java I/O主要包括如下几个层次，包含]]></description><category></category></item><item><title><![CDATA[Java输入输出(1)基础知识]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51200013</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51200013</guid><author>feipeixuan</author><pubDate>Wed, 20 Apr 2016 13:29:33 +0800</pubDate><description><![CDATA[1.什么是IO

      Java中I/O操作主要是指使用Java进行输入，输出操作. Java所有的I/O机制都是基于数据流进行输入输出，这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。  

      Java.io是大多数面向数据流的输入/输出类的主要软件包。此外，J]]></description><category></category></item><item><title><![CDATA[Java文件流 BufferedStream]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51195055</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51195055</guid><author>feipeixuan</author><pubDate>Tue, 19 Apr 2016 23:22:38 +0800</pubDate><description><![CDATA[一、BufferedInputSream 出现的目的是为了提高读取文件的效率，但是BufferedInputStream的read的方法每次读取一个字节数据，而FileInputStream每次也是读取一个字节的数据，那么BufferedInputStream效率从何而来？


BufferedInputStream：是从内存中的缓冲数组读取的。FileInputStream：是从硬盘中直接]]></description><category></category></item><item><title><![CDATA[Java多线程(6) 线程池]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51180874</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51180874</guid><author>feipeixuan</author><pubDate>Mon, 18 Apr 2016 16:56:50 +0800</pubDate><description><![CDATA[什么原因使我们不得不使用线程池？ 

个人认为主要原因是：短时间内需要处理的任务数量很多 

使用线程池的好处: 

1.减少在创建和销毁线程上所花的时间以及系统资源的开销 
2.如不使用线程池，有可能造成系统创建大量线程而导致消耗完系统内存 

以下是Java自带的几种线程池： 

1、newFixedThreadPool  创建一个指定工作线程数量的线程池。


]]></description><category></category></item><item><title><![CDATA[Java多线程(5) interrupt]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51175659</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51175659</guid><author>feipeixuan</author><pubDate>Sun, 17 Apr 2016 21:50:35 +0800</pubDate><description><![CDATA[一.简述
interrupt()不会中断一个正在运行的线程。方法实际完成的是：在线程受到阻塞时抛出一个中断信号，线程就得以退出阻塞的状态。
     更确切的说，
     如果线程被Object.wait，Thread.join，Thread.sleep三种方法之一阻塞，那么，它将接收到一个中断异常（InterruptedException），从而提早地终结被阻塞状态。、
     
]]></description><category></category></item><item><title><![CDATA[Java多线程(4)线程组]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51175216</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51175216</guid><author>feipeixuan</author><pubDate>Sun, 17 Apr 2016 20:46:19 +0800</pubDate><description><![CDATA[Java并发 API里有个有趣的方法是把线程分组。这个方法允许我们按线程组作为一个单位来处理。例如，你有一些线程做着同样的任务，你想控制他们，无论多少线程还在运行，他们的状态会被一个call 中断。


【类比就是你想控制一批人，利用这些线程来完成一些任务，进行统一的管理和监控】


例子：
public class ThreadGroupTest {

    public sta]]></description><category></category></item><item><title><![CDATA[Java多线程(3) 线程之间通信]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51159336</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51159336</guid><author>feipeixuan</author><pubDate>Fri, 15 Apr 2016 10:17:57 +0800</pubDate><description><![CDATA[线程间的相互作用

　　线程间的相互作用：线程之间需要一些协调通信，来共同完成一件任务。

　　Object类中相关的方法有两个notify方法和三个wait方法：

　　http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

　　因为wait和notify方法定义在Object类中，因此会被所有的类所继承。]]></description><category></category></item><item><title><![CDATA[Java多线程(2) 同步]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51143330</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51143330</guid><author>feipeixuan</author><pubDate>Wed, 13 Apr 2016 15:21:21 +0800</pubDate><description><![CDATA[一.简述
要说明线程同步问题首先要说明Java线程的两个特性，可见性和有序性。多个线程之间是不能直接传递数据交互的，它们之间的交互只能通过共享变量来实现。拿上篇博文中的例子来说明，在多个线程之间共享了Count类的一个对象，这个对象是被创建在主内存(堆内存)中，每个线程都有自己的工作内存(线程栈)，工作内存存储了主内存Count对象的一个副本，当线程操作Count对象时，首先从主内存复制Coun]]></description><category></category></item><item><title><![CDATA[Java多线程(1) 创建]]></title><link>https://blog.youkuaiyun.com/feipeixuan/article/details/51132665</link><guid>https://blog.youkuaiyun.com/feipeixuan/article/details/51132665</guid><author>feipeixuan</author><pubDate>Tue, 12 Apr 2016 13:45:24 +0800</pubDate><description><![CDATA[一.线程的生命周期及五种基本状态
关于Java中线程的生命周期，首先看一下下面这张较为经典的图：

Java线程具有五中基本状态
新建状态（New）：当线程对象对创建后，即进入了新建状态，如：Thread t = new MyThread();
就绪状态（Runnable）：当调用线程对象的start()方法（t.start();），线程即进入就绪状态。处于就绪状态的线程，只是说明此线程]]></description><category></category></item></channel></rss>