<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[张立钺   zly_2008的专栏]]></title><description><![CDATA[雁过留声，人过留名！在人生的道路上，贡献一份力量！]]></description><link>https://blog.youkuaiyun.com/zly_2008</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zly_2008]]></copyright><item><title><![CDATA[深入java String.intern()]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/24737795</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/24737795</guid><author>zly_2008</author><pubDate>Tue, 29 Apr 2014 20:33:54 +0800</pubDate><description><![CDATA[public String intern()


返回字符串对象的规范化表示形式。
一个初始时为空的字符串池，它由类 String 私有地维护。 当调用 intern 方法时，如果池已经包含一个等于此 String 对象的字符串（该对象由 equals(Object) 方法确定），则返回池中的字符串。否则，将此 String 对象添加到池中，并且返回此 String 对象的引用。它遵循对于]]></description><category></category></item><item><title><![CDATA[4.深入java反射机制]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/24548979</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/24548979</guid><author>zly_2008</author><pubDate>Sat, 26 Apr 2014 18:52:22 +0800</pubDate><description><![CDATA[Reflection 是 Java 程序开发语言的特征之一，它允许运行中的 Java 程序对自身进行检查，或者说“自审”，并能直接操作程序的内部属性和方法。Java 的这一能力在实际应用中用得不是很多，但是在其它的程序设计语言中根本就不存在这一特性。例如，Pascal、C
 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。
Reflection 是 Java 被视为动态（或准动态）语]]></description><category></category></item><item><title><![CDATA[3.深入java泛型]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/24546997</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/24546997</guid><author>zly_2008</author><pubDate>Sat, 26 Apr 2014 18:10:40 +0800</pubDate><description><![CDATA[在Java SE 1.5之前，没有泛型的情况的下，通过对类型Object的引用来实现参数的“任意化”，“任意化”带来的缺点是要做显式的强制类型转换，而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况，编译器可能不提示错误，在运行的时候才出现异常，这是一个安全隐患。

泛型是Java SE 1.5的新特性，泛型的本质是参数化类型，也就是说所操作的数据类型被指定]]></description><category></category></item><item><title><![CDATA[2.深入java包装类自动装箱、自动拆箱]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/24496499</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/24496499</guid><author>zly_2008</author><pubDate>Fri, 25 Apr 2014 21:28:08 +0800</pubDate><description><![CDATA[包装类（Wrapper Class）

　　包装类是针对于原生数据类型的包装。

　　因为有8个原生数据类型，所以对应有8个包装类。

　　所有的包装类（8个）都位于java.lang下。

　　Java中的8个包装类分别是：Byte, Short, Integer, Long, Float, Double, Character, Boolean，它们的使用方式都是一样的，可以实现]]></description><category></category></item><item><title><![CDATA[1.深入java枚举类型]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/24493817</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/24493817</guid><author>zly_2008</author><pubDate>Fri, 25 Apr 2014 20:12:57 +0800</pubDate><description><![CDATA[枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。
下面就是一个典型枚举类型的定义：
publiv enum Col



public enum Color{  
    RED,BLUE,BLACK,YELLOW,GREEN  
}]]></description><category></category></item><item><title><![CDATA[Mybatis3.2.6+mysql第一个例子]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/22692321</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/22692321</guid><author>zly_2008</author><pubDate>Mon, 31 Mar 2014 20:45:15 +0800</pubDate><description><![CDATA[每当我们接触到一个新的框架时，很多人会选择把所有的文档读完，把别人的视频看完（以前我也一样），但是当你把所有的东西（文档、视频）都看完后来做第一个例子，发现你根本就无从下手，效率非常低下。我现在的做法是先到官网看搭建框架的五分钟教程，把框架先搭起来，运行第一个例子，希望看到这边的文章的童鞋们也采用这套做法，不要再继续做无用功了。

Mybatis3.2.6下载：http://code.goog]]></description><category></category></item><item><title><![CDATA[lucene 简单的例子]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/11494237</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/11494237</guid><author>zly_2008</author><pubDate>Mon, 09 Sep 2013 22:16:38 +0800</pubDate><description><![CDATA[使用lucene-core-3.1.0.jar
一 创建索引



[java] 
view plaincopyprint?


public class Indexer {      public static void main(String[] args) throws IOException {          // 保存索引文件的地方
          Strin]]></description><category></category></item><item><title><![CDATA[深入理解HashMap]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10364607</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10364607</guid><author>zly_2008</author><pubDate>Mon, 26 Aug 2013 21:56:50 +0800</pubDate><description><![CDATA[1、hashmap的数据结构 
要知道hashmap是什么，首先要搞清楚它的数据结构，在java编程语言中，最基本的结构就是两种，一个是数组，另外一个是模拟指针（引用），所有的数据结构都可以用这两个基本结构来构造的，hashmap也不例外。Hashmap实际上是一个数组和链表的结合体（在数据结构中，一般称之为“链表散列“），请看下图（横排表示数组，纵排表示数组元素【实际上是一个链表】）。

]]></description><category></category></item><item><title><![CDATA[多线程和并发中SynchronousQueue的使用]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10309941</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10309941</guid><author>zly_2008</author><pubDate>Sun, 25 Aug 2013 21:26:33 +0800</pubDate><description><![CDATA[package javautilconcurrent;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.SynchronousQueue;
/**
 * 这是一个阻塞队列，其中，每个插入操作必须等待]]></description><category></category></item><item><title><![CDATA[多线程和并发中BlockingQueue的使用]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10308485</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10308485</guid><author>zly_2008</author><pubDate>Sun, 25 Aug 2013 20:27:40 +0800</pubDate><description><![CDATA[package javautilconcurrent;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Exec]]></description><category></category></item><item><title><![CDATA[多线程和并发中新的任务执行架构Executor、ExecutorService、ScheduledExecutorService]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10296833</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10296833</guid><author>zly_2008</author><pubDate>Sun, 25 Aug 2013 10:34:10 +0800</pubDate><description><![CDATA[package javautilconcurrent;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors]]></description><category></category></item><item><title><![CDATA[Java多线程（七）、Volatile 关键字]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10270171</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10270171</guid><author>zly_2008</author><pubDate>Sat, 24 Aug 2013 15:29:30 +0800</pubDate><description><![CDATA[简介： Java™ 语言包含两种内在的同步机制：同步块（或方法）和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差（但有时它更简单并且开销更低），而且其使用也更容易出错。在这期的Java 理论与实践 中，Brian Goetz 将介绍几种正确使用 volatile 变量的模式，并针对其适用性限制提出一些建议。




Jav]]></description><category></category></item><item><title><![CDATA[Java多线程（六）、ThreadLocal类]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10270003</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10270003</guid><author>zly_2008</author><pubDate>Sat, 24 Aug 2013 15:27:32 +0800</pubDate><description><![CDATA[一、概述
 
ThreadLocal是什么呢？其实ThreadLocal并非是一个线程的本地实现版本，它并不是一个Thread，而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单，就是为每一个使用该变量的线程都提供一个变量值的副本，是Java中一种较为特殊的线程绑定机制，是每一]]></description><category></category></item><item><title><![CDATA[Java多线程（五）、多线程其他知识简要介绍]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10269807</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10269807</guid><author>zly_2008</author><pubDate>Sat, 24 Aug 2013 15:24:55 +0800</pubDate><description><![CDATA[一、线程组



[java] 
view plaincopyprint?


/**  * A thread group represents a set of threads. In addition, a thread   * group can also include other thread groups. The thread groups form   * a tr]]></description><category></category></item><item><title><![CDATA[Java多线程（四）、线程池]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10269691</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10269691</guid><author>zly_2008</author><pubDate>Sat, 24 Aug 2013 15:23:17 +0800</pubDate><description><![CDATA[系统启动一个新线程的成本是比较高的，因为它涉及到与操作系统的交互。在这种情况下，使用线程池可以很好的提供性能，尤其是当程序中需要创建大量生存期很短暂的线程时，更应该考虑使用线程池。
与数据库连接池类似的是，线程池在系统启动时即创建大量空闲的线程，程序将一个Runnable对象传给线程池，线程池就会启动一条线程来执行该对象的run方法，当run方法执行结束后，该线程并不会死亡，而是再次返回线程池中]]></description><category></category></item><item><title><![CDATA[Java多线程（三）、线程同步]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10269509</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10269509</guid><author>zly_2008</author><pubDate>Sat, 24 Aug 2013 15:21:24 +0800</pubDate><description><![CDATA[在之前，已经学习到了线程的创建和状态控制，但是每个线程之间几乎都没有什么太大的联系。可是有的时候，可能存在多个线程多同一个数据进行操作，这样，可能就会引用各种奇怪的问题。现在就来学习多线程对数据访问的控制吧。

 由于同一进程的多个线程共享同一片存储空间，在带来方便的同时，也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突，有效避免了同一个数据对象被多个线程同时访问。
]]></description><category></category></item><item><title><![CDATA[Java多线程（二）、线程的生命周期和状态控制]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10269345</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10269345</guid><author>zly_2008</author><pubDate>Sat, 24 Aug 2013 15:19:40 +0800</pubDate><description><![CDATA[一、线程的生命周期

线程状态转换图：


1、新建状态
用new关键字和Thread类或其子类建立一个线程对象后，该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间，通过调用start方法进入就绪状态（runnable）。
注意：不能对已经启动的线程再次调用start()方法，否则会出现java.lang.IllegalThreadStateException异常。
]]></description><category></category></item><item><title><![CDATA[Java多线程（一）、多线程的基本概念和使用]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10269119</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10269119</guid><author>zly_2008</author><pubDate>Sat, 24 Aug 2013 15:17:26 +0800</pubDate><description><![CDATA[一、进程和线程的基础知识
1、进程和线程的概念

进程：运行中的应用程序称为进程，拥有系统资源（cpu、内存）
线程：进程中的一段代码，一个进程中可以有多段代码。本身不拥有资源（共享所在进程的资源）
在java中，程序入口被自动创建为主线程，在主线程中可以创建多个子线程。
区别：
 1、是否占有资源问题
 2、创建或撤销一个进程所需要的开销比创建或撤销一个线程所需要的开销大。
 ]]></description><category></category></item><item><title><![CDATA[使用java.lang.Process类时需要注意的事情]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10267193</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10267193</guid><author>zly_2008</author><pubDate>Sat, 24 Aug 2013 14:50:31 +0800</pubDate><description><![CDATA[package javautilconcurrent;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/**
 * 使用Process需要注意的事情
 * @author zly
 *
 */
public class TestProcess {
 
 public static void ma]]></description><category></category></item><item><title><![CDATA[多线程并发中的简单使用wait和notify的方法]]></title><link>https://blog.youkuaiyun.com/zly_2008/article/details/10242037</link><guid>https://blog.youkuaiyun.com/zly_2008/article/details/10242037</guid><author>zly_2008</author><pubDate>Fri, 23 Aug 2013 22:11:05 +0800</pubDate><description><![CDATA[package javautilconcurrent;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
 * 简单使用wait和notify
 * @author zly
 *
 */
public class UseWaitAndNotify {]]></description><category></category></item></channel></rss>