<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[·鱼·骨头]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fish87768077</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fish87768077]]></copyright><item><title><![CDATA[行转列]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83973050</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83973050</guid><author>fish87768077</author><pubDate>Tue, 19 Jul 2011 13:42:43 +0800</pubDate><description><![CDATA[[code=&quot;sql&quot;]
select customid,   
    count(case status when 0 then status else null end) as status-0,   
    count(case status when 1 then status else null end) as status-1,   
    count(case stat...]]></description><category></category></item><item><title><![CDATA[ServletContextListener 介绍]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83972919</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83972919</guid><author>fish87768077</author><pubDate>Tue, 19 Jul 2011 10:30:02 +0800</pubDate><description><![CDATA[在Servlet API中有一个ServletContextListener接口，它能够监听ServletContext对象的生命周期，实际上就是监听Web应用的生命周期。

当Servlet容器启动或终止Web应用时，会触发ServletContextEvent事件，该事件由 ServletContextListener 来处理。在 ServletContextListener 接口中定义了...]]></description><category></category></item><item><title><![CDATA[Struts控制流程]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83971494</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83971494</guid><author>fish87768077</author><pubDate>Fri, 15 Jul 2011 15:02:05 +0800</pubDate><description><![CDATA[一、ActionServlet的初始化

ActionServlet作为Struts组件的前端控制器，由于web.xml的相应配置：

0

在应用一加载时即会被实例化并调用其init方法，init方法所做的主要工作有二：

1. 加载struts配置文件，并创建用于封装配置信息的ModuleConfig对象  
2. 加载资源文件，并创建用于封装资源文件的MessageReso...]]></description><category></category></item><item><title><![CDATA[不用第三个变量,交换两个数]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83971489</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83971489</guid><author>fish87768077</author><pubDate>Fri, 15 Jul 2011 14:57:33 +0800</pubDate><description><![CDATA[[code=&quot;java&quot;]
public void swap(int a, int b) {
    a = a + b;
    b = a - b;
    a = a - b;

    System.out.println(&quot;a=&quot;+a);
    System.out.println(&quot;b=&quot;+b);
}
[/code]]]></description><category></category></item><item><title><![CDATA[递归返回N的二进制中1的个数]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83945375</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83945375</guid><author>fish87768077</author><pubDate>Tue, 14 Jun 2011 10:34:09 +0800</pubDate><description><![CDATA[方法1:
[code=&quot;java&quot;]
public static int getBinary(int num) {
		if (0==num) {
			return 0;
		} else {
			if (0==num%2) {
				return getBinary(num/2);
			} else {
				return getBinary(num/2)+1;
	...]]></description><category></category></item><item><title><![CDATA[一些常用的JS方法]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83886100</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83886100</guid><author>fish87768077</author><pubDate>Thu, 07 Apr 2011 09:58:59 +0800</pubDate><description><![CDATA[出来工作几年了, 一直没养成备份知识的习惯, 要用了直接百度. 留个备份,免得麻烦!

获取地址的参数
[code=&quot;javascript&quot;]
function search(param) {
		var re=new RegExp(&quot;[&amp;,?]&quot;+param+&quot;=[^\\&amp;]*&quot;,&quot;i&quot;);
		var str=re.exec(document.location.search);
...]]></description><category></category></item><item><title><![CDATA[乐观锁和悲观锁]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83849178</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83849178</guid><author>fish87768077</author><pubDate>Thu, 03 Mar 2011 15:38:48 +0800</pubDate><description><![CDATA[所谓悲观锁就是基于数据库机制实现的。比如在在使用select子句的时候加上for update，那么直到改子句的事务结束为止，任何应用都无法修改select出来的记录。
 
所谓乐观锁是基于应用的版本机制来实现的。一般会在表里面设计一个版本字段v（我一般会把这个字段设为timestamp）。一般的update场景是这样： 
1 select a, v from tb where id=1; ...]]></description><category></category></item><item><title><![CDATA[ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext的区别]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83847619</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83847619</guid><author>fish87768077</author><pubDate>Tue, 01 Mar 2011 14:09:33 +0800</pubDate><description><![CDATA[classpath: 前缀是不需要的， 默认就是指项目的classpath路径下面； 
如果要使用绝对路径，需要加上 file: 前缀表示这是绝对路径； 

对于FileSystemXmlApplicationContext: 
默认表示的是两种： 
1，没有盘符的是 项目工作路径， 即项目的根目录； 
2，有盘符表示的是 文件绝对路径。 
如果要使用classpath路径， 需要前...]]></description><category></category></item><item><title><![CDATA[10进制字符串的转换]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83843899</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83843899</guid><author>fish87768077</author><pubDate>Wed, 23 Feb 2011 11:00:41 +0800</pubDate><description><![CDATA[最近面试的时候老碰到10进制字符串的转换的问题，例如：&quot;012345&quot;--&gt;&quot;012346&quot;，&quot;999999&quot;--&gt;&quot;000000&quot;。
[code=&quot;java&quot;]
public class Test {
	public static void main(String[] args) {
		System.out.println(convert(&quot;012345&quot;));
]]></description><category></category></item><item><title><![CDATA[数组法求30的阶乘]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83843860</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83843860</guid><author>fish87768077</author><pubDate>Wed, 23 Feb 2011 10:25:55 +0800</pubDate><description><![CDATA[[code=&quot;java&quot;]

public class Test {
	public static void main(String[] args) {
		int[] sum = new int[50]; // 用来保存值
		sum[1] = 1; //个位数为1(初始值)
		int w = 1; // 位数
		// 求30的阶乘
		for (int i = 1; i ...]]></description><category></category></item><item><title><![CDATA[利用QQ去获得来访者的IP和省市]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83843291</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83843291</guid><author>fish87768077</author><pubDate>Tue, 22 Feb 2011 11:45:51 +0800</pubDate><description><![CDATA[[code=&quot;java&quot;]


	
		获取ip地址
		
		
		  
	      function test(){
	      	// ip地址
            alert(IPData[0]);
	      	// 省份
            alert(IPData[2]);
            // 市区
            aler...]]></description><category></category></item><item><title><![CDATA[编写一个截取字符串的函数，输入为一个字符串和字节数，输出为按字节截取的字符串...]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83843259</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83843259</guid><author>fish87768077</author><pubDate>Tue, 22 Feb 2011 11:13:55 +0800</pubDate><description><![CDATA[最近挺火的一道面试题。
[code=&quot;java&quot;]
public class Test {
	public static void main(String[] args) {
		String str = &quot;汉字ABD不是ABC&quot;;
		System.out.println(splitStr(str, 8));
	}
	// 判断是不是汉字
	public static boole...]]></description><category></category></item><item><title><![CDATA[如何写一个不需要main方法的java应用程序？]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83843214</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83843214</guid><author>fish87768077</author><pubDate>Tue, 22 Feb 2011 10:40:35 +0800</pubDate><description><![CDATA[可以使用静态代码块来实现一个可以执行但并没有main方法的Java应用程序。如下面的代码是所示：
[code=&quot;java&quot;]
class MainMethodNot {
    static {
        System.out.println(&quot;This java program have run without the run method&quot;);
        System.e...]]></description><category></category></item><item><title><![CDATA[如何得到Java应用程序的可用内存？]]></title><link>https://blog.youkuaiyun.com/fish87768077/article/details/83843212</link><guid>https://blog.youkuaiyun.com/fish87768077/article/details/83843212</guid><author>fish87768077</author><pubDate>Tue, 22 Feb 2011 10:38:16 +0800</pubDate><description><![CDATA[[code=&quot;java&quot;]
public class MemoryExp {
    public static void main(String[] args) {
        System.out.println(&quot;Total Memory&quot;+Runtime.getRuntime().totalMemory()); 
        System.out.println(&quot;Free...]]></description><category></category></item></channel></rss>