forget and forget

          能吃能睡是福;能忘是大福......

          posts - 39, comments - 26, trackbacks - 0, articles - 10
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          JAVA面試題集(3)

          Posted on 2006-05-21 10:04 橘子 閱讀(97) 評(píng)論(0)  編輯  收藏
          答:區(qū)別如下:

          作用域 當(dāng)前類 同一package 子孫類 其他package

          public √ √ √ √

          protected √ √ √ ×

          friendly √ √ × ×

          private √ × × ×

          不寫時(shí)默認(rèn)為friendly

          56、ArrayList和Vector的區(qū)別,HashMap和Hashtable的區(qū)別

          答:就ArrayList與Vector主要從二方面來(lái)說(shuō).

          一.同步性:Vector是線程安全的,也就是說(shuō)是同步的,而ArrayList是線程序不安全的,不是同步的

          二.數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來(lái)一培,而ArrayList卻是原來(lái)的一半

          就HashMap與HashTable主要從三方面來(lái)說(shuō)。

          一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)

          二.同步性:Hashtable是線程安全的,也就是說(shuō)是同步的,而HashMap是線程序不安全的,不是同步的

          三.值:只有HashMap可以讓你將空值作為一個(gè)表的條目的key或value

          57、char型變量中能不能存貯一個(gè)中文漢字?為什么?

          答:是能夠定義成為一個(gè)中文的,因?yàn)閖ava中以u(píng)nicode編碼,一個(gè)char占16個(gè)字節(jié),所以放一個(gè)中文是沒(méi)問(wèn)題的

          58、多線程有幾種實(shí)現(xiàn)方法,都是什么?同步有幾種實(shí)現(xiàn)方法,都是什么?

          答:多線程有兩種實(shí)現(xiàn)方法,分別是繼承Thread類與實(shí)現(xiàn)Runnable接口

          同步的實(shí)現(xiàn)方面有兩種,分別是synchronized,wait與notify

          59、垃圾回收機(jī)制,如何優(yōu)化程序?

          希望大家補(bǔ)上,謝謝

          60、float型float f=3.4是否正確?

          答:不正確。精度不準(zhǔn)確,應(yīng)該用強(qiáng)制類型轉(zhuǎn)換,如下所示:float f=(float)3.4

          61、介紹JAVA中的Collection FrameWork(包括如何寫自己的數(shù)據(jù)結(jié)構(gòu))?

          答:Collection FrameWork如下:

          Collection

          ├List

          │├LinkedList

          │├ArrayList

          │└Vector

          │ └Stack

          └Set

          Map

          ├Hashtable

          ├HashMap

          └WeakHashMap

          Collection是最基本的集合接口,一個(gè)Collection代表一組Object,即Collection的元素(Elements)

          Map提供key到value的映射

          62、Java中異常處理機(jī)制,事件機(jī)制?

          11、JAVA中的多形與繼承?

          希望大家補(bǔ)上,謝謝

          63、抽象類與接口?

          答:抽象類與接口都用于抽象,但是抽象類(JAVA中)可以有自己的部分實(shí)現(xiàn),而接口則完全是一個(gè)標(biāo)識(shí)(同時(shí)有多重繼承的功能)。

          編程題:

          1.現(xiàn)在輸入n個(gè)數(shù)字,以逗號(hào),分開(kāi);

          然后可選擇升或者降序排序;

          按提交鍵就在另一頁(yè)面顯示

          按什么 排序,結(jié)果為, ,

          提供reset

          答案(1) public static String[] splitStringByComma(String source){

          if(source==null||source.trim().equals(""))

          return null;

          StringTokenizer commaToker = new StringTokenizer(source,",");

          String[] result = new String[commaToker.countTokens()];

          int i=0;

          while(commaToker.hasMoreTokens()){

          result[i] = commaToker.nextToken();

          i++;

          }

          return result;

          }

          循環(huán)遍歷String數(shù)組

          Integer.parseInt(String s)變成int類型

          組成int數(shù)組

          Arrays.sort(int[] a),

          a數(shù)組升序

          降序可以從尾部開(kāi)始輸出



          2.金額轉(zhuǎn)換,阿拉伯?dāng)?shù)字的金額轉(zhuǎn)換成中國(guó)傳統(tǒng)的形式如:

          (¥1011)->(一千零一拾一元整)輸出。

          3、繼承時(shí)候類的執(zhí)行順序問(wèn)題,一般都是選擇題,問(wèn)你將會(huì)打印出什么?

          答:父類:

          package test;

          public class FatherClass

          {

          public FatherClass()

          {

          System.out.println("FatherClass Create");

          }

          }

          子類:

          package test;

          import test.FatherClass;

          public class ChildClass extends FatherClass

          {

          public ChildClass()

          {

          System.out.println("ChildClass Create");

          }

          public static void main(String[] args)

          {

          FatherClass fc = new FatherClass();

          ChildClass cc = new ChildClass();

          }

          }

          輸出結(jié)果:

          C:>java test.ChildClass

          FatherClass Create

          FatherClass Create

          ChildClass Create



          4、內(nèi)部類的實(shí)現(xiàn)方式?

          答:示例代碼如下:

          package test;

          public class OuterClass

          {

          private class InterClass

          {

          public InterClass()

          {

          System.out.println("InterClass Create");

          }

          }

          public OuterClass()

          {

          InterClass ic = new InterClass();

          System.out.println("OuterClass Create");

          }

          public static void main(String[] args)

          {

          OuterClass oc = new OuterClass();

          }

          }

          輸出結(jié)果:

          C:>java test/OuterClass

          InterClass Create

          OuterClass Create

          再一個(gè)例題:

          public class OuterClass {

          private double d1 = 1.0;

          //insert code here

          }

          You need to insert an inner class declaration at line 3. Which two inner class declarations are



          valid?(Choose two.)

          A. class InnerOne{

          public static double methoda() {return d1;}

          }

          B. public class InnerOne{

          static double methoda() {return d1;}

          }

          C. private class InnerOne{

          double methoda() {return d1;}

          }

          D. static class InnerOne{

          protected double methoda() {return d1;}

          }

          E. abstract class InnerOne{

          public abstract double methoda();

          }

          說(shuō)明如下:

          一.靜態(tài)內(nèi)部類可以有靜態(tài)成員,而非靜態(tài)內(nèi)部類則不能有靜態(tài)成員。 故 A、B 錯(cuò)

          二.靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問(wèn)外部類的靜態(tài)變量,而不可訪問(wèn)外部類的非靜態(tài)變量;return d1 出錯(cuò)。



          故 D 錯(cuò)

          三.非靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問(wèn)外部類的非靜態(tài)變量。 故 C 正確

          四.答案為C、E





          5、Java 的通信編程,編程題(或問(wèn)答),用JAVA SOCKET編程,讀服務(wù)器幾個(gè)字符,再寫入本地顯示?

          答:Server端程序:

          package test;

          import java.net.*;

          import java.io.*;

          public class Server

          {

          private ServerSocket ss;

          private Socket socket;

          private BufferedReader in;

          private PrintWriter out;

          public Server()

          {

          try

          {

          ss=new ServerSocket(10000);

          while(true)

          {

          socket = ss.accept();

          String RemoteIP = socket.getInetAddress().getHostAddress();

          String RemotePort = ":"+socket.getLocalPort();

          System.out.println("A client come in!IP:"+RemoteIP+RemotePort);

          in = new BufferedReader(new



          InputStreamReader(socket.getInputStream()));

          String line = in.readLine();

          System.out.println("Cleint send is :" + line);

          out = new PrintWriter(socket.getOutputStream(),true);

          out.println("Your Message Received!");

          out.close();

          in.close();

          socket.close();

          }

          }catch (IOException e)

          {

          out.println("wrong");

          }

          }

          public static void main(String[] args)

          {

          new Server();

          }

          };

          Client端程序:

          package test;

          import java.io.*;

          import java.net.*;



          public class Client

          {

          Socket socket;

          BufferedReader in;

          PrintWriter out;

          public Client()

          {

          try

          {

          System.out.println("Try to Connect to 127.0.0.1:10000");

          socket = new Socket("127.0.0.1",10000);

          System.out.println("The Server Connected!");

          System.out.println("Please enter some Character:");

          BufferedReader line = new BufferedReader(new



          InputStreamReader(System.in));

          out = new PrintWriter(socket.getOutputStream(),true);

          out.println(line.readLine());

          in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

          System.out.println(in.readLine());

          out.close();

          in.close();

          socket.close();

          }catch(IOException e)

          {

          out.println("Wrong");

          }

          }

          public static void main(String[] args)

          {

          new Client();

          }

          };

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 镇远县| 淮北市| 道真| 巩义市| 松阳县| 灵川县| 虎林市| 大埔县| 喀什市| 绩溪县| 化州市| 德令哈市| 金湖县| 福安市| 桦南县| 德安县| 建宁县| 肥城市| 休宁县| 明水县| 大名县| 灵武市| 汕头市| 葫芦岛市| 太仆寺旗| 临夏市| 杭州市| 山西省| 宝坻区| 黔南| 商河县| 马关县| 潢川县| 达尔| 莱西市| 措美县| 五原县| 桂东县| 荃湾区| 太原市| 九台市|