<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Perry in IT World]]></title><description><![CDATA[不为失败找借口，只为成功找方法！]]></description><link>https://blog.youkuaiyun.com/huangmp</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; huangmp]]></copyright><item><title><![CDATA[SQL的使用规范和优化]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7589415</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7589415</guid><author>huangmp</author><pubDate>Tue, 22 May 2012 08:30:27 +0800</pubDate><description><![CDATA[高程序运行效率，优化应用程序，在SP编写过程中应该注意以下几点:
a)SQL的使用规范：

　　　i.　尽量避免大事务操作，慎用holdlock子句，提高系统并发能力。

　　　ii.　尽量避免反复访问同一张或几张表，尤其是数据量较大的表，可以考虑先根据条件提取数据到临时表中，然后再做连接。

　　　iii.　尽量避免使用游标，因为游标的效率较差，如果游标操作的数据超过1万行，那么就]]></description><category></category></item><item><title><![CDATA[笔试题14:用TCP通信模型创建一个Web服务器（源码）]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7556559</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7556559</guid><author>huangmp</author><pubDate>Fri, 11 May 2012 11:13:31 +0800</pubDate><description><![CDATA[我们都知道，IIS、Apache和tomcat等Web服务器可以用来创建Web站点，负责接受客户端浏览器的HTTP请求。那么，他们是如何实现的呢？其实基本原理是采用TCP通信模型。下面给出一个采用Java的TCP编程API创建的简易Web服务器的例子。
闲话少说，附上源码：

import java.io.OutputStream;
import java.io.PrintWriter;
i]]></description><category></category></item><item><title><![CDATA[笔试题13:采用UDP协议,编写一个简单发送字符串的程序(源码)]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7554874</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7554874</guid><author>huangmp</author><pubDate>Thu, 10 May 2012 19:14:01 +0800</pubDate><description><![CDATA[UDP协议是一种无须建立连接的网络通信协议，采用Java来编写，一般有以下几个步骤：（包括接收端和发送端）
1、创建数据Socket，指定一个端口号；
2、对于接收消息的一端来说，提供一个byte数组进行数据的存储，而对于发送消息一端，除此之外还需要提供对端的IP地址和端口号；
3、调用DatagramPacket的receive()或send()方法进行数据的接收或发送；
4、调用Dat]]></description><category></category></item><item><title><![CDATA[笔试题12:如何利用反射实例化一个类(源码)]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7554266</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7554266</guid><author>huangmp</author><pubDate>Thu, 10 May 2012 15:53:57 +0800</pubDate><description><![CDATA[在Java学习中，反射还是相对比较难理解的一部分内容。如题，我们利用反射机制来实例化一个类，一般有两种方法。
1、如果使用无参数的构造方法，则直接使用Class类的newInstance()方法即可；
2、如果使用特定的构造方法来创建对象，则需要先获取Constructor实例，再使用newInstance()方法来创建对象。
下面附上相应的源码，帮助理解：
public class Ne]]></description><category></category></item><item><title><![CDATA[笔试题11:编写一个生产者与消费者的多线程例子(源码)]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7551753</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7551753</guid><author>huangmp</author><pubDate>Wed, 09 May 2012 21:49:18 +0800</pubDate><description><![CDATA[生产者与消费者模式，是一道非常经典的设计模式，所涉及到的是多线程协调工作的问题。在Java中，一般是通过wait()和notify()方法进行解决。
下面附上关于这种设计模式的源码：

//仓库类
public class Store {
	
	private final int MAX_SIZE;//仓库的最大容量
	private int count;//当前的货物数量
	public]]></description><category></category></item><item><title><![CDATA[笔试题10:Runnable接口与Thread类的区别？]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7550400</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7550400</guid><author>huangmp</author><pubDate>Wed, 09 May 2012 16:04:52 +0800</pubDate><description><![CDATA[1、线程类继承自Thread则不能继承自其它类，而Runnable接口可以；
2、线程类继承自Thread相对于Runnable来说，使用线程的方法更方便一些；
3、实现Runnable接口的线程类的多个线程，可以更方便的访问同一变量，而Thread类则需要内部类来进行替代。]]></description><category></category></item><item><title><![CDATA[笔试题9：抽象类和接口的区别？]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7517603</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7517603</guid><author>huangmp</author><pubDate>Fri, 27 Apr 2012 15:39:13 +0800</pubDate><description><![CDATA[(1)接口可以被多重implements,抽象类只能被单一extends
(2)接口只有定义,抽象类可以有定义和实现
(3)接口的字段定义默认为:public static final, 抽象类字段默认是"friendly"(本包可见)

当功能需要累积时用抽象类，不需要累积时用接口。]]></description><category></category></item><item><title><![CDATA[笔试题8：一些常见的转义字符]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7513354</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7513354</guid><author>huangmp</author><pubDate>Thu, 26 Apr 2012 10:52:44 +0800</pubDate><description><![CDATA[\a : 响铃
\b : 退格
\f  : 换页
\n : 换行
\r  : 回车
\t :水平制表
\v : 垂直制表
\\ : 反斜杠
\? : 文号字符
\' : 单引号字符
\" : 双引号字符
\0 ：空字符（Null）
\ddd ： 任意字符 三位八进制数
\xhh ： 任意字符二位十进制数]]></description><category></category></item><item><title><![CDATA[笔试题7：char的取值范围？]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7513316</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7513316</guid><author>huangmp</author><pubDate>Thu, 26 Apr 2012 10:42:32 +0800</pubDate><description><![CDATA[Java中的char采用Unicode编码格式，用两个字节来表示一个字符，一共16为（Bit），所以能表示的最大字符数量是216]]></description><category></category></item><item><title><![CDATA[笔试题6：boolean和Boolean的区别？]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7513097</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7513097</guid><author>huangmp</author><pubDate>Thu, 26 Apr 2012 10:10:24 +0800</pubDate><description><![CDATA[1、boolean是基础数据类型，Boolean是其包装类，也就是属于类；
2、boolean一般存于栈空间中，Boolean对象存于堆空间中；
3、boolean有true和false两种值，Boolean除了true和false以外，还有null；
4、Java5.0以前，不能把Boolean用于条件语句，需要转换以boolean以后再使用。]]></description><category></category></item><item><title><![CDATA[笔试题5：Java可以用非0来带代表true吗?]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7513076</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7513076</guid><author>huangmp</author><pubDate>Thu, 26 Apr 2012 09:55:36 +0800</pubDate><description><![CDATA[Java 是一种强类型的语言，Java不能用非0代表true，也不能用0代表false，只能用布尔型的true和false来进行条件判断。]]></description><category></category></item><item><title><![CDATA[笔试题4：关于实型与整型之间转换的讨论]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7497674</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7497674</guid><author>huangmp</author><pubDate>Wed, 25 Apr 2012 13:57:20 +0800</pubDate><description><![CDATA[证明过程（省略）。
整型和实型可以相应转换，其中整型转换为实型时，不会存在精度的损失，而实型转换为整型时则可能会有精度上的损失。
转换过程可分为显式和隐式两种方式，前者是通过强制类型转换来进行，后者是在运算。传参等情况下，由系统自动进行。]]></description><category></category></item><item><title><![CDATA[笔试题3：long类型的取值范围？]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7497607</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7497607</guid><author>huangmp</author><pubDate>Wed, 25 Apr 2012 13:40:07 +0800</pubDate><description><![CDATA[对于这道题，与笔试题1相似，证明过程是采用数据的存储原理可证。

解答思路：long型数据的字节长度为8，也就是64位。

答案：

-263~263-1]]></description><category></category></item><item><title><![CDATA[笔试题2：如何用八进制和十六进制来表示整型数据]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7497219</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7497219</guid><author>huangmp</author><pubDate>Wed, 25 Apr 2012 13:33:17 +0800</pubDate><description><![CDATA[八进制的含义在于每位数字的进位大小为8，也就是0~8的9个数字。
十六进制的进位大小为16，除了0~9的10个数字，还包括a、b、c、d、e、f来表示10、11、12、13、14、15。
答案：Java的八进制采用0开头，十六进制采用0x开头；]]></description><category></category></item><item><title><![CDATA[笔试题1:int类型的取值范围是什么？]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7497077</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7497077</guid><author>huangmp</author><pubDate>Wed, 25 Apr 2012 11:28:00 +0800</pubDate><description><![CDATA[笔试题1:int类型的取值范围是什么？
Java中int类型采用4个字节，一共32位，第一位用于正负号表示，因此其取值范围：
-231
~ 231-1]]></description><category></category></item><item><title><![CDATA[关于Java程序员面试的那些事]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7497004</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7497004</guid><author>huangmp</author><pubDate>Wed, 25 Apr 2012 11:11:46 +0800</pubDate><description><![CDATA[前   言
       近期翻看了有关Java程序员面试的书籍，感受良多，希望通过优快云来记录下这些平时我们容易忽视的知识点，以供以后查看，自己平时很少在博客上写东西，文笔比较烂，还有待提高！！
       Java学习要点：基础东西一定要扎实！！
       未完，待续……]]></description><category></category></item><item><title><![CDATA[关于Spirng Quartz定时触发器+源码示例！]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7493482</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7493482</guid><author>huangmp</author><pubDate>Tue, 24 Apr 2012 14:03:19 +0800</pubDate><description><![CDATA[最近实现了一个业务，刚好需要用到Spring 触发器，特写了一个Spring 触发器Demo供大家学习参考！

     Demo简单的实现了定时报时功能，通过Spring 触发器实现每分钟报一次时间！

Demo结构如下：





 运行结果如下：




 

简单解释一下Quartz：

    Quartz调度器为调度工作提供了更丰富的支持。和Jav]]></description><category></category></item><item><title><![CDATA[禅道程序员的10条原则]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7480446</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7480446</guid><author>huangmp</author><pubDate>Fri, 20 Apr 2012 10:36:30 +0800</pubDate><description><![CDATA[在一个阴雨的早上，我坐在桌子旁，开始想如何才能高效的工作。在我成为一个自由职业者之前，我有很长一段时间都很努力工作，但收效甚微。
我在2006开始接触禅学。我马上意识到：古代的禅宗大师们几百年前早就已经知道现今的程序员应该如何工作。虽然我很讨厌“如何成为一个更好的程序员”之类的文章，但我仍旧想分享一些我的想法。它对我来说起到个提醒的作用，如果你有什么想法，也请留言。
 
0.专注 | Foc]]></description><category></category></item><item><title><![CDATA[java for循环的几种写法]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7319483</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7319483</guid><author>huangmp</author><pubDate>Mon, 05 Mar 2012 09:04:13 +0800</pubDate><description><![CDATA[J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环，可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式，说明如何自行定义能被这样遍历的类，并解释和这一机制的一些常见问题。
在Java程序中，要 “逐一处理”――或者说，“遍历”――某一个数组或Collection中的元素的时候，一般会使用一个for循环来实现（当然，用其它种类的循环也]]></description><category></category></item><item><title><![CDATA[java中四种操作（dom、sax、jdom、dom4j）xml方法]]></title><link>https://blog.youkuaiyun.com/huangmp/article/details/7283378</link><guid>https://blog.youkuaiyun.com/huangmp/article/details/7283378</guid><author>huangmp</author><pubDate>Wed, 22 Feb 2012 14:48:37 +0800</pubDate><description><![CDATA[java中四种操作（dom、sax、jdom、dom4j）xml方式详解与比较

　　1)DOM（JAXP Crimson解析器）   

  DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构，然后才能做任何工作。由于它是基于信息层次的，因而]]></description><category></category></item></channel></rss>