Effective Java¶ÁÊé±Ê¼Ç
package chape8;
import java.math.BigDecimal;
/**
* 8-48
* Èç¹ûÏëÒªÖªµÀ¾«È·µÄ´ð°¸£¬¾ÍÒª±ÜÃâʹÓÃdoubleºÍfloat
¶ÔÓÚ½ðÈÚÐÐÒµÀ´Ëµ£¬¶ÔÊý¾ÝµÄÑÏÕûÐÔÒªÇóÊǺܸߵ쬲»ÈݰëµãÂí»¢£¬
ÄÇ´ó¼Ò¶¼ÖªµÀÔÙÎÒÃǵÄJavaÓïÑÔÀïÃæÓÐÁ½¸ö¸¡µãÊýÀàÐ͵ıäÁ¿floatºÍdouble£¬
¿ÉÄÜ´ó¼Ò»áÈÏΪËûÃǵľ«¶È¶ÔÓÚ½ðÈÚÐÐÒµÕâÑù¶ÔÊý×ÖÃô¸ÐµÄÐÐÒµÀ´Ëµ£¬ÒѾ¹»ÓÃÁË£¬
µ«ÊÇÔÚ¿ª·¢µ±ÖУ¬ÎÒÃÇÒª¾¡Á¿ÉÙʹÓÃdoubleºÍfloat£¬ÒòΪÈÃËûÃǾ«È·µÄ±í´ï0.1ÊDz»¿ÉÄܵġ£
ÄÇÎÒÃÇÈçºÎ½â¾öÕâ¸öÎÊÌâÄØ£¬
´ð°¸ÊÇʹÓÃBigDecimal,int»òÕßlong½øÐлõ±Ò¼ÆËã¡£
ÔÚÕâÀï¶Ô´ó¼ÒµÄÖÒ¸æÊÇ£º
floatºÍdouble ÀàÐÍÓÈÆä²»ÊʺÏÓÃÓÚ»õ±Ò¼ÆË㣻ÒòΪÈÃÒ»¸öfloat»òÕßdouble
¾«È·µØ±íʾ0.1»òÕß10µÄÈÎºÎÆäËû¸ºÊý´Î·½Öµ£¬¶¼ÊDz»¿ÉÄܵģ»
* @author lee
*
*/
public class Chape48 {
/**
* @param args
*/
public static void main(String[] args) {
/**
* À´¿´Ò»¸öÀý×Ó
* Äã¿Ú´üÀïÓÐ1ÃÀÔª£¨100ÃÀ·Ö£©£¬Äã´òËãÂòÌÇ£¬Ìǵļ۸ñΪ10ÃÀ·Ö20ÃÀ·Ö
* 30ÃÀ·ÖµÈµÈ Ò»Ö±µ½1ÃÀ·Ö Äã´òËã´Ó10ÃÀ·ÖµÄ¿ªÊ¼Âò£¬Ã¿ÖÖ¼Û¸ñÖ»ÂòÒ»¸ö
* ÄÇÄãÄÜÂò¼¸¸öÌÇÄØ£¿ÄÜÕһضàÉÙÄØ£¿
*/
/* double sum = 1;
int count = 0 ;
for(double x = .10;x<sum;x+=.10)
{
sum-=x;
count++;
}
System.out.println(sum);
System.out.println(count);*/
/**
* Êä³ö½á¹ûÊÇ
* 0.3999999999999999ºÍ3
* ÎÒÃÇÓÃÊÖËãһϠ100-10-20-30=40
* ÄǾÍÊÇ˵ÎÒÃÇ»¹¿ÉÒÔÂòÒ»¸ö.40µÄÌÇ ÄÇô³ÌÐòÄÇÀï´íÁË£¿
* ´íÎó¾ÍÔÚÓÚÎÒÃÇÓÃÁËdouble
* ½â¾ö°ì·¨¾ÍÊÇÓÃBigDecimal »òÕßint »òÕßlong ½øÐлõ±ÒµÄ¼ÆËã
*/
BigDecimal sum1 = new BigDecimal("1");
BigDecimal price = new BigDecimal(".10");
int count1 = 0 ;
for(BigDecimal b = price;sum1.compareTo(b) >=0 ;b=b.add(price))
{
sum1 = sum1.subtract(b);
count1++;
}
System.out.println(sum1);
System.out.println(count1);
/**
* Êä³ö½á¹û0.00ºÍ4 ÕâÑù¾ÍÕýÈ·ÁË
* ¹ØÓÚBigDecimalµÄ·½·¨ÎÒÃÇÏÂÈ¥ÔÙ×Ðϸ¿´¿´£»
* ÕâÀïҪ˵µÄÊÇBigDecimalÊÇÒýÓÃÊý¾ÝÀàÐÍ
*/
/**
* ×ܶøÑÔÖ®£º ¶ÔÓÚÈκÎÒª¾«È·´ð°¸µÄ¼ÆËãÈÎÎñ£¬Çë²»ÒªÓÃdoubleºÍfloat£¬Èç¹ûÄãÏë
* ¼ÆËãÊ®½øÖÆÐ¡Êýµã£¬²¢ÇÒ²»½éÒâ·Ç»ù±¾ÀàÐÍ´øÀ´µÄ²»±ã£¬ÄǾÍÓÃBigDecimal£»Ê¹ÓÃ
* BigDecimal»¹Óиö¶îÍâµÄºÃ´¦¾ÍÊÇËûÔÊÐíÄãÍêÈ«¿ØÖÆÉáÈ룬ÿµ±Ò»¸ö²Ù×÷Éæ¼°
Ïà¹ØÎĵµ£º
ArrayList ºÍVectorÊDzÉÓÃÊý×鷽ʽ´æ´¢Êý¾Ý£¬´ËÊý×éÔªËØÊý´óÓÚʵ¼Ê´æ´¢µÄÊý¾ÝÒÔ±ãÔö¼ÓºÍ²åÈëÔªËØ£¬¶¼ÔÊÐíÖ±½ÓÐòºÅË÷ÒýÔªËØ£¬µ«ÊDzåÈëÊý¾ÝÒªÉè¼Æµ½Êý×éÔªËØÒÆ¶¯µÈÄÚ´æ²Ù×÷£¬ËùÒÔË÷ÒýÊý¾Ý¿ì²åÈëÊý¾ÝÂý£¬VectorÓÉÓÚʹÓÃÁËsynchronized·½·¨£¨Ḭ̈߳²È«£©ËùÒÔÐÔÄÜÉϱÈArrayListÒª²î£¬LinkedListʹÓÃË«ÏòÁ´±íʵÏÖ´æ´¢£¬°´Ðòº ......
Îļþ´ò¿ªÊ±ºòÊÇͨ¹ýÎļþÍ·À´È·¶¨ÎļþµÄ±àÂë
StreamReader sr=new StreamReader(@"F:\cym\temp\1.txt");
sr.CurrentEncoding //·µ»Ø±àÂë
ÊÀ½çÉϵĸ÷µØÇø¶¼Óб¾µØµÄÓïÑÔ¡£µØÇø²îÒìÖ±½Óµ¼ÖÂÁËÓïÑÔ»·¾³µÄ²îÒì¡£ÔÚ¿ª·¢Ò»¸ö¹ú¼Ê»¯³ÌÐòµÄ¹ý³ÌÖУ¬´¦ÀíÓïÑÔÎ ......
Java™ ±¾»ú½Ó¿Ú£¨Java Native Interface£¬JNI£©ÊÇÒ»¸ö±ê×¼µÄ Java API£¬ËüÖ§³Ö½« Java ´úÂëÓëʹÓÃÆäËû±à³ÌÓïÑÔ±àдµÄ´úÂëÏ༯³É¡£Èç¹ûÄúÏ£ÍûÀûÓÃÒÑÓеĴúÂë×ÊÔ´£¬ÄÇô¿ÉÒÔʹÓà JNI ×÷ΪÄú¹¤¾ß°üÖеĹؼü×é¼þ —— ±ÈÈçÔÚÃæÏò·þÎñ¼Ü¹¹£¨SOA£©ºÍ»ùÓÚÔÆµÄϵͳÖС£µ«ÊÇ£¬Èç¹ûÔÚʹÓÃʱδעÒâijЩÊÂÏÔò ......
package chape7;
/**
* 檢²é參數µÄÓÐЧÐÔ
* 當編寫·½·¨»òÕß構ÔìÆ÷時£¬應該¿¼慮ËûµÄ參數ÓÐʲ÷áÏÞÖÆ 應該°É這ЩÏÞÖÆ寫ÔÚÎÄ檔ÖУ¬並ÇÒÔÚ這個·½·¨µÄ開頭 ......
package chape8;
/**
* µÚ8ÕÂ
* µÚ46條£º
* for-eachÑ環優ÏÈÓÚforÑ環
* for(Element e : c)
* {
* dosomthing(e);
* }
* Õâ¸öÊÇjava1.5ÒÔÉϵİ汾µÄforÑ»·µÄÊ×ÏÈ¿¼ÂǵÄд·¨
* ÒÔÏÂÊÇjava1.5ÒÔǰµÄ寫·¨
* for (Iterator it = c.iterator();it.hasNext();)
{ ......