??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲自偷自拍另类12p,亚洲狠狠ady亚洲精品大秀,亚洲福利在线播放http://m.tkk7.com/jialisoftw/zh-cnMon, 12 May 2025 06:01:07 GMTMon, 12 May 2025 06:01:07 GMT60Z么L~Zhhttp://m.tkk7.com/jialisoftw/archive/2013/05/11/399139.html飞猪一?/dc:creator>飞猪一?/author>Sat, 11 May 2013 02:40:00 GMThttp://m.tkk7.com/jialisoftw/archive/2013/05/11/399139.htmlhttp://m.tkk7.com/jialisoftw/comments/399139.htmlhttp://m.tkk7.com/jialisoftw/archive/2013/05/11/399139.html#Feedback4http://m.tkk7.com/jialisoftw/comments/commentRss/399139.htmlhttp://m.tkk7.com/jialisoftw/services/trackbacks/399139.htmlZ么L~ZhQ不什么时候,都是一堆的d{着人去做,人手L紧张Q难得偷得半日闲。知识密集型人才搞成了苦力密集型人才了。大家每天都在忙Q难得抽出时间来培训Q思考,反思,因ؓ屁股坐在了火炉子上面Q时刻都在煎熬着Q跑的慢点了Q就烤糊了?/div>
中国有句老话Q铁打的营盘水的兵。说的很有道理,但是对于一个高速增长的企业Q部门来说这个就成了问题Qh员不E_׃造成很多问题?/div>
1.再培?/div>
新招来的员工Q需要熟悉很多东西,环境Qh事,代码风格Q框架代码,旧有代码阅读{等。这其中的浪费往往需要很多时间来弥补Q可是Q务不{hQ事情还要做Q只能靠人堆。以前可能一个h一个小时可以搞定的事情Q变成了3个h一个星期的事?/div>
2.知识断层
新员工到岗后Q因Z熟悉原来的业务模型以及框架模型。导致设计,实现走的可能是复杂的路线Q而不是最优的路线Qƈ且由于新的设计可能导致模型的不匹配,Dq工或者桥接方式进行适配。这样^端增加出来的工作量可能是原来?倍或者数倍以上,从而导致h手上的不뀂每个行业后者领域都需要浸淫多q之后才能体会到其中的深奥之处,而这些都是无形的知识和经验,新员工到来后Q这层知识就已经消失Q只能从新来q。知识没有通过新老交接,逐步沉淀下来?/div>
3.无h可用
老员工的频繁失Q当有新的业务或者领域开展之Ӟ手下无h可用Q手下皆是一q及以下左右的新手,现有的业务还未完全熟悉,此时委与重Q又不攑ֿQ可是又无可用之才,~Zh之感倍增。只能矬子里面拔军Q而此人的能力又将军_实现的难易以及复杂程度,往往又是造成力_密集型的局面?/div>
4.恶性@?/div>
力_密集型的局面,造成员工没有旉q行思考和q修学习Q导致大家每天都是在疲劳工作Q效率下降。效率变低之后,׃产生工作量过大的局面,从而又D~Zh的局面生。当人员没有补充上来Q大家l疲力_作,效率l箋下降Q工作量也就显大。即使新员工入岗Q又会面临上面的问题。同时又因ؓ疲劳工作Qƈ且没有提升空间等原因Q很多员工可能选择职Q而这些员工往往都是骨干员工。从而ɾ~Zh的现象生了一U恶性@环?/div>
5.招聘质量
因ؓ对于招聘的漠视和一些种U限制导致了招聘q来的h员素质水q不是理想状态,大家往往只追求了量上的满I而不是质上的满。h员也没有呈现梯队化,D培训成本的升高和后期提升速度较慢。这样也造成了工作效率不高的一个方面,从而导致工作在一D|间内产生U压?/div>
铁打的营盘流水的兵,当流水的速度过一定的限度的时候,׃造成很多不良效果Q当然流水的速度如果l箋上升的话Q铁打的营盘也会落入湍急的漩涡之中。拥有知识密集型的h才,应该做到让人才的知识密集v来,而不是让人密集v来。稳固流水的速度Q提升员工的生力和知识能力q样才能慢慢解决~Zh的困局?/div>

]]>外行谈码?/title><link>http://m.tkk7.com/jialisoftw/archive/2013/05/07/398919.html</link><dc:creator>飞猪一?/dc:creator><author>飞猪一?/author><pubDate>Tue, 07 May 2013 03:44:00 GMT</pubDate><guid>http://m.tkk7.com/jialisoftw/archive/2013/05/07/398919.html</guid><wfw:comment>http://m.tkk7.com/jialisoftw/comments/398919.html</wfw:comment><comments>http://m.tkk7.com/jialisoftw/archive/2013/05/07/398919.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/jialisoftw/comments/commentRss/398919.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/jialisoftw/services/trackbacks/398919.html</trackback:ping><description><![CDATA[<p style="margin-top: 14px; margin-bottom: 14px; font-family: verdana, Arial, Helvetica, sans-serif;"><span data-mce-style="color: #ff0000;" style="color: #ff0000;">如果您也是站ѝ创业者、程序员或者对上面的谷歌广告感兴趣Q希望可以帮忙点下,?   </span></p><p style="margin-top: 14px; margin-bottom: 14px; font-family: verdana, Arial, Helvetica, sans-serif;">在中国,E序员被UCؓ“码农”Q字面意思就是写代码的农民?br />个h理解Q码农者,以鼠标键盘ؓ锄,代码为籽Q日夜耕作于编译器的一亩三分田里,披星戴月熬红了眼圈,实ؓ辛苦Q?br />因此有h_E序员是拿命来工作的。听说在国外Q程序员工作qq么辛苦Q而且他们是很受尊重的Q这可能与一些观忉|兟뀂国内对E序员工作量要求很高Q而国外Y件开发则更注重质量,据说国外一个程序员每月大概写三百行代码Q而国内要求至是每月六七百行?/p><p style="margin-top: 14px; margin-bottom: 14px; font-family: verdana, Arial, Helvetica, sans-serif;"><br />有的E序员写E序只是Z生活所需Q老是重复d一些没有Q何新意的代码会让人感到厌烦,q时候ؓ什么不把这些经常用到的部分归纳ȝQ打造出一套类库或者是~程框架呢,通过反思和ȝQ精益求_,方便自己惠及他h。或者也可以对现有的cd框架q行优化Q这样可以提高以后的开发效率?/p><p style="margin-top: 14px; margin-bottom: 14px; font-family: verdana, Arial, Helvetica, sans-serif;"><br />Z么会沦ؓ写代码的农民Q程序员的视野不应该只局限于自己工作的部分,只一味的盘旋在某一个技术领域中Q每天机械地敲代码,思维׃僵化受限Q很难有创新和突_可能只能做一个螺丝钉。应该学习和培养架构师那样全局的思维和眼光,从全局出发思考自q解决ҎQƈ试自己d做一些项目?/p><p style="margin-top: 14px; margin-bottom: 14px; font-family: verdana, Arial, Helvetica, sans-serif;"><br />个h觉得Q程序员不仅要善于用计算机的思维~程Q还应该懂市场、懂理Q通过分析理解用户需求,加上团队协作_才能打造出优秀的品。即使今天只是一个螺丝钉Q也要用当顶梁柱的心态去思考问题,q样才能培养解决用户需求的独立思考能力,日后才能快速成长ؓ软g工程师和架构师?/p><img src ="http://m.tkk7.com/jialisoftw/aggbug/398919.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/jialisoftw/" target="_blank">飞猪一?/a> 2013-05-07 11:44 <a href="http://m.tkk7.com/jialisoftw/archive/2013/05/07/398919.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一步步开?Spring MVC 应用http://m.tkk7.com/jialisoftw/archive/2013/05/04/398785.html飞猪一?/dc:creator>飞猪一?/author>Sat, 04 May 2013 06:28:00 GMThttp://m.tkk7.com/jialisoftw/archive/2013/05/04/398785.htmlhttp://m.tkk7.com/jialisoftw/comments/398785.htmlhttp://m.tkk7.com/jialisoftw/archive/2013/05/04/398785.html#Feedback1http://m.tkk7.com/jialisoftw/comments/commentRss/398785.htmlhttp://m.tkk7.com/jialisoftw/services/trackbacks/398785.htmlSpring MVC 框架

Spring 框架提供了构?Web 应用E序的全功能 MVC 模块。?Spring 可插入的 MVC 架构Q可以选择是用内|的 Spring Web 框架q是 Struts q样?Web 框架。通过{略接口QSpring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer PagesQJSPQ技术、Velocity、Tiles、iText ?POI。Spring MVC 框架q不知道使用的视图,所以不会强q您只?JSP 技术。Spring MVC 分离了控制器、模型对象、分z֙以及处理E序对象的角Ԍq种分离让它们更Ҏq行定制?img src="http://justjavac.iteye.com/blogs/digg?id=1812791" width="1" height="1" alt="" style="border: none;" />

Spring ?Web MVC 框架是围l?DispatcherServlet 设计的,它把h分派l处理程序,同时带有可配|的处理E序映射、视图解析、本地语a、主题解析以及上载文件支持。默认的处理E序是非常简单的 Controller 接口Q只有一个方?ModelAndView handleRequest(request, response)。Spring 提供了一个控制器层次l构Q可以派生子cR如果应用程序需要处理用戯入表单,那么可以l承 AbstractFormController。如果需要把多页输入处理C个表单,那么可以l承 AbstractWizardFormController?/p>

CZ应用E序有助于直观地学习q些Ҏ。银行应用程序允许用h索他们的帐户信息。在构徏银行应用E序的过E中Q可以学到如何配|?Spring MVC 框架和实现框架的视图层,视图层包?JSTL 标记Q用于显C出的数据Q和JavaServer Pages 技术?/p>

配置 Spring MVC

要开始构建示例应用程序,请配|?Spring MVC ?DispatcherServlet。请?web.xml 文g中注册所有配|。清?1 昄了如何配|?sampleBankingServlet?/p>

清单 1. 配置 Spring MVC DispatcherServlet

<servlet>    <servlet-name>sampleBankingServlet</servlet-name>      <servlet-class>       org.springframework.we.servlet.DispatcherServlet    <servlet-class>    <load-on-startup>1<load-on-startup> <servlet>         

DispatcherServlet 从一?XML 文g装入 Spring 应用E序上下文,XML 文g的名U是 servlet 的名U后面加?-servlet 。在q个CZ中,DispatcherServlet 会从 sampleBankingServlet-servlet.xml 文g装入应用E序上下文?/p>

配置应用E序?URL

下一步是配置惌 sampleBankingServlet 处理?URL。同Pq是要在 web.xml 中注册所有这些信息?/p>

清单 2. 配置惌处理?URL

<servlet-mapping> <servlet-name> sampleBankingServlet<servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping> 

装入配置文g

下面Q装入配|文件。ؓ了做到这点,请ؓ Servlet 2.3 规范注册 ContextLoaderListener 或ؓ Servlet 2.2 及以下的容器注册 ContextLoaderServlet。ؓ了保障后向兼Ҏ,L ContextLoaderServlet。在启动 Web 应用E序ӞContextLoaderServlet 会装?Spring 配置文g。清?3 注册?ContextLoaderServlet?/p>

清单 3. 注册 ContextLoaderServlet

context>servlet-name> org.springframework.web.context.ContextLoaderServlet 1

contextConfigLocation 参数定义了要装入?Spring 配置文gQ如下面?servlet 上下文所C?/p>

contextConfigLocation /WEB-INF/sampleBanking-services.xml

sampleBanking-services.xml 文g代表CZ银行应用E序服务的配|和 bean 配置。如果想装入多个配置文gQ可以在 标记中用逗号作分隔符?/p>

Spring MVC CZ

CZ银行应用E序允许用户Ҏ惟一?ID 和口令查看帐户信息。虽?Spring MVC 提供了其他选项Q但是我采?JSP 技术作N面。这个简单的应用E序包含一个视N用于用户输入QID 和口令)Q另一|C用L帐户信息?/p>

我从 LoginBankController 开始,它扩展了 Spring MVC ?SimpleFormController。SimpleFormContoller 提供了显CZ HTTP GET h接收到的表单的功能,以及处理?HTTP POST 接收到的相同表单数据的功能。LoginBankController ?AuthenticationService ?AccountServices 服务q行验证Qƈ执行帐户zd?#8220; 配置视图属?”一节中?清单 5 描述了如何把 AuthenticationService ?AccountServices q接?LoginBankController?清单 4 昄?LoginBankController 的代码?/p>

配置视图属?/h3>

下面Q我必须注册在接收到 HTTP GET h时显C的面。我?Spring 配置中用 formView 属性注册这个页面,如清?5 所C。sucessView 属性代表表单数据提交而且 doSubmitAction() Ҏ中的逻辑成功执行之后昄的页面。formView ?sucessView 属性都代表被定义的视图的逻辑名称Q逻辑名称映射到实际的视图面?/p>

清单 5. 注册 LoginBankController

<bean id="loginBankController"      class="springexample.controller.LoginBankController">   <property name="sessionForm"><value>true</value></property> <property name="commandName"><value>loginCommand</value></property> <property name="commandClass">   <value>springexample.commands.LoginCommand</value> </property>   <property name="authenticationService">      <ref bean="authenticationService" />   </property>   <property name="accountServices">      <ref bean="accountServices" />   </property>   <property name="formView">      <value>login</value>   </property>   <property name="successView">      <value>accountdetail</value>   </property> </bean> 

commandClass ?commandName 标记军_在视图面中活动的 bean。例如,可以通过 login.jsp 面讉K loginCommand beanQ这个页面是应用E序的登录页面。一旦用h交了d面Q应用程序就可以?LoginBankController ?onSubmit() Ҏ中的命o对象索出表单数据?/p>

视图解析?/h3>

Spring MVC ?视图解析?把每个逻辑名称解析成实际的资源Q即包含帐户信息?JSP 文g。我用的?Spring ?InternalResourceViewResolverQ如 清单 6 所C?/p>

因ؓ我在 JSP 面中用了 JSTL 标记Q所以用Ld名称解析成资?/jsp/login.jspQ?viewClass 成ؓ JstlView?/p>

验证和帐h?/h3>

像前面提到的,LoginBankController 内部q接?Spring ?AccountServices ?AuthenticationService。AuthenticationService cd理银行应用程序的验证。AccountServices cd理典型的银行服务Q例如查找交易和甉|。清?7 昄了银行应用程序的验证和帐h务的配置?/p>

清单 7. 配置验证和帐h?/p>

<beans>    <bean id="accountServices"        class="springexample.services.AccountServices">    </bean>    <bean id="authenticationService"        class="springexample.services.AuthenticationService">    </bean> </beans> 

以上服务?sampleBanking-services.xml 中注册,然后装入 web.xml 文g中,像 前面讨论的那栗控制器和服务配|好后,q个单的应用E序完成了。现在我们来看看部v和测试它时会发生什?

部v应用E序

我把CZ应用E序部v?Tomcat servlet 容器中。Tomcat ?Java Servlet ?Java ServerPagest 技术的官方参考实C使用?servlet 容器。如果以前没q么做过Q请下蝲 jakarta-tomcat-5.0.28.exe q运行它?Tomcat 安装到自己喜Ƣ的M位置Q例?c:\tomcat5.0?/p>

接下来,下蝲CZ代码 q攑ֈ驱动器(例如 c:\ Q上。创Z Spring 目的文件夹之后Q打开它ƈ?spring-banking 子文件夹拯?c:\tomvat5.0\webapps。spring-banking 文gҎ一?Web 案Q里面包?Spring MVC CZ应用E序。lib 文g夹包含应用程序需要的 Spring 框架、与Spring 相关?MVC 库以?JSTL 标记库和 jar 文g?/p>

要启?Tomcat 服务器,请用以下命令:

cd bin C:\Tomcat 5.0\bin> catalina.bat start 

Tomcat 应当启动q|?Spring MVC CZ应用E序?/p>

试应用E序

要测试应用程序,h开 Web 览器,指向 http://localhost:tomcatport/springbanking q用 Tomcat 服务器实际运行的端口替换 tomcatport。应当看到图 1 所C的d屏幕。输入用?ID “admin”和口?#8220;password”Qƈ按下d按钮。其他用?ID 或口令会造成来自验证服务的错误?/p>

?1. Spring MVC CZd屏幕

d屏幕

d成功之后Q会看到?2 所C的帐户l节面?/p>

?2. Spring MVC CZ帐户l节面

帐户l节面

l束?/h2>

我演CZ如何配置和开?Spring MVC 应用E序、如何配|?Spring MVC 控制器和向其中插入依赖项、如何用 JavaServer Pages 技术开发应用程序视图,以及如何把自q面?Spring MVC 的视囑ֱ集成。ȝq篇文章Ӟ我演CZ如何?Tomcat servlet 容器中部|应用程序以及如何在览器中试它?/p>

]]>JAVA中的内存溢出http://m.tkk7.com/jialisoftw/archive/2013/05/03/398717.html飞猪一?/dc:creator>飞猪一?/author>Fri, 03 May 2013 02:26:00 GMThttp://m.tkk7.com/jialisoftw/archive/2013/05/03/398717.htmlhttp://m.tkk7.com/jialisoftw/comments/398717.htmlhttp://m.tkk7.com/jialisoftw/archive/2013/05/03/398717.html#Feedback0http://m.tkk7.com/jialisoftw/comments/commentRss/398717.htmlhttp://m.tkk7.com/jialisoftw/services/trackbacks/398717.html一、概q?/div>
内存溢出与数据库锁表的问题,可以说是开发h员的噩梦Q一般的E序异常QL可以知道在什么时候或是在什么操作步骤上出现了异常,而且Ҏ堆栈信息也很Ҏ定位到程序中是某处出C问题。内存溢Z锁表则不Ӟ一般现象是操作一般时间后pȝ来慢Q直到死机,但ƈ不能明确是在什么操作上出现的,发生的时间点也没有规律,查看日志或查看数据库也不能定位出问题的代码?/div>
更严重的是内存溢Z数据库锁表在pȝ开发和单元试阶段q不Ҏ被发玎ͼ当系l正式上U一般时间后Q操作的q发量上来了Q数据也U篏了一些,pȝ容易出现内存溢出或是锁表的现象Q而此时系l又不能随意停机或重启,Z正BUG带来很大的困难。本文以W者开发和支持的多个项目ؓ例,与大家分享在开发过E中遇到的Java内存溢出和数据库锁表的检和处理解决q程?/div>
二、内存溢出的分析
内存溢出是指应用pȝ中存在无法回收的内存或用的内存q多Q最l得程序运行要用到的内存大于虚拟机能提供的最大内存。ؓ了解决Java中内存溢出问题,首先必须了解Java是如何管理内存的。Java的内存管理就是对象的分配和释N题?/div>
在Java中,内存的分配是q序完成的Q而内存的释放是由垃圾攉?Garbage CollectionQGC)完成的,E序员不需要通过调用GC函数来释攑ֆ存,因ؓ不同的JVM实现者可能用不同的法理GCQ有的是内存使用到达一定程度时QGC才开始工作,也有定时执行的,有的是中断式执行GC。但GC只能回收无用q且不再被其它对象引用的那些对象所占用的空间。Java的内存垃圑֛收机制是从程序的主要q行对象开始检查引用链Q当遍历一遍后发现没有被引用的孤立对象׃为垃圑֛收。引起内存溢出的原因有很多种Q常见的有以下几U:
1 内存中加载的数据量过于庞大,如一ơ从数据库取多数据;
2 集合cM有对对象的引用,使用完后未清I,使得JVM不能回收Q?/div>
3 代码中存在死循环或@环生过多重复的对象实体Q?/div>
4 使用的第三方软g中的BUGQ?/div>
5 启动参数内存D定的q小Q?/div>
三、内存溢出的解决
内存溢出虽然很棘手,但也有相应的解决办法Q可以按照从易到难,一步步的解冟?/div>
W一步,是修改JVM启动参数Q直接增加内存。这一点看上去g很简单,但很Ҏ被忽略。JVM默认可以使用的内存ؓ64MQTomcat默认可以使用的内存ؓ128MBQ对于稍复杂一点的pȝ׃不够用。在某项目中Q就因ؓ启动参数使用的默认|l常?#8220;OutOfMemory”错误。因此,-XmsQ?Xmx参数一定不要忘记加?/div>
W二步,查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。在一个项目中Q用两个数据库q接Q其中专用于发送短信的数据库连接用DBCPq接池管理,用户Z短信发出,有意数据库q接用户名改错,使得日志中有许多数据库连接异常的日志Q一D|间后Q就出现 “OutOfMemory”错误。经分析Q这是由于DBCPq接池BUG引v的,数据库连接不上后Q没有将q接释放Q最l得DBCP?“OutOfMemory”错误。经q修Ҏ数据库q接参数后,没有再出现内存溢出的错误。查看日志对于分析内存溢出是非常重要的,通过仔细查看日志Q分析内存溢出前做过哪些操作Q可以大致定位有问题的模块?/div>
W三步,安排有经验的~程人员对代码进行走查和分析Q找出可能发生内存溢出的位置。重Ҏ查以下几点:
(1) 查代码中是否有死循环或递归调用?/div>
(2) 查是否有大@环重复生新对象实体?/div>
(3) 查对数据库查询中Q是否有一ơ获得全部数据的查询。一般来_如果一ơ取十万条记录到内存Q就可能引v内存溢出。这个问题比较隐蔽,在上U前Q数据库中数据较,不容易出问题Q上U后Q数据库中数据多了,一ơ查询就有可能引起内存溢出。因此对于数据库查询量采用分页的方式查询?/div>
(4) 查List、MAP{集合对象是否有使用完后Q未清除的问题。List、MAP{集合对象会始终存有对对象的引用Q得这些对象不能被GC回收?/div>
q里引用一个常看到的例子,在下面的代码中,循环甌Object对象Qƈ所甌的对象放入一个Vector中,如果仅仅释放对象本nQ但因ؓVector仍然引用该对象,所以这个对象对GC来说是不可回收的。因此如果对象加入到Vector后,q必MVector中删除,最单的Ҏ是Vector对象讄为null。实际上q些对象已经是无用的Q但q被引用QGC无能ؓ力了(事实上GC认ؓ它还有用)Q这一ҎD内存泄漏最重要的原因?/div>
Vector v = new Vector(10);     
for (int i = 1; i < 100; i++)     
{     
Object o = new Object();     
v.add(o);     
o = null;     
} // 此时所有的Object对象都没有被释放Q因为变量v引用q些对象
再引用另一个例子来说明Java的内存泄漏。假设有一个日志类LoggerQ其提供一个静态的log(String msg)QQ何其它类都可以调用Logger.Log(message)来将message的内容记录到pȝ的日志文件中。LoggercL一个类型ؓHashMap的静态变量tempQ每ơ在执行log(message)的时候,都首先将message的值写入temp?以当前线E?当前旉为键)Q在退Z前再从temp中将以当前线E和当前旉为键的条目删除。注意,q里当前旉是不断变化的Q所以log在退Z前执行删除条目的操作q不能删除执行之初写入的条目。这PM一个作为参Cllog的字W串最l由于被Logger的静态变量temp引用Q而无法得到回Ӟq种对象保持是我们所说的Java内存泄漏。ȝ来说Q内存管理中的内存泄漏生的主要原因Q保留下来却永远不再使用的对象引用?/div>
W四步,使用内存查看工具动态查看内存用情c某个项目上U后Q每ơ系l启动两天后Q就会出现内存溢出的错误。这U情况一般是代码中出C~慢的内存泄漏,用上面三个步骤解决不了,q就需要用内存查看工具了?/div>
内存查看工具有许多,比较有名的有QOptimizeit Profiler、JProbe Profiler、JinSight和Java1.5的Jconsole{。它们的基本工作原理大同异Q都是监JavaE序q行时所有对象的甌、释攄动作Q将内存理的所有信息进行统计、分析、可视化。开发h员可以根据这些信息判断程序是否有内存泄漏问题。一般来_一个正常的pȝ在其启动完成后其内存的占用量是基本稳定的Q而不应该是无限制的增长的。持l地观察pȝq行时用的内存的大,可以看到在内存用监控窗口中是基本规则的锯形的囄Q如果内存的大小持箋地增长,则说明系l存在内存泄漏问题。通过间隔一D|间取一ơ内存快照,然后对内存快照中对象的用与引用{信息进行比对与分析Q可以找出是哪个cȝ对象在泄漏?/div>
四、ȝ
通过以上四个步骤的分析与处理Q基本能处理内存溢出的问题。当Ӟ在这些过E中也需要相当的l验与敏感度Q需要在实际的开发与调试q程中不断积累。M上来_产生内存溢出是由于代码写的不好造成的,因此提高代码的质量是最Ҏ的解军_法。有的h认ؓ先把功能实现Q有BUG时再在测试阶D进行修正,q种x是错误的。正如一件品的质量是在生刉的q程中决定的Q而不是质量检时军_的,软g的质量在设计与编码阶D就已经军_了,试只是对Y件质量的一个验证,因ؓ试不可能找Y件中所有的BUG?/div>

]]>大道至简与博大精?/title><link>http://m.tkk7.com/jialisoftw/archive/2013/04/27/398494.html</link><dc:creator>飞猪一?/dc:creator><author>飞猪一?/author><pubDate>Sat, 27 Apr 2013 03:19:00 GMT</pubDate><guid>http://m.tkk7.com/jialisoftw/archive/2013/04/27/398494.html</guid><wfw:comment>http://m.tkk7.com/jialisoftw/comments/398494.html</wfw:comment><comments>http://m.tkk7.com/jialisoftw/archive/2013/04/27/398494.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/jialisoftw/comments/commentRss/398494.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/jialisoftw/services/trackbacks/398494.html</trackback:ping><description><![CDATA[<span style="color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;">?/span><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><span style="color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;">是简单吗Q不是,哪里有最单就是最有道理的逻辑。但是常常有么看Q而且q些总觉得有理。更加可怕的是,他们觉得有道理,应该是最单的Q你的看法比别h不简单,所以你没道理?/span><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><span style="color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;">是简便吗Q不是,q样的话更加没有道理了。不q常ZLq么看,拿他们没办法?/span><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><span style="color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;">那就只能是简z了。是?/span><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><span style="color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;">所谓多一份不可,一份不如。既不是最,也不是最多,而是刚刚好,恰恰뀂其中的博大_深Q全在乎于知道何处ؓq个刚刚和恰恰得机y。而就因ؓ是简z,而不是简单和便,所以L有可能不是唯一Q既所谓条条大路通罗马。这里的关键是大路,而不是小路?/span><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><span style="color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;">人唯有博大精深后Q才能知道大道至。也唯有博大_深后,才能辑ֈ大道至简。不d独的q求单,才能知道什么是_深。不单独q求便,才能知道什么是博大。天然的Q简单和便就是博大精q天敌。可以说看v来,z在博大_深与简单简便中间。而实际如果你不先d大精深那里{一圈,׃可能到底?/span><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><span style="color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;">而所谓博大精深到底,往往便是单和ѝ因为真的简单简便,往往是博大_深作到头?/span><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><span style="color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;">然而,暮然回首Q简z才是我们最应该q求的,也是l极的目标?/span><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><br style="padding: 0px; margin: 0px; color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;" /><span style="color: #222222; font-family: Arial, 宋体; line-height: 25px; background-color: #ffffff;">关于代码I竟应该写的多,q是应该写的;是应该写到明白,是应该写的更有效率;{案在此?/span><img src ="http://m.tkk7.com/jialisoftw/aggbug/398494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/jialisoftw/" target="_blank">飞猪一?/a> 2013-04-27 11:19 <a href="http://m.tkk7.com/jialisoftw/archive/2013/04/27/398494.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSON与JAVA的数据{?/title><link>http://m.tkk7.com/jialisoftw/archive/2013/03/04/396013.html</link><dc:creator>飞猪一?/dc:creator><author>飞猪一?/author><pubDate>Mon, 04 Mar 2013 00:42:00 GMT</pubDate><guid>http://m.tkk7.com/jialisoftw/archive/2013/03/04/396013.html</guid><wfw:comment>http://m.tkk7.com/jialisoftw/comments/396013.html</wfw:comment><comments>http://m.tkk7.com/jialisoftw/archive/2013/03/04/396013.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.tkk7.com/jialisoftw/comments/commentRss/396013.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/jialisoftw/services/trackbacks/396013.html</trackback:ping><description><![CDATA[<p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">本文介绍如何使用JSON-libq个Javacd实现Java的数据{换。通过此类包可以把beanQmap和XML转换成JSONq能够把JSON转回成bean和DynaBean?/p><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">JSON-libq个Javacd用于把bean,map和XML转换成JSONq能够把JSON转回成bean和DynaBean?/p><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">下蝲地址:</p><div style="margin: 0px; border: 0px; font-family: Arial, 宋体; font-size: 14px; line-height: 25px; background-color: #f8fcff;">http://sourceforge.net/projects/json-lib/</div><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">q要需要的W?方包:<br style="padding: 0px; margin: 0px;" />org.apache.commons</p><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">包括Q?/p><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">commons-beanutils.jar<br style="padding: 0px; margin: 0px;" />commons-collections-3.2.jar<br style="padding: 0px; margin: 0px;" />commons-lang-2.6.jar<br style="padding: 0px; margin: 0px;" />commons-logging-1.1.1.jar</p><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">net.sf.ezmorph(ezmorph-1.0.6.jar)</p><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;"> </p><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">1. 对Listcd的解析:</p><div style="margin: 0px; border: 0px; font-family: Arial, 宋体; font-size: 14px; line-height: 25px; background-color: #f8fcff;"><strong style="padding: 0px; margin: 0px;">Java代码:  </strong></div><div class="bt9n97x" id="" style="padding-right: 1px; padding-bottom: 1px; padding-left: 1px; margin-top: 0px; margin-bottom: 0px; margin-left: 9px; border: 0px; font-size: 14px; background-color: #f8fcff; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; width: 679px; word-break: break-all; word-wrap: break-word; line-height: 25.1875px;"><ol start="1" style="padding-top: 2px; padding-bottom: 2px; margin-left: 0px; font-size: 1em; line-height: 1.4em; border: 1px solid #d1d7dc; color: #2b91af;"><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;"><span style="color: #7f0055;">boolean</span>[] boolArray = <span style="color: #7f0055;">new</span> <span style="color: #7f0055;">boolean</span>[]{<span style="color: #7f0055;">true</span>,<span style="color: #7f0055;">false</span>,<span style="color: #7f0055;">true</span>};          </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        JSONArray jsonArray1 = JSONArray.fromObject( boolArray );         </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        System.out.println( jsonArray1 );         </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">         <span style="width: auto; border-width: 0px;">// prints [true,false,true]      </span>  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">              </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">         List list = <span style="color: #7f0055;">new</span> ArrayList();         </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">         list.add( "first" );         </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">         list.add( "second" );         </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">         JSONArray jsonArray2 = JSONArray.fromObject( list );         </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">         System.out.println( jsonArray2 );         </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">         <span style="width: auto; border-width: 0px;">// prints ["first","second"]   </span>  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">           </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">         JSONArray jsonArray3 = JSONArray.fromObject( "['json','is','easy']" );          </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">         System.out.println( jsonArray3 );          </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">         <span style="width: auto; border-width: 0px;">// prints ["json","is","easy"]</span> </li></ol></div><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">2. 对Mapcd的解?/p><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;"> 原文参考自站长|:<span style="font-family: verdana, 'courier new'; font-size: 14px; line-height: 20px;">http://www.software8.co/wzjs/java/3165.html</span></p><div style="margin: 0px; border: 0px; font-family: Arial, 宋体; font-size: 14px; line-height: 25px; background-color: #f8fcff;"><strong style="padding: 0px; margin: 0px;">Java代码:  </strong></div><div class="txlj77v" id="" style="padding-right: 1px; padding-bottom: 1px; padding-left: 1px; margin-top: 0px; margin-bottom: 0px; margin-left: 9px; border: 0px; font-size: 14px; background-color: #f8fcff; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; width: 679px; word-break: break-all; word-wrap: break-word; line-height: 25.1875px;"><ol start="1" style="padding-top: 2px; padding-bottom: 2px; margin-left: 0px; font-size: 1em; line-height: 1.4em; border: 1px solid #d1d7dc; color: #2b91af;"><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">Map map = <span style="color: #7f0055;">new</span> HashMap();  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">map.put("name", "json");  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">map.put("bool", Boolean.TRUE);  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">map.put("int", <span style="color: #7f0055;">new</span> Integer(<span style="color: #c00000;">1</span>));  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">map.put("arr", <span style="color: #7f0055;">new</span> String[] { "a", "b" });  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">map.put("func", "function(i){ return this.arr[i]; }");  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">JSONObject json = JSONObject.fromObject(map);  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">System.out.println(json);   </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;"><span style="width: auto; border-width: 0px;">// {"arr":["a","b"],"int":1,"name":"json","func":function(i){ return this.arr[i]; },"bool":true}</span>  </li></ol></div><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">3、对JavaBEAN的解?/p><div style="margin: 0px; border: 0px; font-family: Arial, 宋体; font-size: 14px; line-height: 25px; background-color: #f8fcff;"><strong style="padding: 0px; margin: 0px;">Java代码:  </strong></div><div class="7nf9p99" id="" style="padding-right: 1px; padding-bottom: 1px; padding-left: 1px; margin-top: 0px; margin-bottom: 0px; margin-left: 9px; border: 0px; font-size: 14px; background-color: #f8fcff; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; width: 679px; word-break: break-all; word-wrap: break-word; line-height: 25.1875px;"><ol start="1" style="padding-top: 2px; padding-bottom: 2px; margin-left: 0px; font-size: 1em; line-height: 1.4em; border: 1px solid #d1d7dc; color: #2b91af;"><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;"><span style="color: #7f0055;">import</span> net.sf.json.*;  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;"><span style="color: #7f0055;">public</span> <span style="color: #7f0055;">class</span> Test {  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">      </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">    <span style="color: #7f0055;">public</span> <span style="color: #7f0055;">static</span> <span style="color: #7f0055;">class</span> JsonBean{  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        <span style="color: #7f0055;">private</span> String name="json";  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        <span style="color: #7f0055;">private</span> <span style="color: #7f0055;">int</span> pojoId = <span style="color: #c00000;">1</span>;  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        <span style="color: #7f0055;">public</span> String getName() {  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">            <span style="color: #7f0055;">return</span> name;  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        }  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        <span style="color: #7f0055;">public</span> <span style="color: #7f0055;">void</span> setName(String name) {  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">            <span style="color: #7f0055;">this</span>.name = name;  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        }  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        <span style="color: #7f0055;">public</span> <span style="color: #7f0055;">int</span> getPojoId() {  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">            <span style="color: #7f0055;">return</span> pojoId;  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        }  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        <span style="color: #7f0055;">public</span> <span style="color: #7f0055;">void</span> setPojoId(<span style="color: #7f0055;">int</span> pojoId) {  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">            <span style="color: #7f0055;">this</span>.pojoId = pojoId;  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        }   </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">    }  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">    <span style="width: auto; border-width: 0px;">/**</span> </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;"><span style="width: auto; border-width: 0px;">     * @param args</span> </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;"><span style="width: auto; border-width: 0px;">     */</span>  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">    <span style="color: #7f0055;">public</span> <span style="color: #7f0055;">static</span> <span style="color: #7f0055;">void</span> main(String[] args) {  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        JSONObject jsonObject = JSONObject.fromObject(<span style="color: #7f0055;">new</span> JsonBean());  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        System.out.println(jsonObject);   </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">        <span style="width: auto; border-width: 0px;">// {"name":"json","pojoId":1}</span>  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">    }  </li><li style="padding-right: 0px; margin-left: 38px; list-style-type: none; list-style-position: initial; font-size: 1em; border-left-width: 1px; border-left-color: #d1d7dc; background-color: #fafafa; line-height: 18px;">}  </li></ol></div><p style="padding: 0px; margin: 0px; list-style: none; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;"> 说明apache json-lib可以满各种json的解析?/p><img src ="http://m.tkk7.com/jialisoftw/aggbug/396013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/jialisoftw/" target="_blank">飞猪一?/a> 2013-03-04 08:42 <a href="http://m.tkk7.com/jialisoftw/archive/2013/03/04/396013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>没有ȝ没有进步之开天辟?/title><link>http://m.tkk7.com/jialisoftw/archive/2013/02/26/395746.html</link><dc:creator>飞猪一?/dc:creator><author>飞猪一?/author><pubDate>Tue, 26 Feb 2013 05:44:00 GMT</pubDate><guid>http://m.tkk7.com/jialisoftw/archive/2013/02/26/395746.html</guid><wfw:comment>http://m.tkk7.com/jialisoftw/comments/395746.html</wfw:comment><comments>http://m.tkk7.com/jialisoftw/archive/2013/02/26/395746.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/jialisoftw/comments/commentRss/395746.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/jialisoftw/services/trackbacks/395746.html</trackback:ping><description><![CDATA[<span style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">--本篇内容U非技术内?nbsp;</span><br style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;" /><span style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">    著名的成功学定律“l节军_成|”Q说的没错,日常工作中,生活中也是一L道理Q细节即是习惯,而时长回头看一下自pq的路,想一惌q的路,再想惛_面的路,一定会有很多很多踩q的坑,下次会再t到Q如果不Lȝ和思考,一定是再很?#8230;…Q扯的有点远之所以表辑ּq么大是l自׃个惊醒,你需要ȝ了版主,q答应老婆每周臛_2博客,多写一些ȝ性的Q那׃今天开始吧Q习惯性的ȝ吧,即不能指数型,也要做到U性向目标靠拢Q超?nbsp;</span><br style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;" /><span style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">    说了q么多到底要写点什么呢Q今天是q后的第一个周末,把老板推荐的书看了一半,书里写的好多是我生zM的羃影,有些情况比书中案例还要糟p(剧情回顾Q去q底工作reviewQ老板的评h工作没什么问题,是学生气十IQ想想也是,工作1q有余,把工作还当学校实验室一P感觉理职业,专业Q这些词兌不够?很多l节是需要注意的?nbsp;</span><br style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;" /><span style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">    1、桌如其人:挺大的办公桌但是却感觉不到空间感Q是桌子q不够大吗,q要要紧的东西太多,分不出重要程度来Q办公桌是W二张脸Q一个h性格的体玎ͼ像自如其h一栗?nbsp;</span><br style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;" /><span style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">    2、看上去比你的职位高才会有发展:工作可以有不同的理解Q可以理解成工作Q也可以当事业去做,既然不能摆脱工作Q那当事业dQ就要有职业的范Q很多时候我的做事方式过于谦逊,q于卑微Q这样反而带来对方的误解Q或者是不信M靠谱Q这个我深有体会Q因为很多时候业务方扑ֈ开发要Q一个很单问题,要的只是一个肯定,你很定的回{是可以了Q准明了,会觉得你是个靠谱的开发。相反你如果担心他有U种疑惑Q想用他能理解的语言去解释,东扯西扯的,说说业务Q说说技术的Q西路又不清晰的话,会让得你不专业?nbsp;</span><br style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;" /><span style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">    3、改掉不专业的小动作Q作Z个职场打拼的人就需要遵守很多规则,除非你是一个个人魅力很强,能另辟蹊径的人,作ؓ一个办公室白领Q就需要注意很多细节,也许你的一个{W动作也会被误解为无视可做。与人沟通要坦诚Q交不但需要语a交流Q眼很是很重要的,比如2人眼的对视会给人感觉你有很认真的在听?nbsp;</span><br style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;" /><span style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">    4、对事不对hQ这斚w工作中遇到的比较,只有一ơ发生点冲突Q自认ؓ做的q不错,对事不对人真的不是简单的说说而已Q这是一U态度Q一U胸怀?nbsp;</span><br style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;" /><span style="padding: 0px; margin: 0px; font-size: 14px; background-color: #f8fcff; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px;">    5、城府:很多时候这是一个贬义词Q但是作业白领是必备的技能,有城府才能挡更大的责任,解决好问题,有句名言“如果在同事眼里你不像l理Q那老板眼里也不?#8221;Q说的额太好了,l理应该有l理样子<br /></span>原文链接Q?span style="font-size: 14px;">http://www.software8.co/wzjs/cxyyg/3048.html</span><img src ="http://m.tkk7.com/jialisoftw/aggbug/395746.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/jialisoftw/" target="_blank">飞猪一?/a> 2013-02-26 13:44 <a href="http://m.tkk7.com/jialisoftw/archive/2013/02/26/395746.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>E序员{变草根站长后,做了|站后如何快速提高百度网站收录和量http://m.tkk7.com/jialisoftw/archive/2013/02/20/395452.html飞猪一?/dc:creator>飞猪一?/author>Wed, 20 Feb 2013 05:09:00 GMThttp://m.tkk7.com/jialisoftw/archive/2013/02/20/395452.htmlhttp://m.tkk7.com/jialisoftw/comments/395452.htmlhttp://m.tkk7.com/jialisoftw/archive/2013/02/20/395452.html#Feedback2http://m.tkk7.com/jialisoftw/comments/commentRss/395452.htmlhttp://m.tkk7.com/jialisoftw/services/trackbacks/395452.html很多E序员都l营了自q|站来赚取外快。都希望做了一个新站后Q头疼的是如何能快速让癑ֺ收录|站信息?快好Q最好能快速冲上百度首呵c这是草?a target="_blank" style="color: #000000; text-decoration: initial; font-size: 14px;">站长一直都在研I的问题Q结合以往|站的经验现在分享给大家Q?nbsp;
 
  很多|站的权重高才能快速收录,但是新站开始哪里会有权重呢 所以但p点站长们׃要去理会?Q既然是新站那么p增加|站权重Q然而一个新的网站,增加|站权重是一件很隄事,但新的站长不可能在徏站后有很高的权重,q就需要各位站长去优化|站Q如何优化网站?重要的是我们做站?nbsp;
站在q入你网站的用户角度考虑。下面我们来看几?nbsp;
 
  首先Q网站最初徏站时Q首和D的标{ֆ好,标题是非帔R要,如果|站是网名相关的.你可以写标题Q好听的游戏名字|qq个性情侣名字|清新网名||名?|名是一个很大量的词Q最后带上网名吧Q这L户就知道?q个|站是给|民提供各种各样的网名的.所以在|站时就注定了以后的|站l营的内宏V?nbsp;
 
  W二Q每天给|站注入新鲜的血?及时更新Q一个新站在内容斚w很重要,不要老是复制_脓别h的,q是,也要做一些更改,臛_要在标题和内容的W一D做一些更?q有l尾。徏议大家一个新的网站做出来后,站长要老老实实的做前三月的网站更斎ͼ每天定时定量的更新网站,注意是定时定量,当然本hq是很希望大家能?注重原创的好。垃圄׃要做了,没前途的Q?nbsp;
    
    W三 不徏议大家去贴吧发帖子链接上自己的网站信?Q尤其不要用的手D?骗取大家q去你的|站览信息 q样你的帖子一旦被删除 Q会直接影响你的|站权重的哦 
  W四Q友情链接是很关键,外链质量是网站的权重高不高的重要指标Q如何增加网站的外链?。做站后要加几个站长,但只要百度收录正常,友情链接q是能找到的Q那么我q要提醒大家的是 千万不要怿别h说的购买外链来提高自q权重 q个是禁忌哦Q!Q你可能一时得?Q但是这样风险很大,癑ֺ一发现那么你的站就面被K?旉不远了?nbsp;
    W五 关键词要贴近和反应网站的内容Q不要挂头卖狗肉,不要在开始的主页 满页面的堆关键词 q样用户体验不要 q来后找不到实质的内宏V概括来说就是你的网站不做针Ҏ索引擎而非用户的处理以获得不恰当排名,D用户受到ƺ骗?nbsp;
    W六 不要l常更改|站的标题和关键字,q样的话癑ֺ不知道你的站到底定位是什么,所以这是大?nbsp;
  W七 q有 大家的网站要?一个稳定的服务?Q及时查出站内死链,保|站持箋性和E_性,试想如果你访问一个网站 你要{很长时_才能打开|站Q或者一打开是个Q0Q Q5Q0报错 。你会l访问这L|站吗,更不要说癑ֺ来收录你了,q有|站的页面质量,不存在多ơ蟩转、广告与弹窗q多{问?nbsp;
  W八 是做一个网站地图 。让用户能快速找C惌的内容很关键Q保证符合用L搜烦体验 
  
  最后就是希望广大的草根站长?Q要有信心恒心持之以?Q大家要怿只要我们努力坚持。我们的baidu大哥是会l我们回报的Q如果你能坚持以上这些 那么你的|站ȝ度的快速收录已l不q了哦?nbsp;
q有不要亲信|上的h说用什么程序快速收录 Q都是忽悠你的 Q做|站q是需要 恒心和吃苦勤?nbsp;
希望 大家的网站能做好 量高高高 Q!Q?nbsp;
 
  上文是我做站多年的经?奉上我的供参考。本文由Q?span style="font-size: 14px;">http://www.software8.co/wzjs/cxyyg/2967.html 提供Q{载要标明出处Q原创内Ҏ人拥有最l解释权!希望大家能尊重知识 重原创


]]>spring mvc3中的addFlashAttributeҎhttp://m.tkk7.com/jialisoftw/archive/2013/02/19/395407.html飞猪一?/dc:creator>飞猪一?/author>Tue, 19 Feb 2013 06:42:00 GMThttp://m.tkk7.com/jialisoftw/archive/2013/02/19/395407.htmlhttp://m.tkk7.com/jialisoftw/comments/395407.htmlhttp://m.tkk7.com/jialisoftw/archive/2013/02/19/395407.html#Feedback3http://m.tkk7.com/jialisoftw/comments/commentRss/395407.htmlhttp://m.tkk7.com/jialisoftw/services/trackbacks/395407.html记得在spring mvc2中,当保存POJO到数据库?要返回成功页面,如果q个时候要带点信息Q?nbsp;
则要q样Q?nbsp;
Java代码:  
  1.     //W三个参敎ͼUserModel userQ默认ؓl定对象  
  2.     @RequestMapping(value = "/user/save", method = RequestMethod.POST)  
  3.     public ModelAndView saveUser(HttpServletRequest request, HttpServletResponse response,UserModel user) throws Exception {  
  4.         ModelAndView mv = new ModelAndView("/user/save/result");//默认为forward模式  
  5. //      ModelAndView mv = new ModelAndView("redirect:/user/save/result");//redirect模式  
  6.         mv.addObject("message","保存用户成功Q?);  
  7.         return mv;  
  8.     }  
 
 
而在spring mvc 3.1后,可以q样 
Java代码:  
  1. @RequestMapping(value = "/user/save", method = RequestMethod.POST)  
  2. public ModelAndView saveUser(UserModel user, RedirectAttributes redirectAttributes) throws Exception {  
  3.     redirectAttributes.addFlashAttribute("message", "保存用户成功Q?);//使用addFlashAttribute,参数不会出现在url地址栏中  
  4.     return "redirect:/user/save/result";  
  5. }  
 
 
  来个E微完整点的例子Q首先是一个表单,在其中填入一些信息: 
 
Java代码: 
  1. <form:form id="myform" action="saveUserDetails.action" method="POST" commandName="user">  
  2.    <form:input type="text" name="firstName" path="firstName"/>  
  3.    <form:input type="text" name="lastName" path="lastName"/>  
  4.    <form:input type="text" name="email" path="email"/>  
  5.    <input type="submit" value="submit">  
  6. </form:form>  
   
 
   则在controller中,可以q样Q?nbsp;
Java代码:  
  1.        @RequestMapping(value="/saveUserDetails.action", method=RequestMethod.POST)  
  2. public String greetingsAction(@Validated User user,RedirectAttributes redirectAttributes){  
  3.               
  4.                someUserdetailsService.save(user);  
  5.       
  6.                redirectAttributes.addFlashAttribute("firstName", user.getFirstName());  
  7.     redirectAttributes.addFlashAttribute("lastName", user.getLastName())  
  8.     return "redirect:success.html";  
  9. }  
  10.  
  11.  
  12.   success.html: 
  13. <div> 
  14. <h1>Hello ${firstName} ${lastName}. Your details stored in our database.</h1> 
  15. </div><br> 
 
  但如果F5的时候,会发现参C失,因ؓflash scope其实只支持redirect的,所以可以判断下Q?nbsp;
 
Java代码: 
  1. @RequestMapping(value="/success.html", method=RequestMethod.GET)  
  2.     public String successView(HttpServletRequest request){  
  3.         Map<String,?> map = RequestContextUtils.getInputFlashMap(request);   
  4.         if (map!=null)  
  5.            return "success";  
  6.         else return "redirect:someOtherView"; //i出其他提示信息  
    原文地址Q?span style="font-size: 14px;">http://www.software8.co/wzjs/java/2943.html


]]>PHP防SQL注入函数Qmysql_real_escape_stringhttp://m.tkk7.com/jialisoftw/archive/2013/01/24/394692.html飞猪一?/dc:creator>飞猪一?/author>Thu, 24 Jan 2013 04:38:00 GMThttp://m.tkk7.com/jialisoftw/archive/2013/01/24/394692.htmlhttp://m.tkk7.com/jialisoftw/comments/394692.htmlhttp://m.tkk7.com/jialisoftw/archive/2013/01/24/394692.html#Feedback0http://m.tkk7.com/jialisoftw/comments/commentRss/394692.htmlhttp://m.tkk7.com/jialisoftw/services/trackbacks/394692.html我们在用php+mysqlӞ一般情况下都要接受用户输入的数据,q就意味着很大的风险,因ؓ用户可能输入正常数据Q也可能输入恶意的代码。作为developerQ必MD滤用L数据Q来保护我们的网站安全?/span>
    PHP中可以?nbsp;mysql_real_escape_string 函数来过滤非法字W。本函数?nbsp;string 中的Ҏ字符转义Qƈ考虑到连接的当前字符集,因此可以安全用于 mysql_query()?/span>
    mysql_real_escape_string() 函数转义 SQL 语句中用的字符串中的特D字W。下列字W受影响Q?/span>
\x00
\n
\r
\
'
"
\x1a
如果成功Q则该函数返回被转义的字W串。如果失败,则返?nbsp;false?/span>
    飘易利用下面的这个函敎ͼ可以有效过滤了?/span>
function safe($s){ //安全qo函数
if(get_magic_quotes_gpc()){ $s=stripslashes($s); }
$s=mysql_real_escape_string($s);
return $s;
}
    或者在conn公共q接文g里加入,q样无需修改代码了:
if(get_magic_quotes_gpc()) { $_REQUEST = array_map( 'stripslashes', $_REQUEST); }
$_REQUEST = array_map( 'mysql_real_escape_string', $_REQUEST);
    mysql_real_escape_string语法
mysql_real_escape_string(string,connection)
参数 描述
string 必需。规定要转义的字W串?/span>
connection 可选。规?nbsp;MySQL q接。如果未规定Q则使用上一个连接?/span>
    其实Q一般的q可以利用这个函?nbsp;addslashes q行转义。作用同样ؓ对GET、POST、COOKIEq来的字W串q行转义处理Q通常?nbsp;magic_quotes_gpc l合使用?/span>
    下面讲述下addslashes  、magic_quotes_gpc、mysql_real_escape_string 三者之间的区别Q?/span>
    1、addslashes  ?nbsp;mysql_real_escape_stringQ同L作用是经q{义后Q可直接插入数据库, 国内很多PHP coder是用addslashes函数防止SQL注入Q但是徏议大家用后者{义数据?/span>
    举例说明Qaddslashes的问题在于黑客可以用0xbf27来代替单引号Q而addslashes只是?xbf27修改?xbf5c27Q成Z个有效的多字节字W,其中?xbf5c仍会被看作是单引P所以addslashes无法成功拦截?/span>
    两者何时用Qaddslashes也不是毫无用处,它是用于单字节字W串的处理,多字节字W还是用mysql_real_escape_string更加安全?/span>
    2、magic_quotes_gpc的说明,在首ơ客Lq行Ӟ可用W一条的举例Q对 magic_quotes_gpc q行 $_['name'] 判断Q可转义处理?/span>
    3?nbsp;mysql_real_escape_string?nbsp;mysql_escape_string q?个函数的区别Q?/span>
    mysql_real_escape_string 必须?PHP 5以上、PHP 4 >= 4.3.0)版本的情况下才能使用。否则只能用 mysql_escape_string ?/span>
    两者的区别是:mysql_real_escape_string 考虑到连接的当前字符集,?nbsp;mysql_escape_string 不考虑?nbsp;
    4、实际开发中Q正的逻辑处理Q如下:
    首先Q检?nbsp;magic_quotes_gpc 是否配置动{义斜U,若ؓonQ应该调用stripslashesL$_REQUEST?_GET,$_POST?_COOKIE的{义斜U;然后Q查?写入/更新数据至mysqlӞ再用mysql_real_escape_stringq行字符转义?/span>
[参考]Q?/span>
1、讨论magic_quotes_gpc、mysql_real_escape_string、addslashes的区别及用法
http://blog.unvs.cn/archives/magic_quotes_gpc-mysql_real_escape_string-addslashes.html

]]>
վ֩ģ壺 ڵĤѿ| һëƬ**Ѳ| õƵƵ| 91޹˾þþƷ| պƷһůů| ˳ӰԺ밴Ħ| ܲƵ| Ʒר | av벻þ| ƷѾƷ߹ۿ| ޹ƷŮ| ˬˬˬƵ| ޹Ʒվ߲| һƬƵѿ| ˳߹ۿ| Ĺ˾Ʒþ޾ƷA뾫Ʒ | ԭ1769þѲ| þ޹Ʒһ| ԻȫƵ߹ۿ | ޹Ʒ˾Ʒ| 91Ʒѹ| ɬɬɫۺ| СƵ߹ۿ| һëƬaѲɫ| þùƷһ| ˳վ| Ʒר߲| ߹ۿ޾Ʒ| ÿձƬ35| AVŮ18ëƬˮ| ۺAV߲| 18վѹۿ| պɫպƵվ| ŮƷþþ2020| þù׾Ʒѿ| ŷۺϾƷ˵| պձ| վ| ѹۿվ| ޾ƷƵר| va˳Ƶվȫ|