<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jackmtlee的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jackmtlee</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jackmtlee]]></copyright><item><title><![CDATA[Lock与Condition代替Synchronized]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/52287992</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/52287992</guid><author>jackmtlee</author><pubDate>Tue, 23 Aug 2016 09:33:27 +0800</pubDate><description><![CDATA[import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;


enum Light {RED, YELLOW, GREEN};
class TrafficLights
{
 ]]></description><category></category></item><item><title><![CDATA[URI、URL 和 URN]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/52202745</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/52202745</guid><author>jackmtlee</author><pubDate>Sun, 14 Aug 2016 01:58:28 +0800</pubDate><description><![CDATA[URI、URL 和 URN 
URI 是统一资源标识符，而 URL 是统一资源定位符。因此，笼统地说，每个 URL 都是 URI，但不一定每个 URI 都是 URL。这是因为 URI 还包括一个子类，即统一资源名称 (URN)，它命名资源但不指定如何定位资源。上面的
mailto、news 和 isbn URI 都是 URN 的示例。
URI 和 URL 概念上的不同反映在此类和 URL 类]]></description><category></category></item><item><title><![CDATA[URI和URL的区别]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/52202729</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/52202729</guid><author>jackmtlee</author><pubDate>Sun, 14 Aug 2016 01:47:34 +0800</pubDate><description><![CDATA[这两天在写代码的时候，由于涉及到资源的位置，因此，需要在Java Bean中定义一些字段，用来表示资源的位置，比如：imgUrl，logoUri等等。但是，每次定义的时候，心里都很纠结，是该用imgUrl还是imgUri呢？

同样的，另外一个问题：String HttpServletRequest.getRequestURI()；和StringBuffer HttpServletReques]]></description><category></category></item><item><title><![CDATA[JDK中的动态代理]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/51811313</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/51811313</guid><author>jackmtlee</author><pubDate>Sat, 02 Jul 2016 15:44:42 +0800</pubDate><description><![CDATA[//  Java中的动态代理： 1 被代理对象； 2 动态代理， 将被代理对象传入到动态代理类中， 生成动态代理对象
//  利用Proxy类中的newProxyInstance方法生成动态代理， 该方法有三个参数： a 被代理对象的类加载器；
//  b 被代理对象所有实现的接口； c InvocationHandler接口
//  该接口只有一个回调方法： invoke， 附带三个参数：]]></description><category></category></item><item><title><![CDATA[ROWNUM用法--SELECT * FROM T WHERE ROWNUM=1]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/51173471</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/51173471</guid><author>jackmtlee</author><pubDate>Sun, 17 Apr 2016 15:29:59 +0800</pubDate><description><![CDATA[对于不熟悉ROWNUM用法的人可以好好的看看了。

为什么SELECT * FROM T WHERE ROWNUM=1 可以查询出来数据，

而SELECT * FROM T WHERE ROWNUM=2不可以查询出来数据。

TOM大师给出ROWNUM计算的逻辑如下：

rownum = 1
for x in ( select * from A )
loop
if ( x]]></description><category></category></item><item><title><![CDATA[sleep()、wait()、yield()、join()方法 解析]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/51148445</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/51148445</guid><author>jackmtlee</author><pubDate>Thu, 14 Apr 2016 08:27:02 +0800</pubDate><description><![CDATA[一 java多线程机制



JAVA多线程机制有两种实现方式:

第一种:  继承Thread类, 实现run()方法.

第二种: 实现Runnable接口.

      实例代码:

      第一种:

                 public class OntThread extends Thread {
 　　　　　　public static]]></description><category></category></item><item><title><![CDATA[最简实例说明WAIT、NOTIFY、NOTIFYALL的使用方法]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/51078583</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/51078583</guid><author>jackmtlee</author><pubDate>Wed, 06 Apr 2016 21:14:23 +0800</pubDate><description><![CDATA[wait()、notify()、notifyAll()是三个定义在Object类里的方法，可以用来控制线程的状态。

这三个方法最终调用的都是jvm级的native方法。随着jvm运行平台的不同可能有些许差异。
    如果对象调用了wait方法就会使持有该对象的线程把该对象的控制权交出去，然后处于等待状态。
    如果对象调用了notify方法就会通知某个正在等待这个对象的控制权的线程]]></description><category></category></item><item><title><![CDATA[java之yield(),sleep(),wait()区别详解-备忘笔记]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/50993143</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/50993143</guid><author>jackmtlee</author><pubDate>Sun, 27 Mar 2016 19:10:28 +0800</pubDate><description><![CDATA[1、sleep()

使当前线程（即调用该方法的线程）暂停执行一段时间，让其他线程有机会继续执行，但它并不释放对象锁。也就是说如果有synchronized同步快，其他线程仍然不能访问共享数据。注意该方法要捕捉异常。

例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY，另一个为MIN_PRIORITY，如果没有Sleep()方法，只有高优先级的]]></description><category></category></item><item><title><![CDATA[HQL 简单的几种带条件查询方法]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/50674347</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/50674347</guid><author>jackmtlee</author><pubDate>Tue, 16 Feb 2016 13:53:14 +0800</pubDate><description><![CDATA[条件查询 
 * 可以采用拼字符串的方式传递参数
 * 可以采用 ？来传递参数（索引从0开始）
 * 可以采用 :参数名 来传递参数
 * 如果传递多个参数，可以采用setParamterList方法
 * 在hql中可以使用数据库的函数，如：date_format
 
第一种：可以拼字符串
   List students= session.createQuery("select]]></description><category></category></item><item><title><![CDATA[关于读取Properties文件的相对路径问题，怎么写是正确的？]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/49634147</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/49634147</guid><author>jackmtlee</author><pubDate>Wed, 04 Nov 2015 10:23:46 +0800</pubDate><description><![CDATA[读取资源文件一般根据上下文环境分为两种情况。 


第一种是非WEB应用的环境中，只需要简单的通过类加载器的getResourceAsStream方法读取。 
例如，classpath根目录下有一个setting.properties文件，可以这样读取 


Java代码  收藏代码
InputStream is = Thread.currentThread().getClass(]]></description><category></category></item><item><title><![CDATA[各个JSON技术的比较]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/49368579</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/49368579</guid><author>jackmtlee</author><pubDate>Fri, 23 Oct 2015 23:12:35 +0800</pubDate><description><![CDATA[JSON技术的调研报告

一 、各个JSON技术的简介和优劣
1.json-lib
json-lib最开始的也是应用最广泛的json解析工具，json-lib 不好的地方确实是依赖于很多第三方包，
包括commons-beanutils.jar，commons-collections-3.2.jar，commons-lang-2.6.jar，commons-logging-1.1.1.j]]></description><category></category></item><item><title><![CDATA[二叉树的一些通用算法(C)]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/42493991</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/42493991</guid><author>jackmtlee</author><pubDate>Wed, 07 Jan 2015 15:46:02 +0800</pubDate><description><![CDATA[二叉树的一些通用算法，包括前、中、后、层遍历，查找指定节点/父节点，求树高，最大最小节点、两节点最近公共父节点，任一节点到根的路径，任一节点在树中的层次等。
int element[] = {0,4,5,6,3,1,9,8,7,2,10,};           //   4,5,6,3,1,9,8,7,2,10


#define MAX(a,b) ((a)>(b))?(a):(b)
]]></description><category></category></item><item><title><![CDATA[PDM开发配置（TC+Oracle92）]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/5528886</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/5528886</guid><author>jackmtlee</author><pubDate>Mon, 26 Apr 2010 10:33:00 +0800</pubDate><description><![CDATA[1  首先安装oracle92，选择不安装数据库（用TC的自带模板）。2  /iman0912/dbca_templates文件复制到/oracle/ora92/assistants/dbca/templates3   启动oracle的DCBA建立Teamcenter Engineering模板数据库（数据库的字符集选ZHS16GBK，国家字符集选AL16UTF16）。4  rege]]></description><category></category></item><item><title><![CDATA[java 和javaw 的区别]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/5189178</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/5189178</guid><author>jackmtlee</author><pubDate>Thu, 14 Jan 2010 11:40:00 +0800</pubDate><description><![CDATA[javaw的程序不在java console 上面显示任何东西,如果在开发程序，就用java,这样可以看到错误提示， 如果是运行完成了的程序，就用javaw, 可以提高一点速度两个应用程序都能运行你的程序，并非常相似，但是有一个重要的区别，java通过控制台运行，javaw则不是。控制台几乎是为纯文本编成的，例如如果你用javaw运行所有你打印的状态不会被打印出来。你打印在程序中的有用信息]]></description><category></category></item><item><title><![CDATA[方法中的内部类只能访问final类型的变量]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/5189150</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/5189150</guid><author>jackmtlee</author><pubDate>Thu, 14 Jan 2010 11:34:00 +0800</pubDate><description><![CDATA[//  FirstSecondThird.javaclass First{   int firstVar = 1;   public void firstFn()   {      System.out.println("in firstFn firstVar = " + firstVar);      System.out.println(First.this.getClass().toStri]]></description><category></category></item><item><title><![CDATA[java.sql.SQLException异常 ]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/5189131</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/5189131</guid><author>jackmtlee</author><pubDate>Thu, 14 Jan 2010 11:32:00 +0800</pubDate><description><![CDATA[经常遇到一些java.sql.SQLException异常，ORA-00904: invalid column name 无效列名ORA-00942: table or view does not exist 表或者视图不存在ORA-01400: cannot insert NULL into () 不能将空值插入ORA-00936:　缺少表达式ORA-00933:　SQL 命令未]]></description><category></category></item><item><title><![CDATA[Java调用Oracle存储过程]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/5189105</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/5189105</guid><author>jackmtlee</author><pubDate>Thu, 14 Jan 2010 11:28:00 +0800</pubDate><description><![CDATA[第一种情况：无返回值.      create or replace procedure test_a(param1 in varchar2,param2 in varchar2) as       begin            insert into test value(param1,param2);     end;    Java调用代码:package c]]></description><category></category></item><item><title><![CDATA[Java内存泄露]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/5189088</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/5189088</guid><author>jackmtlee</author><pubDate>Thu, 14 Jan 2010 11:25:00 +0800</pubDate><description><![CDATA[一、问题的提出Java的一个重要优点就是通过垃圾收集器(Garbage Collection，GC)自动管理内存的回收，程序员不需要通过调用函数来释放内存。因此，很多程序员认为Java不存在内存泄漏问题，或者认为即使有内存泄漏也不是程序的责任，而是GC或JVM的问题。其实，这种想法是不正确的，因为Java也存在内存泄露，但它的表现与C++不同。随着越来越多的服务器程序采用Java技术，例如]]></description><category></category></item><item><title><![CDATA[bat.文件的命令语法 ]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/5189057</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/5189057</guid><author>jackmtlee</author><pubDate>Thu, 14 Jan 2010 11:18:00 +0800</pubDate><description><![CDATA[常用命令  echo、@、call、pause、rem(小技巧：用::代替rem)是批处理文件最常用的几个命令，我们就从他们开始学起。  ==== 注 ===========  首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符:  CR(0D) 命令行结束符  Escape(1B) ANSI转义字符引导]]></description><category></category></item><item><title><![CDATA[oracle sqlplus 常用命令大全]]></title><link>https://blog.youkuaiyun.com/jackmtlee/article/details/5189033</link><guid>https://blog.youkuaiyun.com/jackmtlee/article/details/5189033</guid><author>jackmtlee</author><pubDate>Thu, 14 Jan 2010 11:13:00 +0800</pubDate><description><![CDATA[show和set命令是两条用于维护SQL*Plus系统变量的命令 SQL> show all --查看所有68个系统变量值 SQL> show user --显示当前连接用户 SQL> show error　　 --显示错误 SQL> set heading off --禁止输出列标题，默认值为ON SQL> set feedback off --禁止显示最后一行的计数反馈信息，默认值为"对6个或]]></description><category></category></item></channel></rss>