ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>福利网站在线观看,欧美在线影院,777电影在线观看http://www.aygfsteel.com/cherishchen/category/24321.htmlThe art of living is to know when to hold fast and when to let gozh-cnFri, 24 Aug 2007 02:30:49 GMTFri, 24 Aug 2007 02:30:49 GMT60也来写个struts2 CURD的例å­?Move CRUD Operations into the same Actionhttp://www.aygfsteel.com/cherishchen/archive/2007/08/23/138760.html凭栏观æ“v凭栏观æ“vThu, 23 Aug 2007 03:02:00 GMThttp://www.aygfsteel.com/cherishchen/archive/2007/08/23/138760.htmlhttp://www.aygfsteel.com/cherishchen/comments/138760.htmlhttp://www.aygfsteel.com/cherishchen/archive/2007/08/23/138760.html#Feedback0http://www.aygfsteel.com/cherishchen/comments/commentRss/138760.htmlhttp://www.aygfsteel.com/cherishchen/services/trackbacks/138760.html阅读全文

凭栏观æ“v 2007-08-23 11:02 发表评论
]]>
java的数据类型(备用åQ?/title><link>http://www.aygfsteel.com/cherishchen/archive/2007/07/27/132720.html</link><dc:creator>凭栏观æ“v</dc:creator><author>凭栏观æ“v</author><pubDate>Fri, 27 Jul 2007 03:11:00 GMT</pubDate><guid>http://www.aygfsteel.com/cherishchen/archive/2007/07/27/132720.html</guid><wfw:comment>http://www.aygfsteel.com/cherishchen/comments/132720.html</wfw:comment><comments>http://www.aygfsteel.com/cherishchen/archive/2007/07/27/132720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/cherishchen/comments/commentRss/132720.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/cherishchen/services/trackbacks/132720.html</trackback:ping><description><![CDATA[  ¾l“合了前ŒD‰|—¶é—´çœ‹unicode的知识补补基¼‹€<br><br> <ul> <li><strong>byte</strong>: The <code>byte</code> data type is an 8-bit signed two's complement integer. It has a minimum value of -128 and a maximum value of 127 (inclusive). The <code>byte</code> data type can be useful for saving memory in large <a >arrays</a>, where the memory savings actually matters. They can also be used in place of <code>int</code> where their limits help to clarify your code; the fact that a variable's range is limited can serve as a form of documentation. </li> <li><strong>short</strong>: The <code>short</code> data type is a 16-bit signed two's complement integer. It has a minimum value of -32,768 and a maximum value of 32,767 (inclusive). As with <code>byte</code>, the same guidelines apply: you can use a <code>short</code> to save memory in large arrays, in situations where the memory savings actually matters. </li> <li><strong>int</strong>: The <code>int</code> data type is a 32-bit signed two's complement integer. It has a minimum value of -2,147,483,648 and a maximum value of 2,147,483,647 (inclusive). For integral values, this data type is generally the default choice unless there is a reason (like the above) to choose something else. This data type will most likely be large enough for the numbers your program will use, but if you need a wider range of values, use <code>long</code> instead. </li> <li><strong>long</strong>: The <code>long</code> data type is a 64-bit signed two's complement integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807 (inclusive). Use this data type when you need a range of values wider than those provided by <code>int</code>. </li> <li><strong>float</strong>: The <code>float</code> data type is a single-precision 32-bit IEEE 754 floating point. Its range of values is beyond the scope of this discussion, but is specified in section <a >4.2.3</a> of the Java Language Specification. As with the recommendations for <code>byte</code> and <code>short</code>, use a <code>float</code> (instead of <code>double</code>) if you need to save memory in large arrays of floating point numbers. This data type should never be used for precise values, such as currency. For that, you will need to use the <a >java.math.BigDecimal</a> class instead. <a >Numbers and Strings</a> covers <code>BigDecimal</code> and other useful classes provided by the Java platform. </li> <li><strong>double</strong>: The <code>double</code> data type is a double-precision 64-bit IEEE 754 floating point. Its range of values is beyond the scope of this discussion, but is specified in section <a >4.2.3</a> of the Java Language Specification. For decimal values, this data type is generally the default choice. As mentioned above, this data type should never be used for precise values, such as currency. </li> <li><strong>boolean</strong>: The <code>boolean</code> data type has only two possible values: <code>true</code> and <code>false</code>. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined. </li> <li><strong>char</strong>: The <code>char</code> data type is a single 16-bit Unicode character. It has a minimum value of <code>'\u0000'</code> (or 0) and a maximum value of <code>'\uffff'</code> (or 65,535 inclusive). </li> </ul> <p> </p> <table unselectable="on" border="0" cellpadding="2" cellspacing="0" width="828"> <tbody> <tr> <td valign="top" width="173"> <p><strong>¾cÕdž‹åç§°</strong></p> </td> <td valign="top" width="177"><strong>¾cÕdž‹å®šä¹‰</strong></td> <td valign="top" width="474"><strong>¾cÕdž‹å–å€?/strong></td> </tr> <tr> <td valign="top" width="173"><em>boolean</em></td> <td valign="top" width="177">布尔å€?/td> <td valign="top" width="473"><em>true</em>, <em>false</em></td> </tr> <tr> <td valign="top" width="173"><em>byte</em></td> <td valign="top" width="177">8ä½?strong>有符åäh•´æ•?/strong></td> <td valign="top" width="473">最ž®å€?128åQŒæœ€å¤§å€?27</td> </tr> <tr> <td valign="top" width="173"><em>short</em></td> <td valign="top" width="177">16ä½?strong>有符åäh•´æ•?/strong></td> <td valign="top" width="472"> <p>最ž®å€?32768åQ?2<sup>15</sup>åQ‰ï¼Œæœ€å¤§å€?2767åQ?<sup>15</sup>-1åQ?/p> </td> </tr> <tr> <td valign="top" width="173"><em>int</em></td> <td valign="top" width="177">32ä½?strong>有符åäh•´æ•?/strong></td> <td valign="top" width="472">最ž®å€?2147483648åQ?2<sup>31</sup>åQ‰ï¼Œæœ€å¤§å€?147483647åQ?<sup>31</sup>-1åQ?/td> </tr> <tr> <td valign="top" width="173"><em>long</em></td> <td valign="top" width="177">64ä½?strong>有符åäh•´æ•?/strong></td> <td valign="top" width="472"> <p>-2<sup>63</sup>~(2<sup>63</sup>-1)</p> </td> </tr> <tr> <td valign="top" width="173"><em>float</em></td> <td valign="top" width="177">32位æÕQç‚ÒŽ•°</td> <td valign="top" width="472"> <p>1.4E-45~3.4028235E38</p> </td> </tr> <tr> <td valign="top" width="173"><em>double</em></td> <td valign="top" width="177">64位æÕQç‚ÒŽ•°</td> <td valign="top" width="472">4.9E-324~1.7976931348623157E308</td> </tr> <tr> <td valign="top" width="173">char</td> <td valign="top" width="177">16位Unicode字符</td> <td valign="top" width="472"> </td> </tr> <tr> <td valign="top" width="173"> </td> <td valign="top" width="177"> </td> <td valign="top" width="472"> </td> </tr> </tbody> </table> <p> </p> <p> </p> <p> </p> <div id="wmqeeuq" class="ad_in_page"> <script type="text/javascript"><!-- google_ad_client = "pub-7843511305731432"; google_ad_width =" 468; google_ad_height" = 60; google_ad_format =" "468x60_as"; google_ad_type" = "text_image"; //2007-07-22: test google_ad_channel =" "2043099642"; google_color_border" = "ffffff"; google_color_bg =" "ffffff"; google_color_link" = "ffffff"; google_color_text =" "000000"; google_color_url" = "000033"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> </div><img src ="http://www.aygfsteel.com/cherishchen/aggbug/132720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/cherishchen/" target="_blank">凭栏观æ“v</a> 2007-07-27 11:11 <a href="http://www.aygfsteel.com/cherishchen/archive/2007/07/27/132720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate 事务http://www.aygfsteel.com/cherishchen/archive/2007/07/27/132719.html凭栏观æ“v凭栏观æ“vFri, 27 Jul 2007 03:09:00 GMThttp://www.aygfsteel.com/cherishchen/archive/2007/07/27/132719.htmlhttp://www.aygfsteel.com/cherishchen/comments/132719.htmlhttp://www.aygfsteel.com/cherishchen/archive/2007/07/27/132719.html#Feedback0http://www.aygfsteel.com/cherishchen/comments/commentRss/132719.htmlhttp://www.aygfsteel.com/cherishchen/services/trackbacks/132719.htmlHibernate does not lock objects in memory. Your application can expect the behavior as defined by the isolation level of your database transactions.

Note that thanks to the Session, which is also a transaction-scoped cache, Hibernate provides repeatable reads for lookup by identifier and entity queries (not reporting queries that return scalar values).

Hibernate 没有提供在内存中对对象加锁的功能åQŒå› æ­¤åº”用的事务隔离¾U§åˆ«æ˜¯å®Œå…¨ç”±æ•°æ®åº“来提供的ã€?/strong>

借助于sessionåQŒHibernate 提供了可重复è¯Èš„事务隔离¾U§åˆ«åQŒä½†æ˜¯å‰ææ˜¯åªæœ‰ä½¿ç”¨identifier and entity queries的可以,使用标量查询则不可以åQŒå…¶åŽŸå› æ˜¯hibernateçš„cache的对象需要是能够被唯一识别的实体对象,标量查询˜q”回的结果是数组åQŒä¸æ»¡èƒö该要求,无法在session¾U§åˆ«˜q›è¡Œäº‹åŠ¡çš„cache

在事务和òq¶å‘性方面,hibernate不仅提供了基于版本的控制的自动乐观锁机制åQŒåŒæ—¶è¿˜æä¾›äº†API来实现悲观锁机制åQˆé€šè¿‡SELECT FOR UPDATE 语法åQ?/strong>

A SessionFactory is an expensive-to-create, threadsafe object intended to be shared by all application threads. It is created once, usually on application startup, from a Configuration instance.

A Session is an inexpensive, non-threadsafe object that should be used once, for a single request, a conversation, single unit of work, and then discarded. A Session will not obtain a JDBC Connection (or a Datasource) unless it is needed, hence consume no resources until used.

Database transactions are never optional, all communication with a database has to occur inside a transaction, no matter if you read or write data.

事务òq¶ä¸æ˜¯å¯æœ‰å¯æ— çš„åQŒæ‰€æœ‰çš„æ•°æ®åº“操作都是在事务环境下发生的åQ?strong>不管是read 操作˜q˜æ˜¯write操作。这点一定要名明¼‹®ï¼Œä»¥å‰æ›„¡»è¯¯è§£ã€?

As explained, auto-commit behavior for reading data should be avoided, as many small transactions are unlikely to perform better than one clearly defined unit of work. The latter is also much more maintainable and extensible.

æœ€å¥½å…³é—­è‡ªåŠ¨æäº¤åŠŸèƒ½ï¼Œå› äØ“ä½¿ç”¨å¤§é‡çš„çŸ­æ•°æ®åº“äº‹åŠ¡åœ¨æ€§èƒ½ä¸Šæœªå¿…æ¯”ä¸€ä¸ªæ¸…æ™°å®šä¹‰çš„unit work强,后者更加易于维护和扩展。(以前曄¡»è¯¯è§£åQ?

 

乐观锁的处理方式

Hibernate checks instance versions at flush time, throwing an exception if concurrent modification is detected.It's up to the developer to catch and handle this exception (common options are the opportunity for the user to merge changes or to restart the business conversation with non-stale data).

在flush的时候检查versionåQŒå¦‚果发现更改会抛出异常åQŒå¼€å‘äh员可以捕捉该异常åQŒåƈ军_®šå¦‚何处理åQˆè¦ä¹ˆåˆòq¶ä¿®æ”¹ï¼Œè¦ä¹ˆæ”‘Ö¼ƒä¿®æ”¹åQ?

悲观锁的处理方式

悲观锁基本上是靠数据库本íw«æä¾›çš„æœºåˆ¶æ¥å®žçŽŽÍ¼Œé€šå¸¸åªè¦ä¸ºjdbc connection指定事务隔离的çñ”别即可。The LockMode class defines the different lock levels that may be acquired by Hibernate.

悲观锁会在读取数据之前获取,因此能够保证当前事务的数据就是最新数据�

 

hibernate的查询分¾c»ï¼š

1、标量查询(Scalar queriesåQ‰ï¼š˜q”回的记录数¾l„的集合

标量是与数组相对的概念,是一¿Uç”±å•一的值来表征的量。所谓标量查询,ž®±æ˜¯ç›´æŽ¥ä½¿ç”¨åŽŸç”Ÿsql语句的查询,也即˜q”回的是裸数据(只不˜q‡hibernate使用ResultSetMetaDataž®†resultset中的每一条记录放åˆîC¸€ä¸ªæ•°¾l„Object[]ä¸?/code>åQ‰ã€?/p>

比如

List list = session.createSQLQuery("select * from t_area_person").list();

for (Object object : list) {
            Object[] ob = (Object[]) object;
            for (int i = 0; i < ob.length; i++)
                System.out.print("  " +ob[i]);
            System.out.println();
        }

 

2、实体查è¯?Entity queries)åQšè¿”回的是实体对象的集合

3、Loadæ–ÒŽ³•åQšlookup by identifier åQŒè¿”回的是该identifier 对应的对è±?/strong>



]]>
java语言中的bit ¿UÖM½æ“ä½œhttp://www.aygfsteel.com/cherishchen/archive/2007/07/27/132717.html凭栏观æ“v凭栏观æ“vFri, 27 Jul 2007 03:08:00 GMThttp://www.aygfsteel.com/cherishchen/archive/2007/07/27/132717.htmlhttp://www.aygfsteel.com/cherishchen/comments/132717.htmlhttp://www.aygfsteel.com/cherishchen/archive/2007/07/27/132717.html#Feedback0http://www.aygfsteel.com/cherishchen/comments/commentRss/132717.htmlhttp://www.aygfsteel.com/cherishchen/services/trackbacks/132717.html
 

java 位操作符åQ?/strong>

取反åQ?/strong>~x
- flips each bit to the opposite value.

与操作:AND

x & y
- AND operation between the corresponding bits in x and y.

或操作:OR
x | y
- OR operation between the corresponding bits in x and y.

异或操作åQšXOR
x ^ y
- XOR operation between the corresponding bits in x and y.

左移操作åQšShift left
x << y
- shifts x to the left by y bits. The high order bits are lost while zeros fill the right bits.

ž®†x左移y位,¿UÕdЍ˜q‡ç¨‹ä¸­ï¼Œé«˜ä½ä¼šä¸¢å¤?

有符åäh•°å³ç§»æ“ä½œåQšShift Right - Signed
x >> y
- shifts x to the right by y bits. The low order bits are lost while the sign bit value (0 for positive numbers, 1 for negative) fills in the left bits.

无符åäh•°å³ç§»åQšShift Right - Unsigned
x >>> y
- shifts x to the right by y bits. The low order bits are lost while zeros fill in the left bits regardless of the sign.

例子åQ?/strong>

下面的例子显½Cºå¦‚何将一个int数组通过¿UÖM½æ“ä½œåŽ‹ç¾ƒåˆîC¸€ä¸ªint内保存,其原理是在java语言中,int¾cÕdž‹ä½¿ç”¨4 bytes来保存,因此对于需要压¾~©çš„int数组åQŒå…¶ä¸­çš„æ¯ä¸€ä¸ªint值的大小不能­‘…过255åQ?çš?‹Æ¡æ–¹-1åQ‰ï¼Œå› æ­¤˜q™åªæ˜¯ä¸€ä¸ªå®žä¾‹ï¼š

  int [] aRGB = {0x56, 0x78, 0x9A, 0xBC};   // æ˜¯ç”¨16˜q›åˆ¶ä¿å­˜çš?¿Ué¢œè‰²å€?br>  int color_val = aRGB[3];   
  color_val = color_val | (aRGB[2] << 8);  // ä¸ÞZº†åŽ‹ç¾ƒåQŒéœ€è¦æ”¾¾|®åˆ°color_val值的½W¬äºŒä¸ªå­—节位¾|®ä¸ŠåQšå°†aRGB[2] å·¦ç§»åˆ°ç¬¬äºŒä¸ªbyteåQŒåŒæ—¶ä¸Žcolor_val˜q›è¡Œæˆ–操作,下面同理
  color_val = color_val | (aRGB[1] << 16);  
  color_val = color_val | (aRBG[0] << 24);

操作完的¾l“æžœæ˜?6 78 9A BC

如果要从colorVal ˜q˜åŽŸä¸ºint数组åQŒæˆ–者得到数¾l„中的某个å€û|¼Œåªéœ€è¦å¯¹colorVal ˜q›è¡Œç›¸åº”的右¿UÀL“ä½œå³å¯ï¼š

  int alpha_val = (colorVal >>> 24) & 0xFF;
  int red_val   = (colorVal >>> 16) & 0xFF;
  int green_val = (colorVal >>>  8) & 0xFF;
  int blue_val  =  colorVal & 0xFF;

参考资料:

Bits in Java



]]>
事务相关资料http://www.aygfsteel.com/cherishchen/archive/2007/07/26/132554.html凭栏观æ“v凭栏观æ“vThu, 26 Jul 2007 07:07:00 GMThttp://www.aygfsteel.com/cherishchen/archive/2007/07/26/132554.htmlhttp://www.aygfsteel.com/cherishchen/comments/132554.htmlhttp://www.aygfsteel.com/cherishchen/archive/2007/07/26/132554.html#Feedback0http://www.aygfsteel.com/cherishchen/comments/commentRss/132554.htmlhttp://www.aygfsteel.com/cherishchen/services/trackbacks/132554.htmlACID (原子性、一致性、孤立性和持久æ€?åQ?

 

事务¾U§åˆ«åQ?

1>.READ UNCOMMITTED    效率é«?但可能会有脏数据(修改数据时不排他è¯?;

2>.READ COMMITTED       避免了脏数据(修改数据时排他读);

3>. REPEATABLE READ      å¯ÒŽ»¡­‘Ïx¡ä»¶çš„æ•°æ®è¡Œé›†˜q›è¡Œé”å®šåQŒä¸å…è®¸å…¶ä»–事务修改和删é™?

4>.SERIALABLE READ       最高çñ”åˆ?¼›æ­¢å¯?数据行集甚至整个数据表)插入åQŒå› æ­¤èƒ½å¤Ÿé˜²æ­¢å‰òå½Þp¯»çš„发ç”?

 

常用的事务属性:

1>.Required å¿…é¡»˜qè¡Œåœ¨äº‹åС䏭,没有现成的就新徏一ä¸?

2>.RequiresNew 指明每次˜qè¡Œéƒ½å¿…™åÀL–°å»ÞZ¸€ä¸ªäº‹åŠ?

3>.Supports 如目前正处于事务中的话就加入åˆîCº‹åС䏭åŽ?没有ž®Þq®—äº?

4>.Mandatory 必须有一个事务正在运行让其加�否则抛出异常;

5>.NotSupported 不需要运行于ä»ÖM½•事务ä¸?

6>.Never 不但不会˜qè¡ŒäºŽä“Q何事务中,如果发现˜qè¡Œåœ¨äº‹åŠ¡ä¸­ä¼šæŠ›å‡ºå¼‚å¸¸ã€?/p>

]]>
Jakarta Commons Lang 功能http://www.aygfsteel.com/cherishchen/archive/2007/07/26/132492.html凭栏观æ“v凭栏观æ“vThu, 26 Jul 2007 04:14:00 GMThttp://www.aygfsteel.com/cherishchen/archive/2007/07/26/132492.htmlhttp://www.aygfsteel.com/cherishchen/comments/132492.htmlhttp://www.aygfsteel.com/cherishchen/archive/2007/07/26/132492.html#Feedback1http://www.aygfsteel.com/cherishchen/comments/commentRss/132492.htmlhttp://www.aygfsteel.com/cherishchen/services/trackbacks/132492.html

今天看到Jakarta Commons LangåQŒå‘现提供了很多有用的功èƒ?记录下来åQŒç•™å¾…以后查é˜?/p>

The Commons Lang library provides much needed additions to the standard JDK's java.lang package. Very generic, very reusable components for everyday use.

lang.*

String manipulation -StringUtils, StringEscapeUtils, RandomStringUtils, Tokenizer, WordUtils

StringEscapeUtils contains methods to escape and unescape Java, JavaScript, HTML, XML and SQL.

RandomStringUtils speaks for itself. It's provides ways in which to generate pieces of text, such as might be used for default passwords.

Character handling - CharSetUtils, CharSet, CharRange, CharUtils

CharUtils exists for this purpose, while CharSetUtils exists for set-manipulation of Strings.Be careful, although CharSetUtils takes an argument of type String, it is only as a set of characters. For example, CharSetUtils.delete("testtest", "tr") will remove all t's and all r's from the String, not just the String "tr".

JVM interaction - SystemUtils, CharEncoding

SystemUtils is a simple little class which makes it easy to find out information about which platform you are on�/p>

The CharEncoding class is also used to interact with the Java environment and may be used to see which character encodings are supported in a particular environment.

Serialization - SerializationUtils, SerializationException

 

Assorted functions - ObjectUtils, ClassUtils, ArrayUtils, BooleanUtils

ClassUtils is largely a set of helper methods for reflection. Of special note are the comparators hidden away in ClassUtils, useful for sorting Class and Package objects by name�/p>

ArrayUtils. This is a big one with many methods and many overloads of these methods so it is probably worth an in depth look here. Before we begin, assume that every method mentioned is overloaded for all the primitives and for Object. Also, the short-hand 'xxx' implies a generic primitive type, but usually also includes Object.

Flotsam - BitField, Validate

On reaching the end of our package, we are left with a couple of classes that haven't fit any of the topics so far.

The BitField class provides a wrapper class around the classic bitmask integer, whilst the Validate class may be used for assertions

lang.builder.*

HashCodeBuilder will save your day. It, and its buddies (EqualsBuilder, CompareToBuilder, ToStringBuilder), take care of the nasty bits while you focus on the important bits, like which fields will go into making up the hashcode.

帮助提供equals、compare、toStringæ–ÒŽ³•

lang.enums.* (formerly lang.enum)

lang.exception.*

lang.math.*

These include classes to represent ranges of numbers, a Fraction class, various utilities for random numbers, and the flagship class, NumberUtils which contains a handful of classic number functions.

lang.mutable.*

mutable package provides mutable wrappers for primitive values (such as int, long, etc.) and Object. These wrappers are simiar to the wrappers provided by the Java API, but allow the wrapped value to be changed without needing to create a separate wrapper object.

lang.text.*

It provides, amongst other classes, a replacement for StringBuffer named StrBuilder, a class for substituting variables within a String named StrSubstitutor and a replacement for StringTokenizer named StrTokenizer. While somewhat ungainly, the Str prefix has been used to ensure we don't clash with any current or future standard Java classes.

lang.time.*

These include a StopWatch for simple performance measurements and an optimised FastDateFormat class.



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ½­´ïÏØ| ͨÐíÏØ| ¸Õ²ìÏØ| ¼ªÊ×ÊÐ| ÎÚÀ¼²ì²¼ÊÐ| ÖÓÉ½ÏØ| ³þÐÛÊÐ| ɳÑóÏØ| ľÀï| ²ýÀÖÏØ| ¿ª½­ÏØ| ¼ÎÐËÊÐ| º£ÄÏÊ¡| ÄÉÓºÏØ| ºÎ÷ÊÐ| Íâ»ã| Íû¶¼ÏØ| ׿×ÊÏØ| °¢¿ËÌÕÏØ| »ôÇñÏØ| ÆÕÀ¼µêÊÐ| ÎÚÉóÆì| ÌÒÔ°ÏØ| ¼ÎÀèÏØ| ƽÀÖÏØ| ¹âÉ½ÏØ| ºá·åÏØ| ¬ÁúÏØ| Æ¤É½ÏØ| ÁÙÒØÏØ| °¢À­ÉÆÃË| ±±º£ÊÐ| ÈðÀöÊÐ| ×ÛÒÕ| Á鱦ÊÐ| Ï°Ë®ÏØ| Ð˳ÇÊÐ| ÏÌ·áÏØ| º×·åÏØ| ºéÑÅÏØ| ÎäÍþÊÐ|