<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    dream.in.java

    能以不變應(yīng)萬變是聰明人做事的準(zhǔn)則。萬事從小事做起,積累小成功,問鼎大成功,是成功者的秘訣。

    分享:java經(jīng)典題目

        JBS
    1.列舉出 10個JAVA語言的優(yōu)勢
    a:免費,開源,跨平臺(平臺獨立性),簡單易用,功能完善,面向?qū)ο螅研裕嗑€程,結(jié)構(gòu)中立,企業(yè)應(yīng)用的成熟平臺, 無線應(yīng)用
    2.列舉出JAVA中10個面向?qū)ο缶幊痰男g(shù)語
    a:包,類,接口,對象,屬性,方法,構(gòu)造器,繼承,封裝,多態(tài),抽象,范型
    3.列舉出JAVA中6個比較常用的包
    Java.lang;java.util;java.io;java.sql;java.awt;java.net;java.applet;javax.swing
    4.JAVA中的標(biāo)識符有什么作用和特點
    作用:標(biāo)識符用作給變量、類和方法命名
    特點:可以以字母、下劃線“_”和”$”符開頭
    首字符外,可以跟上字母、下劃線“_”和”$”符或數(shù)字
    Java是大小寫敏感的,標(biāo)識符也不例外
    5.JAVA中的關(guān)鍵字有什么特點,列舉出至少20個關(guān)鍵字
    Java中一些賦以特定的含義、并用做專門用途的單詞稱為關(guān)鍵字(keyword)
    所有Java關(guān)鍵字都是小寫的,TURE、FALSE、NULL等都不是Java關(guān)鍵字 ;
    goto和const 雖然從未被使用,但也作為Java關(guān)鍵字保留;
    •          中一共有51個關(guān)鍵字Java
    abstract assert boolean break byte continue
    case catch char class const double
    default do extends else final float
    for goto long if implements import
    native new null instanceof int interface
    package private protected public return short
    static strictfp super switch synchronized this
    while void throw throws transient try
    volatile         

            6.JAVA中數(shù)據(jù)類型如何分類?

    可分為簡單數(shù)據(jù)類型和引用數(shù)據(jù)類型:
    簡單數(shù)據(jù)類型:數(shù)值型(byte,short,int,long,float double),字符型(char),布爾型(boolean);
    引用數(shù)據(jù)類型:類,接口,數(shù)組.
    7.JAVA中運算符的分類及舉例
    •          分割符:,,;,[],()
    •          算術(shù)運算符: +,―,*,/,%,++,――
    •          關(guān)系運算符: >, <,>=, <=,==,!=
    •          布爾邏輯運算符: !,& , | , ^ , &&,||
    •          位運算符: &,|,^,~ , >>, < <,>>>
    •          賦值運算符: = 擴展賦值運算符:+=,―=,*=,/=
    •          字符串連接運算符: +
    •          造型操作符:()

    8.super,this關(guān)鍵字的作用及用法
    •          在Java類中使用super來引用父類的成分
    –        可用于訪問父類中定義的屬性super
    –        可用于調(diào)用父類中定義的成員方法super
    –        可用于在子類構(gòu)造器中調(diào)用父類的構(gòu)造器super
    –        的追溯不僅于直接父類super
    •          中為解決變量的命名沖突和不確定性問題,引入關(guān)鍵字“this”代表其所在方法的當(dāng)前對象。Java
    –        構(gòu)造器中指該構(gòu)造器所創(chuàng)建的新對象
    –        方法中指調(diào)用該方法的對象
    •          關(guān)鍵字的用法this
    –        在類本身的方法或構(gòu)造器中引用該類的實例變量和方法
    –        將當(dāng)前對象作為參數(shù)傳遞給其它方法或構(gòu)造器
    –        用來調(diào)用其他的重載的構(gòu)造器

    9.什么是JAVA中的表達式?有什么作用?
    •          表達式是運算符和操作數(shù)的結(jié)合,它是任何一門編程語言的關(guān)鍵組成部分
    •          表達式允許程序員進行數(shù)學(xué)計算、值的比較、邏輯操作以及在Java中進行對象的操作。
    •          一些表達式的例子:
    –        X
    –        X+10
    –        Y=x+10
    –        Arr[10]
    –        student.geName()

    10.做表列出JAVA中所有修飾符和他們的適用范圍(能不能修飾構(gòu)造器,屬性,自由塊等)
      class 屬性 方法 構(gòu)建器 自由塊 內(nèi)部類
    public Y Y Y Y  Y
    protected    Y Y Y  Y
    (Default) Y Y Y Y Y Y
    private  Y Y Y  Y
    final Y Y Y    Y
    abstract Y  Y    Y
    static    Y  Y Y


    11.寫一個方法,用一個for循環(huán)打印九九乘法表
        /**
        *一個for循環(huán)打印九九乘法表
        */
        publicvoid nineNineMultiTable()
        {
          for (int i = 1,j = 1; j <= 9; i++) {
              System.out.print(i+"*"+j+"="+i*j+" ");
              if(i==j)
              {
                  i=0;
                  j++;
                  System.out.println();
              }
          }
        }
    12.給定一個java.util.Date對象,如何轉(zhuǎn)化為”2007-3-22 20:23:22”格式的字符串
    /**
        *將某個日期以固定格式轉(zhuǎn)化成字符串
        *@paramdate
        *@returnstr
        */
        public String dateToStr(java.util.Date date)
        {
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          String str = sdf.format(date);
          return str;
        }
    13.寫一個方法,能夠判斷任意一個整數(shù)是否素數(shù)
    /**
        *判斷任意一個整數(shù)是否素數(shù)
        *@paramn
        *@returnboolean
        */
        publicboolean isPrimes(int n)
        {
          for (int i = 2; i <= Math.sqrt(n); i++) {
              if(n%i==0)
              {
                  returnfalse;
              }
          }
          returntrue;
        }
    14.寫一個方法,輸入任意一個整數(shù),返回它的階乘
    /**
        *獲得任意一個整數(shù)的階乘
        *@paramn
        *@returnn!
        */
        publicint factorial(int n)
        {
          //遞歸
          if(n==1)
          {
              return 1;
          }
          return n*factorial(n-1);
          //非遞歸
    //    int multi = 1;
    //    for (int i = 2; i <= n; i++) {
    //        multi*=i;
    //    }
    //    return multi;
        }
    15.寫一個方法,用二分查找法判斷任意整數(shù)在任意整數(shù)數(shù)組里面是否存在,若存在就返回它在數(shù)組中的索引位置,不存在返回-1
    /**
        *二分查找特定整數(shù)在整型數(shù)組中的位置(遞歸)
        *@paramdataset
        *@paramdata
        *@parambeginIndex
        *@paramendIndex
        *@returnindex
        */
        publicint binarySearch(int[] dataset,int data,int beginIndex,int endIndex)
        {
          int midIndex = (beginIndex+endIndex)/2;
          if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex)return -1;
          if(data <dataset[midIndex])
          {
              return binarySearch(dataset,data,beginIndex,midIndex-1);
          }elseif(data>dataset[midIndex])
          {
              return binarySearch(dataset,data,midIndex+1,endIndex);
          }else
          {
              return midIndex;
          }
        }
       
        /**
        *二分查找特定整數(shù)在整型數(shù)組中的位置(非遞歸)
        *@paramdataset
        *@paramdata
        *@returnindex
        */
        publicint binarySearch(int[] dataset ,int data)
        {
          int beginIndex = 0; 
          int endIndex = dataset.length - 1; 
          int midIndex = -1;
          if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex)return -1;
          while(beginIndex <= endIndex) {
              midIndex = (beginIndex+endIndex)/2;
              if(data <dataset[midIndex]) { 
              endIndex = midIndex-1; 
              } elseif(data>dataset[midIndex]) { 
              beginIndex = midIndex+1; 
              }else
              {
              return midIndex;
              }
          }
          return -1;
        }
    16.做一個飼養(yǎng)員給動物喂食物的例子體現(xiàn)JAVA中的面向?qū)ο笏枷?接口(抽象類)的用處
    package com.softeem.demo;

    /**
    *@authorleno
    *動物的接口
    */
    interface Animal
    {
        publicvoid eat(Food food);
    }
    /**
    *@authorleno
    *一種動物類:貓
    */
    class Cat implements Animal
    {
        publicvoid eat(Food food)
        {
          System.out.println("小貓吃"+food.getName());
        }
    }
    /**
    *@authorleno
    *一種動物類:狗
    */
    class Dog implements Animal
    {
        publicvoid eat(Food food)
        {
          System.out.println("小狗啃"+food.getName());
        }
    }

    /**
    *@authorleno
    *食物抽象類
    */
    abstractclass Food
    {
        protected String name;
        public String getName() {
          returnname;
        }

        publicvoid setName(String name) {
          this.name = name;
        }
    }

    /**
    *@authorleno
    *一種食物類:魚
    */
    class Fish extends Food
    {
        public Fish(String name) {
          this.name = name;
        }
    }
    /**
    *@authorleno
    *一種食物類:骨頭
    */
    class Bone extends Food

        public Bone(String name) {
          this.name = name;
        }
    }

    /**
    *@authorleno
    *飼養(yǎng)員類
    *
    */
    class Feeder
    {
        /**
        *飼養(yǎng)員給某種動物喂某種食物
        *@paramanimal
        *@paramfood
        */
        publicvoid feed(Animal animal,Food food)
        {
          animal.eat(food);
        }
    }

    /**
    *@authorleno
    *測試飼養(yǎng)員給動物喂食物
    */
    publicclass TestFeeder {

        publicstaticvoid main(String[] args) {
          Feeder feeder=new Feeder();
          Animal animal=new Dog();
          Food food=new Bone("肉骨頭");
          feeder.feed(animal,food); //給狗喂肉骨頭
          animal=new Cat();
          food=new Fish("魚");
          feeder.feed(animal,food); //給貓喂魚


        }
    }
    17.描述JAVA中異常處理的機制
    •          程序的執(zhí)行過程中如出現(xiàn)異常,會自動生成一個異常類對象,該異常對象將被提交給Java運行時系統(tǒng),這個過程稱為拋出(throw)異常。Java
    •          當(dāng)Java運行時系統(tǒng)接收到異常對象時,會尋找能處理這一異常的代碼并把當(dāng)前異常對象交給其處理,這一過程稱為捕獲(catch)異常。
    •          如果Java運行時系統(tǒng)找不到可以捕獲異常的方法,則運行時系統(tǒng)將終止,相應(yīng)的Java程序也將退出。
    •          程序員通常只能處理違例(Exception),而對錯誤(Error)無能為力。

    100  修改 刪除 舉報 引用 回復(fù)
    進入用戶個人空間
    加為好友
    發(fā)送私信
    在線聊天
    • chaihuoniu
    • 等級:
    • 可用分等級:
    • 總技術(shù)分:
    • 總技術(shù)分排名:
    發(fā)表于:2008-06-17 15:26:551樓 得分:0
    18.做一個單子模式的類,只加載一次屬性文件
    package com.softeem.demo;

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;

    /**
    *@authorleno
    *單子模式,保證在整個應(yīng)用期間只加載一次配置屬性文件
    */
    publicclass Singleton {

        privatestatic Singleton instance;
        privatestaticfinal String CONFIG_FILE_PATH = "E:\\config.properties";
        private Properties config;
        private Singleton()
        {
          config = new Properties();
          InputStream is;
          try {
              is = new FileInputStream(CONFIG_FILE_PATH);
              config.load(is);
              is.close();
          } catch (FileNotFoundException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
        }
        publicstatic Singleton getInstance()
        {
          if(instance==null)
          {
              instance = new Singleton();
          }
          returninstance;
        }
        public Properties getConfig() {
          returnconfig;
        }
        publicvoid setConfig(Properties config) {
          this.config = config;
        }
       
       

    }
    l    J2SE
    19.拷貝一個目錄(文件)到指定路徑
    /**
        *拷貝一個目錄或者文件到指定路徑下
        *@paramsource
        *@paramtarget
        */
        publicvoid copy(File source,File target)
        {
          File tarpath = new File(target,source.getName());
          if(source.isDirectory())
          {
              tarpath.mkdir();
              File[] dir = source.listFiles();
              for (int i = 0; i < dir.length; i++) {
                  copy(dir[i],tarpath);
              }
          }else
          {
              try {
                  InputStream is = new FileInputStream(source);
                  OutputStream os = new FileOutputStream(tarpath);
                  byte[] buf = newbyte[1024];
                  int len = 0;
                  while((len = is.read(buf))!=-1)
                  {
                      os.write(buf,0,len);
                  }
                  is.close();
                  os.close();
              } catch (FileNotFoundException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              } catch (IOException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
          }
        }
    20.用JAVA中的多線程示例銀行取款問題
    packagecom.softeem.demo;

    /**
    *@authorleno
    *賬戶類
    *默認(rèn)有余額,可以取款
    */
    class Account {
        privatefloatbalance = 1000;

        publicfloat getBalance() {
          returnbalance;
        }

        publicvoid setBalance(float balance) {
          this.balance = balance;
        }
       
        /**
        *取款的方法需要同步
        *@parammoney
        */
        publicsynchronizedvoid withdrawals(float money)
        {
          if(balance>=money)
          {
              System.out.println("被取走"+money+"元!");
              try {
                  Thread.sleep(1000);
              } catch (InterruptedException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
              balance-=money;
          }
          else
          {
              System.out.println("對不起,余額不足!");
          }
        }
       
    }

    /**
    *@authorleno
    *銀行卡
    */
    class TestAccount1 extends Thread {

        private Account account;
       
       
        public TestAccount1(Account account) {
          this.account = account;
        }


        @Override
        publicvoid run() {
          account.withdrawals(800);
          System.out.println("余額為:"+account.getBalance()+"元!");
        } 
    }
    /**
    *@authorleno
    *存折
    */
    class TestAccount2 extends Thread {

        private Account account;
        public TestAccount2(Account account) {
              this.account = account;
          }
        @Override
        publicvoid run() {
          account.withdrawals(700);
          System.out.println("余額為:"+account.getBalance()+"元!");
        } 
    }

    publicclass Test
    {
        publicstaticvoid main(String[] args) {
          Account account = new Account();
          TestAccount1 testAccount1 = new TestAccount1(account);
          testAccount1.start();
          TestAccount2 testAccount2 = new TestAccount2(account);
          testAccount2.start();
        }
    }
    21.用JAVA中的多線程示例火車站售票問題
    package com.softeem.demo;

    /**
    *@authorleno
    *售票類
    */
    class SaleTicket implements Runnable {
        inttickets = 100;

        publicvoid run() {
          while (tickets > 0) {
              sale();
    //或者下面這樣實現(xiàn)
    //        synchronized (this) {
    //            if (tickets > 0) {
    //                System.out.println(Thread.currentThread().getName() + "賣第"
    //                      + (100 - tickets + 1) + "張票");
    //                tickets--;
    //            }
    //        }
          }
        }

        publicsynchronizedvoid sale() {
          if (tickets > 0) {
              System.out.println(Thread.currentThread().getName() + "賣第"
                      + (100 - tickets + 1) + "張票");
              tickets--;
          }
        }

    }

    publicclass TestSaleTicket {

        publicstaticvoid main(String[] args) {
          SaleTicket st = new SaleTicket();
          new Thread(st, "一號窗口").start();
          new Thread(st, "二號窗口").start();
          new Thread(st, "三號窗口").start();
          new Thread(st, "四號窗口").start();

        }
    }

    22.用JAVA中的多線程示例生產(chǎn)者和消費者問題
    package com.softeem.demo;

    class Producer implements Runnable
    {
    private SyncStack stack;

        public Producer(SyncStack stack) {
        this.stack = stack;
    }

        publicvoid run() {
          for (int i = 0; i < stack.getProducts().length; i++) {
              String product = "產(chǎn)品"+i;
              stack.push(product);
              System.out.println("生產(chǎn)了: "+product);
              try
              {
                Thread.sleep(200);
              }
              catch(InterruptedException e)
              {
                e.printStackTrace();
              }


          }
        }
       
    }

    class Consumer implements Runnable
    {
        private SyncStack stack;

        public Consumer(SyncStack stack) {
        this.stack = stack;
    }
        publicvoid run() {
          for(int i=0;i <stack.getProducts().length;i++)
              {
              String product =stack.pop();
              System.out.println("消費了: "+product);
              try
              {
                Thread.sleep(1000);
              }
              catch(InterruptedException e)
              {
                e.printStackTrace();
              }

              }

         
        }
    }

    class SyncStack
    {
        private String[] products = new String[10];
        privateintindex;
        publicsynchronizedvoid push(String product)
        {
          if(index==product.length())
          {
              try {
                  wait();
              } catch (InterruptedException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
          }
          notify();
          products[index]=product;
          index++;
        }
       
        publicsynchronized String pop()
        {
          if(index==0)
          {
              try {
                  wait();
              } catch (InterruptedException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
          }
          notify();
          index--;
          String product = products[index];
          return product;
        }

        public String[] getProducts() {
          returnproducts;
        }
       
       
    }
    publicclass TestProducerConsumer {
       
        publicstaticvoid main(String[] args) {
          SyncStack stack=new SyncStack();
          Producer p=new Producer(stack);
          Consumer c=new Consumer(stack);

          new Thread(p).start();
          new Thread(c).start();
          }
        }

    posted on 2009-02-14 16:22 YXY 閱讀(260) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲深深色噜噜狠狠网站| 黄人成a动漫片免费网站| 亚洲国产模特在线播放| 综合偷自拍亚洲乱中文字幕| 鲁丝片一区二区三区免费 | 亚洲国产美女精品久久久 | 中文字幕视频免费| 亚洲人成色7777在线观看不卡| 久久亚洲sm情趣捆绑调教| 猫咪www免费人成网站| mm1313亚洲国产精品美女| 亚洲乱码在线卡一卡二卡新区| 青青青国产在线观看免费网站| 精品久久久久久亚洲| 亚洲1234区乱码| 日韩av无码久久精品免费| 国产亚洲精久久久久久无码AV| 国产在亚洲线视频观看| 毛片免费视频观看| 亚洲日韩中文字幕在线播放| WWW亚洲色大成网络.COM | 在线观看人成视频免费无遮挡| 国产片免费福利片永久| 亚洲天堂2017无码中文| 国产成人精品免费视频大全麻豆| 久久久久亚洲精品影视| 91精品全国免费观看青青| 亚洲人成网站在线播放影院在线| 国产精品免费久久久久久久久| 亚洲区不卡顿区在线观看| 99re免费99re在线视频手机版| 亚洲一区二区三区高清视频| 免费播放春色aⅴ视频| 立即播放免费毛片一级| 亚洲热线99精品视频| 在线视频精品免费| 亚洲jizzjizz在线播放久| 亚洲?V乱码久久精品蜜桃| 99久久综合精品免费| 国产亚洲视频在线观看| 亚洲网站在线播放|