??xml version="1.0" encoding="utf-8" standalone="yes"?>久久99免费视频,亚洲精品久久久久久久久久久久久 ,91精品综合久久久久久http://www.aygfsteel.com/bomberlhl/zh-cnFri, 20 Jun 2025 00:25:53 GMTFri, 20 Jun 2025 00:25:53 GMT60【{】用synchronizedq行JavaU程同步 http://www.aygfsteel.com/bomberlhl/archive/2009/12/14/305941.html异域浪异域浪Mon, 14 Dec 2009 11:33:00 GMThttp://www.aygfsteel.com/bomberlhl/archive/2009/12/14/305941.htmlhttp://www.aygfsteel.com/bomberlhl/comments/305941.htmlhttp://www.aygfsteel.com/bomberlhl/archive/2009/12/14/305941.html#Feedback0http://www.aygfsteel.com/bomberlhl/comments/commentRss/305941.htmlhttp://www.aygfsteel.com/bomberlhl/services/trackbacks/305941.html Z么需要线E同步呢Q?br /> 我们举一个最单的例子来说明ؓ什么需要线E同步?br /> 比如有一本书Q有且只有一本)Q交l多个售货员同时dQ?br /> 如果其中M一个售货员把这本书l卖了,其他售货员就不能再卖q本书了?br /> 现实生活中,如果要保证该书不会被多个售货员同时卖掉,必须要有一U机制来保证Q?br /> 比如Q售货员应该拿到该书之后才能开始卖书,暂时拿不到的话就只能{该书被退回柜台?br />
售书的完整的例子可以参? 范例解说Java里的U程概念与线E同步技?/a> 一?br />
q里Q每一个售货员售书可以看作一个线E。欲售的书便是各U程需要共享的资源?br /> 开始售书之前,需要取得该书(资源Q,取不到情况下{待Q?strong>资源取得
开始售书之后,则需要取得对该书的独享控Ӟ不让他h拿到该书Q:资源加锁
售完书时Q需要通知柜台该书已售出;或者未售出Ӟ把书退回柜収ͼ通知他h可以拿到该书Q:资源解锁

synchronized控制U程同步的概念跟此完全一栗?br /> Java里可以用synchronized来同步代码块或者方法?br /> 同步代码块例Q?br />

可以同步代码块?br />
synchronized (obj) 表示若多个线E同时访问时Q只让其中一个线E最先取得obj对象q对其加锁,其它U程则阻塞直到取得obj对象的线E执行完代码块,此时被加锁的obj对象得到释放Q解锁)Q其它线E得到通知取得该book对象l箋执行?br /> 很多情况下,可以使用synchronized (this){...}来同步代码块。但需要注意的是,使用this作ؓ同步对象的话Q如果同一个类中存在多个synchronized (this){...}代码块,其中M一个synchronized(this)代码块处于被执行状态,则其它线E对其他synchronized(this)代码块的讉K也会受到d?br /> Z说明q个问题Q我们D例说明:

HelloSynchronized.java
  1. publicclass HelloSynchronized {   
  2. publicstaticvoid main(String[] args) {   
  3. //
  4.         HelloSynchronized helloSynchronized = new HelloSynchronized();   
  5. //创徏2个线Et1, t2Q分别调用HelloSynchronized helloSynchronized?个方法method1Q与method2
  6.         Thread t1 = new Thread(new HelloSynchronizedRunnalbe(helloSynchronized, "method1"), "t1");   
  7.         Thread t2 = new Thread(new HelloSynchronizedRunnalbe(helloSynchronized, "method2"), "t2");   
  8.         t1.start();   
  9.         t2.start();   
  10.     }   
  11. //synchronized public void method1() {    //同步Ҏ
  12. publicvoid method1() {   
  13. synchronized (this) {    //同步?
  14.             System.out.println(Thread.currentThread().getName()
  15.                     + " enter method1");   
  16. try {
  17.                 Thread.sleep(3000);   
  18.             } catch (InterruptedException e) {
  19. // do nothing
  20.             }   
  21.             System.out.println(Thread.currentThread().getName()
  22.                     + " exit method1");   
  23.         }   
  24.     }   
  25. //synchronized public void method2() {    //同步Ҏ
  26. publicvoid method2() {   
  27. synchronized (this) {    //同步?
  28.             System.out.println(Thread.currentThread().getName()
  29.                     + " enter method2");   
  30. try {
  31.                 Thread.sleep(3000);   
  32.             } catch (InterruptedException e) {
  33. // do nothing
  34.             }   
  35.             System.out.println(Thread.currentThread().getName()
  36.                     + " exit method2");   
  37.         }   
  38.     }   
  39. }   
  40. class HelloSynchronizedRunnalbe implements Runnable {   
  41. private HelloSynchronized helloSynchronized;
  42. private String methodName;   
  43. public HelloSynchronizedRunnalbe(HelloSynchronized helloSynchronized, String methodName) {
  44. this.helloSynchronized = helloSynchronized;
  45. this.methodName = methodName;   
  46.     }   
  47. publicvoid run() {   
  48. if (methodName.equals("method1")) {   
  49.             helloSynchronized.method1();   
  50.         } elseif (methodName.equals("method2")) {   
  51.             helloSynchronized.method2();   
  52.         }   
  53.     }   
  54. }  


q行l果?
t1 enter method1
t1 exit method1
t2 enter method2
t2 exit method2
{到U程t1l束后,t2才开始运行(t2受到dQ?br />
再把synchronized (this)LQ运行结果ؓQ?br />
t1 enter method1
t2 enter method2
t1 exit method1
t2 exit method2
U程t1Qt2同时q行

同步Ҏ例:
  1. synchronizedprivatevoid sellBook(Book book) {   
  2. ...   
  3. }  

q种Ҏ其实相当?br />
  1. privatevoid sellBook(Book book) {   
  2. synchronized(this) {   
  3.         ...   
  4.     }   
  5. }  

׃默认采用this作ؓ同步对象Q所以当一个类中有多个synchronizedҎӞ同样会存在以上问题:卛_果有一个线E访问其中某个synchronizedҎӞ直到该方法执行完毕,其它U程对其它synchronizedҎ的访问也受到阻塞?br /> 大家可以把上面的例子E加攚w,L代码中的synchronized (this)Q改为synchronized public void method1()Qsynchronized public void method2()同步形式Q运行后会得到同L果?br />
多同步代码块synchronized(this){...}的多U程d问题Q包括synchronized同步ҎQ,在ƈ发处理的pȝ中(比如WEB服务器)会严重媄响性能Q徏议慎重用。可以用synchronized(obj){...}~小同步资源对象的范围来解决q个问题?

异域浪 2009-12-14 19:33 发表评论
]]>
【{】范例解说Java里的U程概念与线E同步技? http://www.aygfsteel.com/bomberlhl/archive/2009/12/14/305940.html异域浪异域浪Mon, 14 Dec 2009 11:29:00 GMThttp://www.aygfsteel.com/bomberlhl/archive/2009/12/14/305940.htmlhttp://www.aygfsteel.com/bomberlhl/comments/305940.htmlhttp://www.aygfsteel.com/bomberlhl/archive/2009/12/14/305940.html#Feedback0http://www.aygfsteel.com/bomberlhl/comments/commentRss/305940.htmlhttp://www.aygfsteel.com/bomberlhl/services/trackbacks/305940.html 每个U程都有一个优先Q高优先U线E的执行优先于低优先U线E?br /> q程不同的是Q由同名cȝ成的多个U程׃n相同的内存空间和pȝ资源?br />
U程与进E的区别Q?/strong>
一个线E是一个程序内部的序控制?br /> 1. q程Q每个进E都有独立的代码和数据空_q程上下文) Q进E切换的开销大。线E:同一cȝE共享代码和数据I间Q每个线E有独立的运行栈和程序计数器QPCQ,U程切换的开销?br /> 2. 一个进E中可以包含多个U程?br />
本文介l以下线E方面的知识Q?/strong>
1Q线E的创徏
2Q线E的状?br /> 3Q线E同?br /> 4Q线E组

理解U程的最有效的方法是通过实例来理解。下面我们将通过 售货员售?ZQ由入深地介绍U程的创建,通信Q锁机制{概c?br />
售货员售?br /> 我们假设一下售货员售书的操作流E:
1Q我们假设有20本书Q交l?个售货员d?br /> 2Q售货员可以卖掉M一本尚未卖出去的书。换句话_同一本书若被其中一位售出去了,则不能被另外一位再售出了?/span>

清单1Q?/strong>
文g?/th>说明
Book.java 书籍c?/td>
SellBookRunnable.java 售书c,U程的创建方法之一Q该cdCRunnable 接口Qƈ实现?run Ҏ?/td>
SellBookThread.java 售书c,U程的创建方法之一Q该cd明ؓ Thread 的子c,q?Thread cȝ run Ҏ?/td>
CallSellBook.java 调用cR该cd别介l了2U不同线E创建的调用Ҏ?/td>

Book.java
  1. publicclass Book {   
  2. private String name;
  3. privateboolean sold = false;   
  4. public Book(String name) {   
  5. this.name = name;
  6.     }   
  7. public String getName() {
  8. return name;
  9.     }   
  10. publicvoid setName(String name) {   
  11. this.name = name;   
  12.     }   
  13. publicboolean isSold() {   
  14. return sold;
  15.     }   
  16. publicvoid setSold(boolean sold) {   
  17. this.sold = sold;   
  18.     }   
  19. }  



SellBookRunnable.javatil.List;
  1. publicclass SellBookRunnable implements Runnable {   
  2. private String saleMan;
  3. private List<Book> bookList;
  4. public SellBookRunnable(String saleMan, List<Book> bookList) {
  5. this.saleMan = saleMan;   
  6. this.bookList = bookList;   
  7.     }   
  8. publicvoid run() {   
  9. for (int i = 0; i < bookList.size(); i++) {
  10.             Book book = bookList.get(i);   
  11.             sellBook(book);   
  12.         }   
  13.     }   
  14. /**  
  15.      * 售货员卖书。我们这hq售货员的卖书过E? 
  16.      *   
  17.      * @param book Book  
  18.      */
  19. privatevoid sellBook(Book book) {   
  20. //从开始售?到售书完成,使用synchronized (book)保证book不被其他售货员售?
  21. synchronized (book) {
  22. if (book.isSold()) {   
  23. return;
  24.             } else {
  25. try {
  26. //Z让各U程有执行机会,讄q_售书旉?.5U?
  27.                     Thread.sleep(500);   
  28.                 } catch (Exception e) {   
  29.                 }   
  30. //讄已售标志
  31.                 book.setSold(true);   
  32. //打印该书已售信息
  33.                 System.out.println("[" + saleMan + "]" + book.getName() + " sold out:"
  34.                         + book.isSold() + ". by "
  35.                         + Thread.currentThread().getName());
  36.             }   
  37.         }   
  38.     }   
  39. }  



SellBookThread.java

  1. import java.util.List;
  2. publicclass SellBookThread extends Thread {   
  3. private String saleMan;
  4. private List<Book> bookList;
  5. public SellBookThread(String saleMan, List<Book> bookList) {
  6. this.saleMan = saleMan;   
  7. this.bookList = bookList;   
  8.     }   
  9. publicvoid run() {   
  10. for (int i = 0; i < bookList.size(); i++) {
  11.             Book book = bookList.get(i);   
  12.             sellBook(book);   
  13.         }   
  14.     }   
  15. /**  
  16.      * 售货员卖书。我们这hq售货员的卖书过E? 
  17.      *   
  18.      * @param book Book  
  19.      */
  20. privatevoid sellBook(Book book) {   
  21. //从开始售?到售书完成,使用synchronized (book)保证book不被其他售货员售?
  22. synchronized (book) {
  23. if (book.isSold()) {   
  24. return;
  25.             } else {
  26. try {
  27. //Z让各U程有执行机会,讄q_售书旉?.5U?
  28.                     Thread.sleep(500);   
  29.                 } catch (Exception e) {   
  30.                 }   
  31. //讄已售标志
  32.                 book.setSold(true);   
  33. //打印该书已售信息
  34.                 System.out.println("[" + saleMan + "]" + book.getName() + " sold out:"
  35.                         + book.isSold() + ". by "
  36.                         + Thread.currentThread().getName());
  37.             }   
  38.         }   
  39.     }   
  40. }  



CallSellBook.java

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. //该类调用SellBookXxxc?
  4. publicclass CallSellBook {   
  5. /**  
  6.      * 用线E模拟这个售书的q程  
  7.      */
  8. publicstaticvoid main(String[] args) {   
  9. //Ҏ1Q?
  10.         callSellBookThread();   
  11. //or
  12. //Ҏ2Q?
  13. //callSellBookRunnable();
  14.     }   
  15. //调用SellBookRunnableQRunnable接口实现c)模拟售书q程
  16. publicstaticvoid callSellBookThread() {   
  17.         List <Book>bookList = getBookListForSale();
  18. //预售书c清单交l售货员SaleMan1
  19.         Thread t1 = new SellBookThread("SaleMan1", bookList);   
  20. //预售书c清单交l售货员SaleMan2
  21.         Thread t2 = new SellBookThread("SaleMan2", bookList);   
  22. //售货员SaleMan1开始售?
  23.         t1.start();   
  24. //售货员SaleMan2开始售?
  25.         t2.start();   
  26.     }   
  27. //调用SellBookRunnableQRunnable接口实现c)模拟售书q程
  28. publicstaticvoid callSellBookRunnable() {   
  29.         List <Book>bookList = getBookListForSale();
  30. //预售书c清单交l售货员SaleMan1
  31.         Thread t1 = new Thread(new SellBookRunnable("SaleMan1", bookList));   
  32. //预售书c清单交l售货员SaleMan2
  33.         Thread t2 = new Thread(new SellBookRunnable("SaleMan2", bookList));   
  34. //售货员SaleMan1开始售?
  35.         t1.start();   
  36. //售货员SaleMan2开始售?
  37.         t2.start();   
  38.     }   
  39. //准备预售书籍
  40. publicstatic List<Book> getBookListForSale() {
  41.         List <Book>bookList = new ArrayList();   
  42. for (int i = 0; i < 20; i++) {   
  43.             Book book = new Book("Book" + i);   
  44.             bookList.add(book);   
  45.         }   
  46. return bookList;   
  47.     }   
  48. }  


执行CallSellBook
[SaleMan1]Book0 sold out:true. by Thread-0
[SaleMan2]Book1 sold out:true. by Thread-1
[SaleMan2]Book2 sold out:true. by Thread-1
[SaleMan2]Book3 sold out:true. by Thread-1
[SaleMan2]Book4 sold out:true. by Thread-1
[SaleMan2]Book5 sold out:true. by Thread-1
[SaleMan1]Book6 sold out:true. by Thread-0
[SaleMan1]Book7 sold out:true. by Thread-0
[SaleMan1]Book8 sold out:true. by Thread-0
[SaleMan1]Book9 sold out:true. by Thread-0
[SaleMan1]Book10 sold out:true. by Thread-0
[SaleMan1]Book11 sold out:true. by Thread-0
[SaleMan2]Book12 sold out:true. by Thread-1
[SaleMan2]Book13 sold out:true. by Thread-1
[SaleMan2]Book14 sold out:true. by Thread-1
[SaleMan2]Book15 sold out:true. by Thread-1
[SaleMan2]Book16 sold out:true. by Thread-1
[SaleMan2]Book17 sold out:true. by Thread-1
[SaleMan1]Book18 sold out:true. by Thread-0
[SaleMan1]Book19 sold out:true. by Thread-0
U程的创?/div> 创徏新执行线E有两种Ҏ?br /> Ҏ一U方法是类声明?Thread 的子cR该子类应重?Thread cȝ run Ҏ。事实上cThread本n也实C接口RunnableQ所以我们可以同q承Threadcd现线E体?br /> 参考:SellBookThread.java ?CallSellBook.java
另一U方法是声明实现 Runnable 接口的类。该cȝ后实?run Ҏ?br /> 参考:SellBookRunnable.java ?CallSellBook.java



U程的状?/div> U程有四U状态:创徏状?New)Q可q行状?Runnable)Q阻塞状态(BlockedQ,M状态(DeadQ?br />
创徏状?New)Q?br /> 当执行完
Thread t1 = new SellBookThread("SaleMan1", bookList);
语句之后Q则t1处于创徏状?New)。此时t1q未真正q行?br />
可运行状?Runnable)Q?br /> 当Thread t1被创建,q执行完
t1.start();
语句之后Qt1处于可q行状?Runnable)。此Ӟpȝ为线Et1分配其所需的系l资源。ƈ对t1加以调用Q或者根据Q务调度情况准备调用)?br />
d状态(BlockedQ:
׃以下原因Q?br /> 1) 调用了sleepQ)Ҏ;
2) 调用了suspendQ)ҎQ该Ҏ已不推荐使用Q?
3) 为等待条仉Q调用waitQ)Ҏ{?
4) 输入输出Q或消息发生d;

使得U程处于d状态(BlockedQ。处于该状态的U程即处理器空Ԍ也不会得到执行?br />
M状态(DeadQ:
M状态(DeadQ可以ؓ自然MQ线E运行完毕)Q或者调用了stop()ҎQ该Ҏ已不推荐使用Q?br />

U程的优先Q?/div> 可以通过Threadcȝ    
void setPriority(int newPriority)
Ҏ为线E设|优先。但是不能保证高优先U的U程׃被先q行?br />
U程l:
可以通过
ThreadGroup group = new ThreadGroup(groupName);
Thread t1 = new Thread(ThreadGroup g, Runnable r1);
Thread t1 = new Thread(ThreadGroup g, Runnable r2);
{方法把多个U程加到一个线E组里去Q这样可以通过ThreadGroup对这些线E进行某些统一操作Q?br /> 例如Qgroup.interrupt();中断该组所有线E?br />

U程unchecked异常处理器:
可以通过Q?br /> public void static Thread.setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler)
Ҏ为所有线E指定一个unchecked异常处理器,该处理器必须实现UncaughtExceptionHandler接口?br />

U程同步Q?/div> U程同步指多个线E同时访问某资源Ӟ采用一pd的机制以保证同时最多只能一个线E访问该资源?br /> U程同步是多U程中必考虑和解决的问题Q因为很可能发生多个U程同时讉KQ主要是写操作)同一资源Q如果不q行U程同步Q很可能会引h据؜乱,造成U程死锁{问题?br />
使用synchronized同步U程?br /> 在J2SE5.0之前Q只能用synchronized来同步线E。可以用synchronized来同步代码块或者方法?br /> 同步代码块例Q?br /> synchronized(Ʋ同步的对象obj) {需要同步的代码块}可以同步代码块?br />
参考:SellBookThread.java
  1. privatevoid sellBook(Book book) {   
  2. synchronized (book) {
  3.             ...   
  4.         }   
  5.     }  

该例synchronized (book) 表示若多个线E同时访问时Q只让其中一个线E最先取得book对象Q其它线E则d直到代码块执行完毕book对象被释攑֐Q其它线E才能取得该book对象l箋执行?br /> 很多情况下,可以使用synchronized (this){...}来同步代码块。但需要注意的是,使用this作ؓ同步对象的话Q如果同一个类中存在多个synchronized (this){...}代码块,其中M一个synchronized(this)代码块处于被执行状态,则其它线E对其他synchronized(this)代码块的讉K也会受到d?br />
同步Ҏ例:
  1. synchronizedprivatevoid sellBook(Book book) {   
  2. ...   
  3. }  

q种Ҏ其实相当?br />
  1. privatevoid sellBook(Book book) {   
  2. synchronized(this) {   
  3.         ...   
  4.     }   
  5. }  

׃默认采用this作ؓ同步对象Q所以当一个类中有多个synchronizedҎӞ同样会存在以上问题:卛_果有一个线E访问其中某个synchronizedҎӞ直到该方法执行完毕,其它U程对其它synchronizedҎ的访问也受到阻塞?br /> 有关synchronized详细说明我们在其它文章中加以说明?br />

使用java.util.concurrent.locks.ReentrantLock和java.util.concurrent.locks.ReentrantReadWriteLockcd步线E?br /> J2SE5.0加入了ReentrantLock和ReentrantReadWriteLock可以对线E进行同步,q里举一个最单的例子对其加以说明Q?br />
  1. class X {
  2. privatefinal ReentrantLock lock = new ReentrantLock();   
  3. // ...
  4. publicvoid m() {    
  5.      lock.lock();  // block until condition holds
  6. try {
  7. // ... method body
  8.      } finally {
  9.        lock.unlock()   
  10.      }   
  11.    }   
  12.  }   



其它J2SE5.0新导入的有关U程的相x?c:
java.util.concurrent.Future
Future接口可以保持/取得异步执行的结果?br />
java.util.concurrent.Callable
cM于Runnable接口。但Runnable不能q回|也不能抛出checked异常

java.util.concurrent.ExecutorService
该接口承了Executor接口。可以通过submitҎ把RunnableQCallable对象转换为Future 形式?br />
java.util.concurrent.FutureTask
该类实现了Runnable和Future接口。提供异步执行的取消以及异步执行l果的取得等功能?br />
java.util.concurrent.Executor
执行指定的Runnable对象

java.util.concurrent.Executors
工具cR提供静态方法可以创建ExecutorQExecutorServiceQCallable{对象。可以通过newCachedThreadPool(){方法简单创建线E池?/div>




异域浪 2009-12-14 19:29 发表评论
]]>【{】JAVA 基本数据cd 取D?/title><link>http://www.aygfsteel.com/bomberlhl/archive/2009/12/01/304416.html</link><dc:creator>异域浪</dc:creator><author>异域浪</author><pubDate>Tue, 01 Dec 2009 10:03:00 GMT</pubDate><guid>http://www.aygfsteel.com/bomberlhl/archive/2009/12/01/304416.html</guid><wfw:comment>http://www.aygfsteel.com/bomberlhl/comments/304416.html</wfw:comment><comments>http://www.aygfsteel.com/bomberlhl/archive/2009/12/01/304416.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/bomberlhl/comments/commentRss/304416.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/bomberlhl/services/trackbacks/304416.html</trackback:ping><description><![CDATA[<p>先看一D代?br /> public class Hello{<br />     public static void main(String[] args){<br />         int i  = 5 ,  j = 2;<br />         System.out.println(i+j);<br />         System.out.println(i-j);<br />         System.out.println(i*j);<br />         System.out.println(i/j);<br />     }<br /> }</p> <p>~译q行完上面的代码后会得到各条指oq行的结果:7Q?Q?0Q?<br /> q就是JAVA里面的加减乘除运,Z?除以2不等?.5而等?呢?q是因ؓq里做的是整数的四则q算Q?除以2的结果是2Q而余Cؓ1Q我们可以在上面的代码上加上一条指?br /> System.out.println(i%j);<br /> q行q个l果׃得到余数 1Q这?“%”执行的求余,或者叫取模?br /> 惌得到5/2=2.5q个l果Q我们需要改变对i和j的定?br /> ?int i = 5 ,  j=2;  改写成double i =5 , j = 2;<br /> 再编译运行一ơ,会得到如下的l果: 7.0 , 3.0 , 10.0 , 2.5.<br /> 可以看到l果都发生了变化Q变成了带小数点的,我们UC为Q点型帔R?br /> 跟前面的例子一P我们也用了q样的定义方?br /> int i = 5,j = 2;<br /> Scanner s = new Scanner(System.in);<br /> 前面说过Q我们在q里是定义了一个Scannercd的引用变量,它指向一个Scanner对象Q但是这里跟以前有点不一P大概是java中仅有的几处不一L地方了)Q我们定义了一个int型的变量iQ然后把它的D?Q不是指?Q,以后用到它的地方q当于在用5做计?br /> int是我们常用到八种基本数据cd之一Q它表示整数型?br /> 在JAVA中一共有八种基本数据cdQ他们分别是<br /> byte、short、int、long、float、double、char、boolean<br /> 整型<br /> 其中byte、short、int、long都是表示整数的,只不q他们的取D围不一?br /> byte的取D围ؓ-128~127Q占?个字节(-2?ơ方??ơ方-1Q?br /> short的取D围ؓ-32768~32767Q占?个字节(-2?5ơ方??5ơ方-1Q?br /> int的取D围ؓQ?2147483648~2147483647Q,占用4个字节(-2?1ơ方??1ơ方-1Q?br /> long的取D围ؓQ?9223372036854774808~9223372036854774807Q,占用8个字节(-2?3ơ方??3ơ方-1Q?br /> 可以看到byte和short的取D围比较小Q而long的取D围太大,占用的空间多Q基本上int可以满我们的日常的计算了,而且int也是使用的最多的整型cd了?br /> 在通常情况下,如果JAVA中出C一个整数数字比?5Q那么这个数字就是int型的Q如果我们希望它是byte型的Q可以在数据后加上大写的BQ?5BQ表C它是byte型的Q同L35S表示short型,35L表示long型的Q表Cint我们可以什么都不用加,但是如果要表Clong型的Q就一定要在数据后面加“L”?/p> <p>点?br /> float和double是表CQ点型的数据类型,他们之间的区别在于他们的_度不?br /> float 3.402823e+38 ~ 1.401298e-45Qe+38表示是乘?0?8ơ方Q同Pe-45表示乘以10的负45ơ方Q占?个字?br /> double 1.797693e+308~ 4.9000000e-324 占用8个字?br /> double型比float型存储范围更大,_ֺ更高Q所以通常的Q点型的数据在不声明的情况下都是double型的Q如果要表示一个数据是float型的Q可以在数据后面加上“F”?br /> 点型的数据是不能完全精的Q所以有的时候在计算的时候可能会在小数点最后几位出现Q动,q是正常的?/p> <p>boolean型(布尔型)<br /> q个cd只有两个|true和falseQ真和非真)<br /> boolean t = trueQ?br /> boolean f = falseQ?br /> char型(文本型)<br /> 用于存放字符的数据类型,占用2个字节,采用unicode~码Q它的前128字节~码与ASCII兼容<br /> 字符的存储范围在\u0000~\uFFFFQ在定义字符型的数据时候要注意? 'Q比?'1'表示字符'1'而不是数?Q?br /> char c = ' 1 ';<br /> 我们试着输出c看看QSystem.out.println(c);l果是1Q而如果我们这栯出呢System.out.println(c+0);<br /> l果却变成了49?br /> 如果我们q样定义c看看<br /> char c = ' \u0031 ';输出的结果仍然是1Q这是因为字W?1'对应着unicode~码是\u0031<br /> char c1 = 'h',c2 = 'e',c3='l',c4='l',c5 = 'o';<br /> System.out.print(c1);System.out.print(c2);System.out.print(c3);System.out.print(c4);Sytem.out.print(c5);</p> <p>String<br /> 在前面我们看到过q样的定义:<br /> String s = "hello";<br /> System.out.println(s);跟上面的5条语句组合v来的效果是一LQ那么String是个什么呢QString是字W串Q它不是基本数据cdQ它是一个类Q但是它又是一个有一点点Ҏ的类Q它有很多性质和基本数据类型很像,以后我们会慢慢看到这些?/p> <img src ="http://www.aygfsteel.com/bomberlhl/aggbug/304416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/bomberlhl/" target="_blank">异域浪</a> 2009-12-01 18:03 <a href="http://www.aygfsteel.com/bomberlhl/archive/2009/12/01/304416.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{载】:瘦客L、胖客户端、富客户?/title><link>http://www.aygfsteel.com/bomberlhl/archive/2009/10/10/297705.html</link><dc:creator>异域浪</dc:creator><author>异域浪</author><pubDate>Sat, 10 Oct 2009 08:56:00 GMT</pubDate><guid>http://www.aygfsteel.com/bomberlhl/archive/2009/10/10/297705.html</guid><wfw:comment>http://www.aygfsteel.com/bomberlhl/comments/297705.html</wfw:comment><comments>http://www.aygfsteel.com/bomberlhl/archive/2009/10/10/297705.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/bomberlhl/comments/commentRss/297705.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/bomberlhl/services/trackbacks/297705.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em;">瘦客LQThin ClientQ:</p> <p style="text-indent: 2em;">指的是在客户?服务器网l体pM的一个基本无需应用E序的计机l端? 它通过一些协议和服务器通信Q进而接入局域网。作为应用程序^台的Internet的到来ؓ企业应用E序提供了一个全新的领域Q一个基? Internet/intranet的应用程序运用一个只包含一个浏览器的瘦客户端。这个浏览器负责解释、显C和处理应用E序的图形用L面(GUIQ和 它的数据。这L一个应用程序只需要被安装在一个Web服务器上Q用户可以自动接收升U。一个解x案只需要部|一ơ,甚至Ҏ千的用户也是如此Q这U想 法的很吸引人,其是Internet技术帮我们~解了一些传l的应用E序的障,比如防火墙和对多q_的支持?/p> <p style="text-indent: 2em;">  瘦客L其鼠标、键盘等输入传送到服务器处理,服务器再把处理结果回传至客户端显C? 不同的客L可以同时d到服务器上,模拟Z个相互独立又在服务器上的工作环境。与此相反,普通客L会尽可能多地q行本地数据处理Q与服务器(或其? 客户端)的通信中只传送必要的通信数据?</p> <p style="text-indent: 2em;">  瘦客hhIT高效性、安全性和l济?/p> <p style="text-indent: 2em;">“胖客L”(Rich Client)是相对于“瘦客L”(Thin Client)Q基于Web的应用程序)而言的,它是在客h器上安装配置的一个功能丰富的交互式的用户界面Q例如Oracle、DB2数据库的客户端管理工兗?/p> <p style="text-indent: 2em;">  胖客L模式应用程序处理分成了两部分:qL桌面计算机执行的处理和最适合一个集 中的服务器执行的处理。一个典型的胖客L包含一个或多个在用LPC上运行的应用E序Q用户可以查看ƈ操作数据、处理一些或所有的业务规则——同时提? 一个丰富的用户界面做出响应。服务器负责理Ҏ据的讉Kq负责执行一些或所有的业务规则。这U模式也有一?#8220;变种”Q它们主要处理业务规则和数据的物? 位置。重ҎQ胖客户端应用程序是在用L计算Zq行的?/p> <p style="text-indent: 2em;">  九十q代末以来,ZWeb的应用程序得Cq泛的用,q主要是因ؓ它们可以很容易地 被终端用户用,l端用户只要一台能够上|的电脑p。然而,对于高交互性的E序接口来说Q基于Web的接口很难满求。编写复杂的在终端用h览器? 执行的客L脚本不是一个可行的增强交互性的Ҏ。商业团体认识到有时候部|一个基于Web的解x案ƈ不能满所有用户需求。此外,ZWeb的应用程 序也不能够脱Z用?/p> <p style="text-indent: 2em;"> </p> <p style="text-indent: 2em;">“富客L”QRich Client)介富因特|应用程序(Rich Internet ApplicationsQRIAQ利用具有很Z互性的富客L技术来为用h供一个更高和更全方位的网l体验。RIA集成了桌面应用的交互性和传统 Web应用的部|灵zL与成本分析Q以创徏单一而完整的用户体验。富客户端技术创徏RIA成ؓ可能Q它提供一个运行时的环境以承蝲被编译的客户端应用程 序,该客L应用E序是一个用HTTP协议发布的文件。客L应用E序使用异步的C/Sl构q接到现有的应用服务器,q是一U安全的、可升的、具有良 好适应性的面向服务模型Q这U模型由当前所采用的Web服务驱动?</p> <p style="text-indent: 2em;">  富客L技术正在不断地完善中,但ƈ不意味着会取代HTML。相反它进一步扩展浏览器 功能Q之提供更加高效和友好的用h口。许多RIA都在览器中q行Q甚臛_本n是HTML的一部分Q所以HTMLl保持其原有的角艌Ӏ另外,? 于富客户端技术可以支持运动的图象、视频、音频、双向的数据通信和创建复杂的H体Q它为创建应用程序用h口提供了一个高效而完善的开发环? </p> <p style="text-indent: 2em;">  RIA开发必d备三个要素:富客L技术、服务器技术和开发工兗富客户端技术充分利 用本地机器的处理能力来处理数据,而不需要把某些数据发送到服务器处理,充分利用了本地机器的资源。服务器技术提供了一U与富客L的连接机Ӟ作ؓ RIA的服务器技术必M现有的服务器技术承,可以提供一个快速的脚本环境Q支持数据库应用开发、双向数据通信、实时数据通信Q甚至采用一U新的服? 器,例如QColdFusion Server和Flash Communication Server{。RIA实现必须有一l简单而高效的开发工P如果没有一l简单而高效的开发工P那么富客L技术与服务器技术是毫无意义的。正是由? RIA的C/Sl构Q它需要一l开发工具协同工作才可以完成?/p> <img src ="http://www.aygfsteel.com/bomberlhl/aggbug/297705.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/bomberlhl/" target="_blank">异域浪</a> 2009-10-10 16:56 <a href="http://www.aygfsteel.com/bomberlhl/archive/2009/10/10/297705.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{载】:ubuntu 7.10盘安装Ҏhttp://www.aygfsteel.com/bomberlhl/archive/2008/01/22/177097.html异域浪异域浪Tue, 22 Jan 2008 09:33:00 GMThttp://www.aygfsteel.com/bomberlhl/archive/2008/01/22/177097.htmlhttp://www.aygfsteel.com/bomberlhl/comments/177097.htmlhttp://www.aygfsteel.com/bomberlhl/archive/2008/01/22/177097.html#Feedback0http://www.aygfsteel.com/bomberlhl/comments/commentRss/177097.htmlhttp://www.aygfsteel.com/bomberlhl/services/trackbacks/177097.html

1.下蝲ubuntu-7.10-alternate-amd64.iso(intel请下i386.iso)

然后攄在某个fat32分区的根目录下,安装的时候ubuntu会自动搜索到Q这是我认ؓubuntu一个很怪异地方——居然不需要指定\径!Fedora可是半点都差不得路径的?br /> Q注意:下蝲 ubuntu-7.10-desktop-i386.iso 是没用的Q硬盘安装找不到Q不知道Z么;虽然googleC大侠的补救办法,但是个h认ؓ没有必要舍近求远Q?/p>

2.下蝲initrd.gz和vmlinuz

把上qC个文件保存在fat32分区根目录(当然最好是与ubuntu-7.10-alternate-amd64.iso同一个分区的根目录下Q?或?ext3或reiserfs分区根目录,最好不要保存在ntfs分区?br /> 我保存在windows的C盘根目录Q在grub中表CZؓ(hd0,0)?/p>

3.下蝲 grub020p.zip Q网友修改过的,传了上来Q免得大家找得不?/a>
(q是dos版本的grub好用Q把安装ubuntu的三U不同vga配置的grub的menu.lst都写好了得,您可以拷贝ƈ_脓在C:\boot\grub\menu.lst的末֤Q安装的时候直接按回R选择p了)

解压到C:\下,~辑 boot.ini 文gQ加入或者替换成如下代码Q?br /> [boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Microsoft Windows XP Professional” /noexecute=optin /fastdetect
C:\grldr=”GRUB For Dos/Windows ”

~辑C:\boot\grub\menu.lst 加入Q?/p>

title Install-Ubuntu 791
kernel (hd0,0)/vmlinuz root=/dev/ram ramdisk_size=32000 devfs=mount,dall vga=791
initrd (hd0,0)/initrd.gz
boot

title Install-Ubuntu 792
kernel (hd0,0)/vmlinuz root=/dev/ram ramdisk_size=32000 devfs=mount,dall vga=792
initrd (hd0,0)/initrd.gz
boot

title Install-Ubuntu 771
kernel (hd0,0)/vmlinuz root=/dev/ram ramdisk_size=32000 devfs=mount,dall vga=771
initrd (hd0,0)/initrd.gz
boot

一׃U方式,q样׃用再手写了;防止写错Q也省了ȝ?/p>

注意Q您可能需要修?hd0,0)为其它方式,看你把initrd.gz和vmlinuz 攑֜哪个分区了,比如Q?br /> C盘是(hd0,0)Q?br /> 之后每一个逻辑盘,无论是linux的还是windows的都要占一个位|,比如Q?br /> D盘是(hd0,4);
E盘是(hd0,5);
F盘是(hd0,6);
….
比如D盘之前实际上q有一个linux分区Q只不过Windows下看不见Q那么Windows下的D盘实际上应该往后推一|也就是是(hd0,5Q了?/p>

4.重新启动电脑Q选择Q?GRUB For Dos/Windows

5.然后选择Q?Install-Ubuntu 771 Q这个随便你来选择Q没有办法确定)

6.开始安装根据安装提C,讄语言、键盘、时区、网l、分区、用户名、密码、grub{?/p>

需要说明的是,分区q一步很关键Q我q种安装方式没有出现像Parition Magic那样的图形界面;而是文字界面让我来配|和选择。Ubuntu需要我们分配两个linxu分区Q一个ext3分区一个和swap分区。配|的时候,W一个ext3分区臛_2GQ这里mount挂蝲点应该要选择?“/”Qroot根目录)Q第二个当然是swap分区Q一般ؓ内存大小?倍,比如512M。同时每个分区最好选择格式化,反正它是快速格式化Q不费多时间?/p>

7。选择是否安装boot ManagerQ这一步我惛_该是可选的Q?br /> 安装……安装完以后,最后一步会问你到了你的机子上有windows xpQؓ了更好的理启动选项Q请问是否安装boot Manager。我选择了是Q结果启动引导选择当然是没问题了,但是先后出现?重启动菜单:W一ơ是GRUB的菜单,问你qWINDOWSq是 UbuntuQ如果你选进windows的话Q那么刚才的boot.ini的多重选项q在Q所以还要再选择一ơ才能进入windows。当然进?windows以后Q你可以~辑boot.iniQ去掉grub选项Q因为现在已l不需要了?/p>

q有是选择不安装boot ManagerQ这个我没试Q但Ҏ坛子里的文章看,是可以的。应该是~辑一下刚才的C:\boot\grub\menu.lst文gQ增加以下代码:
title ubuntu
root (hd0,0)
kernel /vmlinuz root=/dev/hda5
initrd /initrd.img

8.自动重启 Q因为我们刚才在C:\boot\grub\menu.lst写了bootQ呵呵)

如果利的话Q一切就OK啦!Q?/p>

需要特别指出的是,在中间安装过E中QUbuntu要求配置|络。这一步完全可以省略掉Q因为我q里|速不是很快,安装之前我已l把|线拔掉了:Q?/p>

最后的说明Q?br /> 如果你只是浅辄止,q是奉劝你不要尝鲜,某些g厂商对linux支持不好Q点名批评ATIQ。我的x1200集成昑֍是打死也开不了桌面3DҎ?br /> 最后衷心希望每个尝试安装ubuntu的朋友们安装利Q我可是看着教程做都错了两三ơ,是不是太W了点,朋友fxl也一LQ两个男Z起做事就是不默契Qfxl看了莫骂我哈Q)感谢若干|友的友情帖?/p>

转蝲h明——{载自Q?strong>Someus.cN[http://someus.cn]



异域浪 2008-01-22 17:33 发表评论
]]>【{载】:ubuntu盘安装与配|详l图?/title><link>http://www.aygfsteel.com/bomberlhl/archive/2008/01/18/176147.html</link><dc:creator>异域浪</dc:creator><author>异域浪</author><pubDate>Fri, 18 Jan 2008 03:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/bomberlhl/archive/2008/01/18/176147.html</guid><wfw:comment>http://www.aygfsteel.com/bomberlhl/comments/176147.html</wfw:comment><comments>http://www.aygfsteel.com/bomberlhl/archive/2008/01/18/176147.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/bomberlhl/comments/commentRss/176147.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/bomberlhl/services/trackbacks/176147.html</trackback:ping><description><![CDATA[     摘要: 前言 Ubuntu是基于Debian的一个社区发行版Q是L发行版之一Q现在有很多的linux爱好者用这个易用、强大的发行版。此文面向对象是希望安装配置好ubuntu的朋友,此文隑ֺ不大Q按照本文安装配|完成之后您可以l箋Ҏ的系l进行更多的改进? 安装ubuntu前,请备份好您的重要数据 附加:从旧版本升?.04ҎQ如果您已经安装?.04以前的版本,那么您可以不必重新安装,...  <a href='http://www.aygfsteel.com/bomberlhl/archive/2008/01/18/176147.html'>阅读全文</a><img src ="http://www.aygfsteel.com/bomberlhl/aggbug/176147.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/bomberlhl/" target="_blank">异域浪</a> 2008-01-18 11:32 <a href="http://www.aygfsteel.com/bomberlhl/archive/2008/01/18/176147.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{载】:盘安装ubuntu7.10 正式?/title><link>http://www.aygfsteel.com/bomberlhl/archive/2008/01/18/176111.html</link><dc:creator>异域浪</dc:creator><author>异域浪</author><pubDate>Fri, 18 Jan 2008 02:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/bomberlhl/archive/2008/01/18/176111.html</guid><wfw:comment>http://www.aygfsteel.com/bomberlhl/comments/176111.html</wfw:comment><comments>http://www.aygfsteel.com/bomberlhl/archive/2008/01/18/176111.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/bomberlhl/comments/commentRss/176111.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/bomberlhl/services/trackbacks/176111.html</trackback:ping><description><![CDATA[<br /> <span style="font-size: 10pt"><font size="4">W一?下蝲</font><br /> 1) 下蝲ubuntu正式版安装iso镜像(693?:<br /> </span><a target="_blank"><span style="font-size: 10pt">http://releases.ubuntu.com/releases/.pool/ubuntu-7.10-alternate-i386.iso</span></a><br /> <br /> <span style="font-size: 10pt">2) 下蝲盘安装引导文g和硬盘分Y?10.7?:<br /> </span><a ><span style="font-size: 10pt">http://hibaidu.cn/52abc/ubuntu/ubuntu.rar</span></a><br /> <br /> <span style="font-size: 10pt">推荐使用q雷下蝲,下蝲后第一件事先检校下载文件的md5的?保证文g是正的,然后才能q行下一?<br /> 具体Ҏ:解压ubuntu.rar,里面有个md5.exe,打开,校文件?<br /> <br /> ubuntu 7.10pȝ安装镜像的md5?A4AE3CFD68911A861D094EC834C9B48 </span><span style="font-size: 10pt"><strong>(官方提供!)<br /> </strong>我打包的ubuntu.rar的md5是E5BBF7A5EDBD5CA73CD10C2D3817EED5<br /> <br /> md5不正可能是别h动过手脚?谨慎使用!!!<br /> </span> <div forimg="1"><span style="font-size: 10pt"><img class="blogimg" alt="" src="http://hiphotos.baidu.com/52abc/pic/item/2789ae343b1a3fbcd1a2d315.jpg" border="0" small="0" /><br /> <br /> <br /> ubuntu-7.10-alternate-i386.iso下蝲后放|到C盘下备用,ubuntu.rar解压后复制放|C盘下备用.<br /> <br /> 文g列表:<br /> </span> <div forimg="1"><span style="font-size: 10pt"><img class="blogimg" alt="" src="http://hiphotos.baidu.com/52abc/pic/item/e5ea61d0d6a61c84a1ec9c1a.jpg" border="0" small="0" /><br /> <br /> 看到有个menu.lst文g没有?如果你的内存不是512兆的你要改动一?<br /> menu.lst的内Ҏ:<br /> <br /> title Install Ubuntu //<br /> kernel (hd0,0)/ubuntu/vmlinuz root=/dev/ram0 ramdisk_size=512000 <br /> initrd (hd0,0)/ubuntu/initrd.gz <br /> <br /> 看到上面?12000 没有?内存?G的就是改?024000 ,内存?56的就?56000,以此cL.</span></div> <br /> <br /> <span style="font-size: 10pt">文g攄位置CZ:<br /> C:\<br /> |-ubuntu-7.10-alternate-i386.iso *pȝ安装盘镜?br /> |-menu.lst                                            *pȝ引导启动文g<br /> |-grldr                                               *grub for dos引导启动文g<br /> |--/ubuntu                                            *安装辅助文g?br />                          |-initrd.gz                                        *安装引导文g<br />                          |-vmlinuz                                          *安装引导文g<br /> <br /> <br /> </span><span style="font-size: 10pt">W二步分?<br /> 安装我打包文?盘无损分区软gPartitionMagicV8.05汉化?exe<br /> 安装好就打开文g开始分?要从盘里面分出2块空间来,大的一块用作ubuntu的系l分?的用来做虚拟内存的交换?<br /> W一块是EXT3格式,攄ubuntupȝ用的,大小?G以上,推荐10G,最好是15G以上,看你的情?<br /> 囄:<br /> </span> <div forimg="1"><span style="font-size: 10pt"><img class="blogimg" alt="" src="http://hiphotos.baidu.com/52abc/pic/item/57c4b0de07395c53cdbf1af0.jpg" border="0" small="0" /></span></div> <br /> <br /> <span style="font-size: 10pt">W二块是SWAP格式,用作虚拟内存,大小是你内存?倍左?大了了都不?<br /> 囄:<br /> </span> <div forimg="1"><span style="font-size: 10pt"><img class="blogimg" alt="" src="http://hiphotos.baidu.com/52abc/pic/item/8c1c61d9e86fda2710df9bf1.jpg" border="0" small="0" /></span></div> <br /> <span style="font-size: 10pt"><font size="4">最后一?</font><br /> 我的电脑点右键?gt;属性->“高”标签Q?gt;“启动和故障恢?栏?gt;讄Q?gt;~辑pȝ启动文gboot.ini,加入启动?<br /> </span><span style="font-size: 10pt">c:\grldr="Install ubuntu" <br /> <br /> 存盘退?<br /> <br /> CZ?<br /> </span> <div forimg="1"><span style="font-size: 10pt"><img class="blogimg" alt="" src="http://hiphotos.baidu.com/52abc/pic/item/b2655ddf1f1c4618485403e2.jpg" border="0" small="0" /></span></div> <br /> <div id="wmqeeuq" class="tmpDiv"><br /> <span style="font-size: 10pt">好啦,重启,选择启动Install ubuntu,可以开始安装了.接下来的安装q程和一般Y件大同小?人家是不会ؓ难你?安装q程很h?q个环节没有需要讲I的地方,安装q系l的人都能够L搞定.<br /> <strong>强烈</strong>看一下详l图?</span><a target="_blank"><span style="font-size: 10pt">http://cang.baidu.com/52abc/snap/eb027ccbad561811a0758319.html</span></a></div> <div forimg="1"></div> <div id="wmqeeuq" class="tmpDiv"><br /> <span style="font-size: 10pt">q里说些重要事项:<br /> 1.下蝲后第一步就是检校文件的md5,保证文g的正?为此我下载了2?校md5是正的:<br /> <img class="blogimg" alt="" src="http://hiphotos.baidu.com/52abc/pic/item/e41df4038e9c30e708fa9388.jpg" border="0" small="0" /><br /> <br /> <br /> 2.盘分区时先退出除了分Y件外的所有Y?否则可能会因Zh品问题导致分区失?<br /> <br /> 3.安装q程要仔l看,最好有初三80分的p水^,可能出现的对话框是E文的,看不懂可以查字典,慢慢?不要?实不理解里面的意?先退出吧,把提C抄下来,弄清楚了再l?<br /> <br /> 4.安装好了之后可能正常启动后是黑屏,什么都没有,你也不要?你先x,拔掉甉|再插?pȝ有缓存的.多启?ơ都3ơ就可以?q是不可以的话就在左下角选择启动会话是gnome,q样应该可以进入桌面了.<br /> <br /> 5.安装后是多系l?之前的系l还可以用的,安装不成功就是浪费了15GI间而已,你可以在Windows下合q分?</span></div> </div> <div id="wmqeeuq" class="tmpDiv"><br /> <br /> <span style="font-size: 10pt">Z么要看本?|络上不是有很多q样的教E么?<br /> <br /> 理由1.新鲜,|络上多是安装ubuntu 7.04的教E?现在q里说的是ubuntu 7.10,?.04的安装过E还是值得借鉴?<br /> <br /> 理由2.成功案例.本h反复安装3?盘安装成功?00%.W一ơ成功安?但有些怀疑文件的md5,再换个镜像下?重新安装,发现md5是正的,也成功安装了.ps:期间试了一下刻盘镜像能不能盘安装,没成?属于试,不在讨论范围之内.<br /> <br /> 理由3.本文提供了ubuntu 7.10的引导安装文件和分区软g及用方?你只需要复制一下就可以?不需要接触命令行,不需要到处去下蝲文g,下蝲一个压~包可以了,要用到的都ؓ你准备好?<br /> </span></div> <div id="wmqeeuq" class="tmpDiv"><span style="font-size: 10pt">好了,好的开端是成功的一?我认Z做好上面的准备工?你已l成功了90%?你好运!</span></div> <img src ="http://www.aygfsteel.com/bomberlhl/aggbug/176111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/bomberlhl/" target="_blank">异域浪</a> 2008-01-18 10:40 <a href="http://www.aygfsteel.com/bomberlhl/archive/2008/01/18/176111.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">̫</a>| <a href="http://" target="_blank">䶨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">̶</a>| <a href="http://" target="_blank">ƽԭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨ǰ</a>| <a href="http://" target="_blank">÷</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ݸ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ӣ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">κ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϻ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">;</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>