<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_感受程序人生的喜怒哀乐</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/23689/rss</id><updated>2011-05-19T02:06:14Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/23689/rss"/><entry><id>http://www.cnblogs.com/yayagepei/articles/2035952.html</id><title type="text">Java虚拟机规范、深入Java虚拟机读书笔记：JVM运行时数据区分析</title><summary type="text">jvm运行时内存数据区介绍。</summary><published>2011-05-11T15:00:00Z</published><updated>2011-05-11T15:00:00Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yayagepei/articles/2035952.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/articles/2035952.html"/><content type="html">&lt;p&gt;基础知识：在java虚拟机中有2种数据类型：基本类型和引用类型。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;基本类型包括：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;(1) 数值类型(byte,short,char,int,long,float,double) ,注：在jvm中boolean类型用int来表示，boolean数组用byte数组来表示。（在栈中byte,short,char都被转换成int型来处理，后面会提到。由此我想到一个java面试题：定义一个包含switch&amp;#8230;&amp;#8230;case&amp;#8230;&amp;#8230;语句的函数，问传入什么样的参数是合法的。java的switch case语句只支持int和能转换成int的类型，所以byte、short、char、int都可以传入switch&amp;#8230;&amp;#8230;case&amp;#8230;&amp;#8230;函数。在C#中switch&amp;#8230;&amp;#8230;case&amp;#8230;&amp;#8230;还支持字符串，曾经有段时间对这个犯浑。跑题了，呵呵）。&lt;/p&gt;&lt;p&gt;(2) 还有一个基本类型是returnAddress。这个类型被jvm用在实现finally时使用，开发人员本身不能使用该类型。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;引用类型（Referenc）:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;引用类型包括三种：类类型、接口类型、数组类型（注意：&lt;span style="color: #ff0000;"&gt;数组是对象，基本数据类型数组也是对象&lt;/span&gt;，如int[]）&lt;/p&gt;&lt;div&gt;&lt;br /&gt; &lt;p&gt;一个JVM实例运行时数据区分成以下几部分：&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/yayagepei/jvm.png" border="0" /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;堆(Heap)&lt;/strong&gt;：在JVM中，程序创建的所有对象和数组都存放在堆上，这是所有线程都共享的，所以对于堆上数据的访问，在必要的时候就要考虑多线程的问题了。在物理上堆没有必要是连续的地址空间。堆的大小一般可以通过-Xms -Xmx 参数来设定。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;方法区&lt;/strong&gt;:个人认为叫类数据区或许会更形象些。JVM加载的所有class都存放在方法区中，这里既包括类得结构信息还有类变量（即类中的静态变量，注意，常量--final static修饰的变量，一般在编译时就进行优化了），常量池等。方法区也是所有线程共享的。在物理上，方法区也没必要是连续的地址空间。方法区的大小可以通过-XX:PermSize -XX:maxPermSize 来设置。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;strong&gt;栈&lt;/strong&gt;： 每启动一个线程，jvm都会为它非配一个私有的栈，栈由栈帧组成。每执行一个方法，都会往栈中压入一个帧，它里面存放了参数、局部变量、中间运算结果等。一个帧由局部变量区、操作数栈和帧数据区组成。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1) 局部变量区：局部变量区被组织成一个以字长为单位，从0开始的数组。int,float,reference,returnAddress占用一个字，long,double占用连续的2项。byte,char,short在存入帧前都被转换成int，当他们被重新放回堆或者方法区时，会转换回原来的类型。在访问long、double时，只需给出第一项的下标。对于实例方法（相对应静态方法而言），局部变量区第一值是指向this的 reference。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (2) 操作数栈： 顾名思义存放操作数的地方，它也是以数组的形式存在，只是以弹栈、压栈来访问。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (3) 帧数据区：除了局部变量和操作数栈外，栈帧还需要一些数据来支持常量池解析，正常方法返回以及异常派发机制。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;本地方法栈&lt;/strong&gt;：调用native方法时存放临时数据的区域。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;程序寄存器&lt;/strong&gt;：当指向java方法是，程序寄存器里的内容总是下一条将被执行的指令的&amp;#8220;地址&amp;#8221;，这个&amp;#8220;地址&amp;#8221;可以使一个本地指针，也可以是在方法字节码中的相对该方法起始指令的偏移量。如果正在执行native方法，则寄存器里的值是undefined。&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yayagepei/aggbug/2035952.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yayagepei/articles/2035952.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yayagepei/articles/2033310.html</id><title type="text">Java虚拟机规范读书笔记：JVM加载Class过程分析</title><summary type="text">java虚拟机加载类过程分析</summary><published>2011-04-30T02:42:00Z</published><updated>2011-04-30T02:42:00Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yayagepei/articles/2033310.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/articles/2033310.html"/><content type="html">&lt;div&gt;  &lt;p&gt;&lt;span style="font-family: 宋体;"&gt;我们知道，&lt;/span&gt;JVM&lt;span style="font-family: 宋体;"&gt;是通过调用一个&lt;/span&gt;Class&lt;span style="font-family: 宋体;"&gt;类得&lt;/span&gt;main&lt;span style="font-family: 宋体;"&gt;方法来进入一个类得，这个&lt;/span&gt;main&lt;span style="font-family: 宋体;"&gt;方法必须是&lt;/span&gt;public&lt;span style="font-family: 宋体;"&gt;、&lt;/span&gt;static&lt;span style="font-family: 宋体;"&gt;、&lt;/span&gt;void&lt;span style="font-family: 宋体;"&gt;修饰的。但是在这之前，&lt;/span&gt;JVM&lt;span style="font-family: 宋体;"&gt;还需要做一系列的准备工作。在这节里，我们分析一个&lt;/span&gt;Java&lt;span style="font-family: 宋体;"&gt;类是如何被&lt;/span&gt;JVM&lt;span style="font-family: 宋体;"&gt;加载运行的。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;JVM&lt;span style="font-family: 宋体;"&gt;要调用一个类里的方法需要经过以下几个步骤：类装载、链接、初始化。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;1 &lt;span style="font-family: 宋体;"&gt;类装载：&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;JVM&lt;span style="font-family: 宋体;"&gt;通过类得全限定名（包命&lt;/span&gt;+&lt;span style="font-family: 宋体;"&gt;类名）找到类的&lt;/span&gt;.class&lt;span style="font-family: 宋体;"&gt;文件。然后把这个&lt;/span&gt;.class&lt;span style="font-family: 宋体;"&gt;文件加载进来，这个过程需要通过&lt;/span&gt;ClassLoader&lt;span style="font-family: 宋体;"&gt;来实现。&lt;/span&gt;JVM&lt;span style="font-family: 宋体;"&gt;的类加载系统结构如下&lt;/span&gt;(&lt;span style="font-family: 宋体;"&gt;图&lt;/span&gt;:1-1)&lt;span style="font-family: 宋体;"&gt;：&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-color: #ff0000;" alt="" src="http://images.cnblogs.com/cnblogs_com/yayagepei/classLoader.jpg" width="537" height="338" /&gt;&lt;/p&gt;  &lt;p&gt;Boostrap ClassLoader:&lt;span style="font-family: 宋体;"&gt;启动类加载器，它用来加载一些&lt;/span&gt;jdk&lt;span style="font-family: 宋体;"&gt;的核心类，主要负责&lt;/span&gt;&lt;span&gt;JAVA_HOME&lt;br /&gt; /jre/lib&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;下的类的加载，可以通过参数&lt;/span&gt;-Xbootclasspath&lt;span style="font-family: 宋体;"&gt;制定需要装入的&lt;/span&gt;jar&lt;span style="font-family: 宋体;"&gt;包。&lt;/span&gt; &lt;span style="font-family: 宋体;"&gt;它本身不是用&lt;/span&gt;java&lt;span style="font-family: 宋体;"&gt;实现的，所以肯定不是&lt;/span&gt;ClassLoader&lt;span style="font-family: 宋体;"&gt;的子类了。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Extendsion ClassLoader:&lt;span style="font-family: 宋体;"&gt;扩展类加载器，用来加载一些扩展类，主要负责&lt;/span&gt;&lt;span&gt;JAVA_HOME&lt;br /&gt; /jre/lib/ext&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;下类的加载。此类是&lt;/span&gt;ClassLoader&lt;span style="font-family: 宋体;"&gt;的一个子类。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;System ClassLoader&lt;span style="font-family: 宋体;"&gt;：系统类加载器&lt;/span&gt; &lt;span style="font-family: 宋体;"&gt;也叫&lt;/span&gt;&lt;span&gt;Application ClassLoader&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;。是离我们最近的&lt;/span&gt;ClassLoader&lt;span style="font-family: 宋体;"&gt;了，它负责加载&lt;/span&gt;CLASSPATH&lt;span style="font-family: 宋体;"&gt;里指定的那些类。我们要实现自己的&lt;/span&gt;ClassLoader&lt;span style="font-family: 宋体;"&gt;也是继承自该类。&lt;/span&gt;SystemClassLoader&lt;span style="font-family: 宋体;"&gt;的父类是&lt;/span&gt;Extension ClassLoader&lt;span style="font-family: 宋体;"&gt;。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: 宋体;"&gt;类的加载过程分两步：第一步：从下往上查找类是否已经加载，如果找到，直接返回已加载的类，如果没找着接着往上找。第二步：如果到&lt;/span&gt;Bootstrap ClassLoader&lt;span style="font-family: 宋体;"&gt;还没找到，这时&lt;/span&gt;Bootstrap ClassLoader&lt;span style="font-family: 宋体;"&gt;会尝试加载该类，如果成功加载，直接返回加载后的类，如果无法加载，交由&lt;/span&gt;Extension ClassLoader&lt;span style="font-family: 宋体;"&gt;去加载，依次类推。如果最后仍然没找到，程序会抛出&lt;/span&gt;ClassNotFoundException.&lt;/p&gt;  &lt;p&gt;2 &lt;span style="font-family: 宋体;"&gt;链接：&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: 宋体;"&gt;当一个&lt;/span&gt;class&lt;span style="font-family: 宋体;"&gt;文件被成功加载后，接下来就要做链接了。链接就是要把二进制的&lt;/span&gt;.class&lt;span style="font-family: 宋体;"&gt;文件转换成可以被&lt;/span&gt;jvm&lt;span style="font-family: 宋体;"&gt;执行的&lt;/span&gt;Class&lt;span style="font-family: 宋体;"&gt;对象的过程。这个过程又分为：检验、准备、解析。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: 宋体;"&gt;检验：就是检查&lt;/span&gt;.class&lt;span style="font-family: 宋体;"&gt;的结构是否正确，是否符合&lt;/span&gt;Java&lt;span style="font-family: 宋体;"&gt;虚拟机的语义要求。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: 宋体;"&gt;准备：包括创建类或接口的静态域以及把这些静态域初始化为标准的缺省值。注意此处的初始化不同于后面的的初始化步骤。如有一个&lt;/span&gt;static&lt;span style="font-family: 宋体;"&gt;的&lt;/span&gt;String &lt;span style="font-family: 宋体;"&gt;变量&lt;/span&gt;str&lt;span style="font-family: 宋体;"&gt;，我们知道，在&lt;/span&gt;JAVA&lt;span style="font-family: 宋体;"&gt;中&lt;/span&gt;String&lt;span style="font-family: 宋体;"&gt;变量默认的初始值是&lt;/span&gt;null&lt;span style="font-family: 宋体;"&gt;，此处的初始化就是将&lt;/span&gt;null&lt;span style="font-family: 宋体;"&gt;赋值给&lt;/span&gt;str&lt;span style="font-family: 宋体;"&gt;。&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-family: 宋体;"&gt;解析：将类中对另一个类或接口的符合引号转化成全限定名引用，将对他们的方法、字段的符合引用转化成直接引用。&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;3 &lt;span style="font-family: 宋体;"&gt;初始化：执行类或接口中的静态初始化函数（块），将静态变量初始化。这就是我们平时理解的对静态变量赋值。&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;span style="font-family: 宋体;"&gt;至此，一个类才加载完成，可以调用类的类变量了（静态变量）和对类进行实例化了。&lt;/span&gt;&lt;/p&gt;  &lt;p align="left"&gt;以上结合java虚拟机规范及网络相关资料整理而成。&lt;/p&gt;  &lt;/div&gt;&lt;img src="http://www.cnblogs.com/yayagepei/aggbug/2033310.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yayagepei/articles/2033310.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yayagepei/articles/1960237.html</id><title type="text">推荐一颗基于jquery的js树--ztree</title><summary type="text">功能强大的、基于jquery的js树、ztree</summary><published>2011-02-21T14:28:00Z</published><updated>2011-02-21T14:28:00Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yayagepei/articles/1960237.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/articles/1960237.html"/><content type="html">网址：http://www.baby666.cn/hunter/zTree.html&#xD;
&lt;div&gt; 兼容 IE、FireFox、Chrome 等浏览器&#xD;
&lt;div id="wikicontent"&gt;&#xD;
&lt;li&gt;&lt;br /&gt;&#xD;
&lt;/li&gt;&#xD;
&lt;li&gt; 在一个页面内可同时生成多个 Tree 实例&lt;/li&gt;&#xD;
&lt;li&gt; 支持 JSON 数据&lt;/li&gt;&#xD;
&lt;li&gt; 支持一次性静态生成 和 Ajax 异步加载 两种方式&lt;/li&gt;&#xD;
&lt;li&gt; 支持多种事件响应及反馈&lt;/li&gt;&#xD;
&lt;li&gt; 支持 Tree 的节点移动、编辑、删除&lt;/li&gt;&#xD;
&lt;li&gt; 支持任意更换皮肤 / 个性化图标（依靠css）&lt;/li&gt;&#xD;
&lt;li&gt; 支持极其灵活的 checkbox 或 radio 选择功能&lt;/li&gt;&#xD;
&lt;li&gt; 简单的参数配置实现 灵活多变的功能&lt;/li&gt;&#xD;
&lt;/div&gt;&lt;/div&gt;这里放一个&lt;a href="http://files.cnblogs.com/yayagepei/JQueryzTreev2.4_0210.zip"&gt;ztreev2.4&lt;/a&gt;下载&lt;img src="http://www.cnblogs.com/yayagepei/aggbug/1960237.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yayagepei/articles/1960237.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yayagepei/articles/1958541.html</id><title type="text">[转]网站架构收集</title><summary type="text">网站架构相关文章</summary><published>2011-02-19T07:50:00Z</published><updated>2011-02-19T07:50:00Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yayagepei/articles/1958541.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/articles/1958541.html"/><content type="html">&lt;p&gt;原文：http://hiadmin.com/?p=124&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;p&gt;DBA notes上果然好东西很多&lt;br /&gt; 许多大型(只是访问量,而不是公司规模)的web 2.0的网站架构&lt;br /&gt; 上面都有&lt;br /&gt; 现在收集整理一下有关网站架构的资料,其中许多来自DBA notes&lt;br /&gt; 这种资料.向来可遇不可求啊&lt;/p&gt; &lt;p&gt;WikiPedia 技术架构学习分享&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/opensource/wikipedia_arch.html&lt;/p&gt; &lt;p&gt;YouTube 的架构扩展&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/opensource/youtube_web_arch.html&lt;/p&gt; &lt;p&gt;Internet Archive 的海量存储浅析&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/database/internet_archive_storage.html&lt;/p&gt; &lt;p&gt;LinkedIn 架构笔记&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/linkedin.html&lt;/p&gt; &lt;p&gt;Tailrank 网站架构&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/review/tailrank_arch.html&lt;/p&gt; &lt;p&gt;Twitter 的架构扩展: 100 倍性能提升&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/twitter_arch.html&lt;/p&gt; &lt;p&gt;财帮子（caibangzi.com）网站架构&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/caibangzi_web_arch.html&lt;/p&gt; &lt;p&gt;Yupoo! 的网站技术架构&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/yupoo_arch.html&lt;/p&gt; &lt;p&gt;37Signals 架构&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/37signals_arch.html&lt;/p&gt; &lt;p&gt;Flickr 的访问统计实现以及其他&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/flickr_stats_and_dathan.html&lt;/p&gt; &lt;p&gt;PlentyOfFish 网站架构学习&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/plentyoffish_arch.html&lt;/p&gt; &lt;p&gt;Yahoo！社区架构&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/yahoo_arch.html&lt;/p&gt; &lt;p&gt;有关 Alexa 与 AOL 部署集群文件系统&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/alexa_ibrix_san_file_system.html&lt;/p&gt; &lt;p&gt;eBay 的存储一瞥&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/ebay_storage.html&lt;/p&gt; &lt;p&gt;eBay 的数据量&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/database/ebay_storage.html&lt;/p&gt; &lt;p&gt;eBay 的数据库分布扩展架构&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/database/ebay_database_scale_out.html&lt;/p&gt; &lt;p&gt;eBay 的数据层扩展经验&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/ebay_db_scale_out.html&lt;/p&gt; &lt;p&gt;eBay 的应用服务器规模&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/web/ebay_application_server.html&lt;/p&gt; &lt;p&gt;性能扩展问题要趁早&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/scaling_an_early_stage_startup.html&lt;/p&gt; &lt;p&gt;Scaling an early stage startup&lt;/p&gt; &lt;p&gt;http://www.scribd.com/doc/429986/Scaling-an-early-stage-startup&lt;/p&gt; &lt;p&gt;Facebook 的 PHP 性能与扩展性&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/facebook_php.html&lt;/p&gt; &lt;p&gt;Skype 用 PostgreSQL 支撑海量用户&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/skype_postgresql.html&lt;/p&gt; &lt;p&gt;闲谈 Web 图片服务器&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/web/web_image_server.html&lt;/p&gt; &lt;p&gt;说说北京奥运购票系统瘫痪这事儿&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/review/beijing_olympic_ticketes_system_crash.html&lt;/p&gt; &lt;p&gt;Architectures You&amp;#8217;ve Always Wondered About&lt;/p&gt; &lt;p&gt;http://qcon.infoq.com/london-2008/tracks/show_track.jsp?trackOID=82&lt;/p&gt; &lt;p&gt;eBay&amp;#8217;s Architectural Principles&lt;/p&gt; &lt;p&gt;http://www.eos1.dk/qcon-london-2008/slides/RandyShoup_eBaysArchitecturalPrinciples.pdf&lt;/p&gt; &lt;p&gt;Building a large scale SaaS app&lt;/p&gt; &lt;p&gt;http://www.eos1.dk/qcon-london-2008/slides/Dan_Hanley_Building_a_large_scale_SaaS_app.pdf&lt;/p&gt; &lt;p&gt;Scaling an early stage startup&lt;/p&gt; &lt;p&gt;http://www.scribd.com/doc/429986/Scaling-an-early-stage-startup&lt;/p&gt; &lt;p&gt;互联星空播客架构(原文在张宴blog上,但是后来文章撤下,很可惜.此为转载)&lt;/p&gt; &lt;p&gt;http://www.flashmov.com/blog_1632.html&lt;/p&gt; &lt;p&gt;QQ游戏百万人同时在线服务器架构实现&lt;/p&gt; &lt;p&gt;http://www.libing.net.cn/read.php?41&lt;/p&gt; &lt;p&gt;大型Web2.0站点构建技术初探&lt;/p&gt; &lt;p&gt;http://blog.csdn.net/heiyeshuwu/archive/2007/11/18/1890793.aspx&lt;/p&gt; &lt;p&gt;Web站点数据库分布存储浅谈&lt;/p&gt; &lt;p&gt;http://blog.csdn.net/heiyeshuwu/archive/2007/11/18/1891639.aspx&lt;/p&gt; &lt;p&gt;QQ的架构讨论&lt;/p&gt; &lt;p&gt;http://groups.google.com/group/dev4server/browse_thread/thread/0d72668d11c4886b/a6d202489cabf285#a6d202489cabf285&lt;/p&gt; &lt;p&gt;Notes from Scaling MySQL &amp;#8211; Up or Out&lt;/p&gt; &lt;p&gt;http://venublog.com/2008/04/16/notes-from-scaling-mysql-up-or-out/&lt;/p&gt; &lt;p&gt;Yapache-Yahoo! Apache 的秘密&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/web/yapache_yahoo_apache.html&lt;/p&gt; &lt;p&gt;LinkedIn 架构与开发过程&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/linkedin_soa.html&lt;/p&gt; &lt;p&gt;Scalability Best Practices: Lessons from eBay&lt;/p&gt; &lt;p&gt;http://www.infoq.com/articles/ebay-scalability-best-practices&lt;/p&gt; &lt;p&gt;看 Twitter 人谈架构扩展问题&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/twitter_interview.html&lt;/p&gt; &lt;p&gt;Facebook 海量数据处理&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/facebook_photos_arch.html&lt;/p&gt; &lt;p&gt;web 2.0海量小文件cache集群探讨&lt;/p&gt; &lt;p&gt;http://www.ourlinux.net/operation-tips/web20-small-file-cache-cluster/&lt;/p&gt; &lt;p&gt;2008-10-09&lt;br /&gt; Cocolog 从 PostgreSQL 迁移到 MySQL 的经验&lt;/p&gt; &lt;p&gt;http://www.dbanotes.net/arch/cocolog_postgresql_mysql.html&lt;/p&gt; &lt;p&gt;疯狂代码：大型网站架构系列（未完待续）收藏&lt;/p&gt; &lt;p&gt;http://blog.csdn.net/heiyeshuwu/archive/2008/10/01/3006964.aspx&lt;/p&gt; &lt;p&gt;Amazon Architecture&lt;/p&gt; &lt;p&gt;http://highscalability.com/amazon-architecture&lt;/p&gt; &lt;p&gt;Scaling Twitter&lt;/p&gt; &lt;p&gt;http://highscalability.com/scaling-twitter-making-twitter-10000-percent-faster&lt;/p&gt; &lt;p&gt;37signals Architecture&lt;/p&gt; &lt;p&gt;http://highscalability.com/37signals-architecture&lt;/p&gt; &lt;p&gt;Digg Architecture&lt;/p&gt; &lt;p&gt;http://highscalability.com/digg-architecture&lt;/p&gt; &lt;p&gt;Flickr Architecture&lt;/p&gt; &lt;p&gt;http://highscalability.com/flickr-architecture&lt;/p&gt; &lt;p&gt;YouTube Architecture&lt;/p&gt; &lt;p&gt;http://highscalability.com/youtube-architecture&lt;/p&gt; &lt;p&gt;Google Architecture&lt;/p&gt; &lt;p&gt;http://highscalability.com/google-architecture&lt;/p&gt; &lt;p&gt;LiveJournal&amp;#8217;s Backend&lt;/p&gt; &lt;p&gt;http://www.danga.com/words/2005_mysqlcon/mysql-slides-2005.pdf&lt;/p&gt; &lt;p&gt;LiveJournal Architecture&lt;/p&gt; &lt;p&gt;http://highscalability.com/livejournal-architecture&lt;/p&gt; &lt;p&gt;eBay Architecture&lt;/p&gt; &lt;p&gt;http://highscalability.com/ebay-architecture&lt;/p&gt; &lt;p&gt;LinkedIn Architecture&lt;/p&gt; &lt;p&gt;http://highscalability.com/linkedin-architecture-0&lt;/p&gt;&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yayagepei/aggbug/1958541.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yayagepei/articles/1958541.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yayagepei/articles/1914995.html</id><title type="text">linux下安装mysql</title><summary type="text">linux下安装mysql、</summary><published>2010-12-23T08:19:00Z</published><updated>2010-12-23T08:19:00Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yayagepei/articles/1914995.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/articles/1914995.html"/><content type="html">&lt;p&gt;【声明】以下大部分内容来自网络，结合本人实际安装修改而成，如果原作者认为有侵权行为，请联系本人删除。由于具体环境不一样，不能保证在每一个环境下都能正确执行。&lt;/p&gt;&lt;p&gt;linux：redhat&lt;/p&gt;&lt;p&gt;mysql：5.1&lt;/p&gt;&lt;p&gt;安装方式：源代码编译安装&lt;/p&gt;&lt;p&gt;1 下载mysql-5.1.54.tar.gz&lt;/p&gt;&lt;p&gt;2 tar xzvf&amp;nbsp;mysql-5.1.54.tar.gz&lt;/p&gt;&lt;p&gt;3 ./configure --prefix=/usr/local/mysql &lt;br /&gt;&lt;/p&gt;&lt;p&gt;4 make;&lt;/p&gt;&lt;p&gt;5 make&amp;nbsp; install;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;6 make clean;&lt;/p&gt;&lt;p&gt;7 修改 /etc/my.cnf 文件&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;[mysqld]&lt;br /&gt;datadir=/usr/local/mysql/data&lt;br /&gt;socket=/usr/local/mysql/mysql.sock&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="color: #ff0000;"&gt;default-character-set=utf8&lt;br /&gt;init_connect='SET NAMES utf8'&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;# Default to using old password format for compatibility with mysql 3.x&lt;br /&gt;# clients (those using the mysqlclient10 compatibility package).&lt;br /&gt;old_passwords=1&lt;br /&gt;[mysql]&lt;br /&gt;socket=/usr/local/mysql/mysql.sock&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="color: #ff0000;"&gt;default-character-set=utf8&lt;/span&gt; &lt;/div&gt;[mysql.server]&lt;br /&gt;user=mysql&lt;br /&gt;basedir=/usr/local/mysql&lt;br /&gt;&lt;br /&gt;[mysqld_safe]&lt;br /&gt;err-log=/var/log/mysqld.log&lt;br /&gt;pid-file=/var/run/mysqld/mysqld.pid&lt;p&gt;&lt;/p&gt;&lt;p&gt;注意：需要查看一下/var/run目录下有没有mysqld目录，没有的话需要创建一个，并授权给mysql用户&lt;/p&gt;&lt;p&gt;#cd /var/run&lt;br /&gt;&lt;/p&gt;&lt;p&gt;#mkdir mysqld&lt;/p&gt;&lt;p&gt;#chown -R mysql:mysql mysqld &lt;br /&gt;&lt;/p&gt;&lt;p&gt;8 安装初始化数据库&lt;/p&gt;&lt;p&gt;进入mysql的安装目录&lt;/p&gt;&lt;p&gt;#cd /usr/local/mysql/bin&lt;/p&gt;&lt;p&gt;执行如下命令： &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/loc&lt;br /&gt;al/mysql/data --user=mysql&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;9 默认root用户密码为空，不能远程链接，创建一个新用户吧： &lt;br /&gt;&lt;/p&gt;&lt;p&gt;在mysql安装目录的bin目录下&lt;/p&gt;&lt;p&gt;先启动mysql&lt;/p&gt;&lt;p&gt;#./mysql_safe -user=mysql &amp;amp;&lt;/p&gt;&lt;p&gt;连接上mysql &lt;br /&gt;&lt;/p&gt;&lt;p&gt;#./mysql -u root -p&lt;/p&gt;&lt;p&gt;# (输入密码)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;修改远程连接密码&lt;br /&gt;set password for 'userName'=PASSWORD('newPass');&lt;/div&gt;&amp;nbsp;&lt;div&gt;修改本机连接密码&lt;br /&gt;set password for 'userName'@'localhost'=PASSWORD('newPass');&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;创建一个新用户: &lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;grant select on 数据库.* to &amp;#8220;用户名&amp;#8221;@&amp;#8220;登录主机&amp;#8221; identified by "密码"；&lt;/div&gt;&amp;nbsp;例如：&lt;div&gt;GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY '123456'; &lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;10&amp;nbsp; 字符集：中文乱码的问题，在第7步修改/etc/my.cnf文件 红色标注即为修改字符集问题；&lt;br /&gt;&lt;/p&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yayagepei/aggbug/1914995.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yayagepei/articles/1914995.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yayagepei/articles/1884462.html</id><title type="text">在centos 5.5下安装nginx</title><summary type="text">在centos 5.5下安装nginx</summary><published>2010-11-22T08:09:00Z</published><updated>2010-11-22T08:09:00Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yayagepei/articles/1884462.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/articles/1884462.html"/><content type="html">&lt;p&gt;按理来说，装个nginx是很简单的，诸如用:yum install nginx,这个确实没什么问题，可是我想通过编译源码的方式安装，而且还要开启一些功能，诸如pcre zlib&amp;nbsp; openssl。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;开始把pcre（www.pcre.org），zlib(www.zlib.org，官网好像访问不了了？关门了？通过这个可以下载http://sourceforge.net/projects/libpng/files/zlib/),&lt;/p&gt;&lt;p&gt;openssl(www.openssl.org) 都下载，编译安装好了，然后开始编译安装nginx-0.8.53&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;./configure --prefix=/usr/local/nginx --user=www --group=www&amp;nbsp; --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module&amp;nbsp; --with-pcre=/usr/local/pcre --with-zlib=/usr/local/zlib --with-openssl=/usr/local/openssl --with-http_realip_module&lt;/p&gt;&lt;p&gt;这步没什么问题，接下来make，问题出来了：&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #c71585;"&gt;cd /usr/local/pcre \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #c71585;"&gt;&amp;amp;&amp;amp; if [ -f Makefile ]; then make distclean; fi \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #c71585;"&gt;&amp;amp;&amp;amp; CC="gcc" CFLAGS="-O2 -fomit-frame-pointer -pipe " \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #c71585;"&gt;./configure --disable-shared&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #c71585;"&gt;/bin/sh: ./configure: No such file or directory&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #c71585;"&gt;make[1]: *** [/usr/local/pcre/Makefile] Error 127&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #c71585;"&gt;make[1]: Leaving directory `/software/nginx-0.8.53'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #c71585;"&gt;make: *** [build] Error 2&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;怎么捣鼓也没搞定，无意间 ./configure --help&lt;/p&gt;&lt;p&gt;看一下帮助说明：&lt;/p&gt;&lt;p&gt;&lt;span style="color: #c71585;"&gt;--with-pcre=DIR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set path to PCRE library sources&lt;/span&gt;&lt;/p&gt;&lt;p&gt;注意：&lt;span style="color: #c71585;"&gt;set path to PCRE library sources&lt;/span&gt;是让你设置到源码目录，而不是编译安装后的目录，顿时恍然大悟。&lt;/p&gt;&lt;p&gt;迅速把上面几个依赖包的路径都改成源码路径：&lt;/p&gt;&lt;p&gt;./configure --prefix=/usr/local/nginx --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-pcre=/software/pcre-8.10 --with-zlib=/software/zlib-1.2.5 --with-openssl=/software/openssl-1.0.0a --with-http_realip_module&lt;/p&gt;&lt;p&gt;重新执行，OK。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yayagepei/aggbug/1884462.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yayagepei/articles/1884462.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yayagepei/articles/1875616.html</id><title type="text">Unable to instantiate default tuplizer 异常的解决办法</title><summary type="text"> Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] 异常的解决办法</summary><published>2010-11-12T05:31:00Z</published><updated>2010-11-12T05:31:00Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yayagepei/articles/1875616.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/articles/1875616.html"/><content type="html">&lt;p&gt;报：&lt;/p&gt;&lt;p&gt;Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]&lt;/p&gt;&lt;p&gt;原因是有某个.hbm.xml写错了，诸如：名称不对、类型不对 等等，修改后即可。 &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yayagepei/aggbug/1875616.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yayagepei/articles/1875616.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yayagepei/articles/1848960.html</id><title type="text">IE下js错误缺少标识符、字符串或数字解决办法</title><summary type="text">IE下js错误缺少标识符、字符串或数字解决办法</summary><published>2010-10-12T08:42:00Z</published><updated>2010-10-12T08:42:00Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yayagepei/articles/1848960.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/articles/1848960.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&lt;p&gt;ie下报缺少标识符、字符串或数字，在firefox及其他下均无问题，郁闷的找了半天也没结果，使用Companion。js也不行。最好google了一下：&lt;/p&gt;&lt;p&gt;原因及解决方法&lt;br /&gt; 1.原因：一般出现在类的定义时在最后一个属性或方法后加了逗号，在Firefox是无所谓的，而IE下就会出错，而且提示得云里雾里，要除错都很难。&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.解决方法:去掉这个逗号&amp;#8230;..&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;按照上面的提示，逐步排除js代码段以及js文件，发现还正是在类定义最后一个属性后加了一个逗号，去除，解决。 &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yayagepei/aggbug/1848960.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yayagepei/articles/1848960.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yayagepei/articles/1847721.html</id><title type="text">在linux centOS 5.5上安装tomcat</title><summary type="text">在linux centOS 5.5上安装tomcat,设置成自启动</summary><published>2010-10-11T03:08:00Z</published><updated>2010-10-11T03:08:00Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yayagepei/articles/1847721.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/articles/1847721.html"/><content type="html">&lt;p&gt;前提是要配置好了jdk环境变量。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1 在apache上下载压缩版的tomcat apache-tomcat-5.5.31.tar.gz&lt;/p&gt;&lt;p&gt;2 新建文件夹tomcat :mkdir /usr/local/tomcat/&lt;/p&gt;&lt;p&gt;3 将文件移到tomcat目录下：mv&amp;nbsp;apache-tomcat-5.5.31.tar.gz /usr/local/tomcat&lt;/p&gt;&lt;p&gt;4 解压缩文件：tar xzvf&amp;nbsp;apache-tomcat-5.5.31.tar.gz&lt;/p&gt;&lt;p&gt;5 启动tomcat，进入apache-tomcat-5.5.31/bin 执行：./startup.sh&amp;nbsp;&amp;nbsp; 即可启动tomcat，其他跟在windows上操作无异。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;6 在fireforx下访问验证一下：http://localhost:8080 &amp;nbsp; （端口默认为8080） &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;设置tomcat自启动： &lt;br /&gt;&lt;/p&gt;&lt;p&gt;新建一个tomcat文件，内容如下(路径等信息改成自己的) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# tomcat: Start/Stop/Restart tomcat&lt;br /&gt;#&lt;br /&gt;# chkconfig: 2345 80 20&lt;br /&gt;# description: Tomcat is a Java Servlet Container&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;# match these values to your environment:&lt;br /&gt;export CATALINA_BASE=/usr/local/tomcat/apache-tomcat-6.0.32&lt;br /&gt;export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-6.0.32&lt;br /&gt;export CATALINA_TMPDIR=/usr/local/tomcat/apache-tomcat-6.0.32/temp&lt;br /&gt;export JRE_HOME=/usr/local/java/jdk1.6.0_25&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Source function library.&lt;br /&gt;. /etc/rc.d/init.d/functions&lt;br /&gt;&lt;br /&gt;TOMCAT=/usr/local/tomcat/apache-tomcat-6.0.32&lt;br /&gt;&lt;br /&gt;start() {&lt;br /&gt;echo -n "Starting Tomcat: "&lt;br /&gt;$TOMCAT/bin/catalina.sh start&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;stop() {&lt;br /&gt;echo -n "Stopping Tomcat: "&lt;br /&gt;$TOMCAT/bin/catalina.sh stop&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# See how we were called.&lt;br /&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;start&lt;br /&gt;;;&lt;br /&gt;stop)&lt;br /&gt;stop&lt;br /&gt;;;&lt;br /&gt;status)&lt;br /&gt;;;&lt;br /&gt;status)&lt;br /&gt;;;&lt;br /&gt;restart)&lt;br /&gt;stop&lt;br /&gt;start&lt;br /&gt;;;&lt;br /&gt;*)&lt;br /&gt;echo "Usage: $0 {start|stop|restart}"&lt;br /&gt;;;&lt;br /&gt;esac&lt;br /&gt;exit $RETVAL&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;将tomcat文件放到/etc/rc.d/init.d/ 目录下，修改tomcat文件为可执行：chmod a+x tomcat &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yayagepei/aggbug/1847721.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yayagepei/articles/1847721.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yayagepei/articles/1847707.html</id><title type="text">在linux centOS 5.5上安装jdk</title><summary type="text">在linux centOS 5.5上安装jdk</summary><published>2010-10-11T02:55:00Z</published><updated>2010-10-11T02:55:00Z</updated><author><name>呀呀个呸</name><uri>http://www.cnblogs.com/yayagepei/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yayagepei/articles/1847707.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yayagepei/articles/1847707.html"/><content type="html">1 从sun下载jdk安装文件 jdk-6u21-linux-i586.bin&lt;br /&gt;2 在/usr/local下新建java文件夹：mkdir /usr/local/java&lt;br /&gt;3 将安装文件移到java文件夹下 mv jdk-6u21-linux-i586.bin /usr/local/java&lt;br /&gt;4 修改为可执行：chmod 777 jdk-6u21-linux-i586.bin&lt;br /&gt;5 执行安装： ./jdk-6u21-linux-i586.bin&lt;br /&gt;6 安装完毕&lt;br /&gt;&lt;br /&gt;设置环境变量：&lt;br /&gt;&amp;lt;1&amp;gt;# gedit /etc/profile&lt;br /&gt;&amp;lt;2&amp;gt;在最后加入以下几行：&lt;br /&gt;export JAVA_HOME=/usr/java/jdk1.6.0_10&lt;br /&gt;export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar&lt;br /&gt;export PATH=$PATH:$JAVA_HOME/bin&lt;br /&gt;&lt;p&gt;&amp;lt;3&amp;gt;# reboot&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 重启机器配置生效&lt;/p&gt;&lt;p&gt;&amp;lt;4&amp;gt;在控制台执行java -version 查看配置是否正确 &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yayagepei/aggbug/1847707.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yayagepei/articles/1847707.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
