Edzy_Java

            BlogJava :: 首頁(yè) ::  ::  ::  :: 管理 ::
            58 隨筆 :: 12 文章 :: 11 評(píng)論 :: 0 Trackbacks

          1.

          abstract class Name {

          private String name;

          public abstract boolean isStupidName(String name) {}

          }

          大俠們,這有何錯(cuò)誤?

          答案: 錯(cuò)。abstract method必須以分號(hào)結(jié)尾,且不帶花括號(hào)。

          2.

          public class Something {

          void doSomething () {

          private String s = "";

          int l = s.length();

          }

          }

          有錯(cuò)嗎?

          答案: 錯(cuò)。局部變量前不能放置任何訪問(wèn)修飾符 (private,public,和protected)。final可以用來(lái)修飾局部變量

          (final如同abstract和strictfp,都是非訪問(wèn)修飾符,strictfp只能修飾class和method而非variable)。

          3.

          abstract class Something {

          private abstract String doSomething ();

          }

          這好像沒(méi)什么錯(cuò)吧?

          答案: 錯(cuò)。abstract的methods不能以private修飾。abstract的methods就是讓子類implement(實(shí)現(xiàn))具體細(xì)節(jié)的,怎么可以用private把a(bǔ)bstract

          method封鎖起來(lái)呢? (同理,abstract method前不能加final)。

          4.

          public class Something {

          public int addOne(final int x) {

          return ++x;

          }

          }

          這個(gè)比較明顯。

          答案: 錯(cuò)。int x被修飾成final,意味著x不能在addOne method中被修改。

          5.

          public class Something {

          public static void main(String[] args) {

          Other o = new Other();

          new Something().addOne(o);

          }

          public void addOne(final Other o) {

          o.i++;

          }

          }

          class Other {

          public int i;

          }

          *** 當(dāng)對(duì)象作為參數(shù)傳遞時(shí), 如果被聲明為 final 時(shí), 則不能改變對(duì)象參數(shù)的引用.

          和上面的很相似,都是關(guān)于final的問(wèn)題,這有錯(cuò)嗎?

          答案: 正確。在addOne method中,參數(shù)o被修飾成final。如果在addOne method里我們修改了o的reference

          (比如: o = new Other();),那么如同上例這題也是錯(cuò)的。但這里修改的是o的member vairable

          (成員變量),而o的reference并沒(méi)有改變。

          6.

          class Something {

          int i;

          public void doSomething() {

          System.out.println("i = " + i);

          }

          }

          有什么錯(cuò)呢? 看不出來(lái)啊。

          答案: 正確。輸出的是"i = 0"。int i屬於instant variable (實(shí)例變量,或叫成員變量)。instant variable有default value。int的default value是0。

          7.

          class Something {

          final int i;

          public void doSomething() {

          System.out.println("i = " + i);

          }

          }

          和上面一題只有一個(gè)地方不同,就是多了一個(gè)final。這難道就錯(cuò)了嗎?

          答案: 錯(cuò)。final int i是個(gè)final的instant variable (實(shí)例變量,或叫成員變量)。final的instant variable沒(méi)有default value,必須在constructor (構(gòu)造器)結(jié)束之前被賦予一個(gè)明確的值。可以修改為"final int i = 0;"。

          8.

          public class Something {

          public static void main(String[] args) {

          Something s = new Something();

          System.out.println("s.doSomething() returns " + doSomething());

          }

          public String doSomething() {

          return "Do something ...";

          }

          }

          看上去很完美。

          答案: 錯(cuò)。看上去在main里call doSomething沒(méi)有什么問(wèn)題,畢竟兩個(gè)methods都在同一個(gè)class里。但仔細(xì)看,main是static的。static method不能直接call non-static methods。可改成"System.out.println("s.doSomething() returns " + s.doSomething());"。同理,static method不能訪問(wèn)non-static instant variable。

          9.

          此處,Something類的文件名叫OtherThing.java

          class Something {

          private static void main(String[] something_to_do) {

          System.out.println("Do something ...");

          }

          }

          這個(gè)好像很明顯。

          答案: 正確。從來(lái)沒(méi)有人說(shuō)過(guò)Java的Class名字必須和其文件名相同。但public class的名字必須和文件名相同。

          10.

          interface A{

          int x = 0;

          }

          class B{

          int x =1;

          }

          class C extends B implements A {

          public void pX(){

          System.out.println(x);

          }

          public static void main(String[] args) {

          new C().pX();

          }

          }

          答案:錯(cuò)誤。在編譯時(shí)會(huì)發(fā)生錯(cuò)誤(錯(cuò)誤描述不同的JVM有不同的信息,意思就是未明確的x調(diào)用,兩個(gè)x都匹配(就象在同時(shí)import java.util和java.sql兩個(gè)包時(shí)直接聲明Date一樣)。對(duì)于父類的變量,可以用super.x來(lái)明確,而接口的屬性默認(rèn)隱含為 public static final.所以可以通過(guò)A.x來(lái)明確。

          11.

          interface Playable {

          void play();

          }

          interface Bounceable {

          void play();

          }

          interface Rollable extends Playable, Bounceable {

          Ball ball = new Ball("PingPang");

          }

          class Ball implements Rollable {

          private String name;

          public String getName() {

          return name;

          }

          public Ball(String name) {

          this.name = name;

          }

          public void play() {

          ball = new Ball("Football");

          System.out.println(ball.getName());

          }

          }

          這個(gè)錯(cuò)誤不容易發(fā)現(xiàn)。

          答案: 錯(cuò)。"interface Rollable extends Playable, Bounceable"沒(méi)有問(wèn)題。interface可繼承多個(gè)interfaces,所以這里沒(méi)錯(cuò)。問(wèn)題出在interface Rollable里的"Ball ball = new Ball("PingPang");"。任何在interface里聲明的interface variable (接口變量,也可稱成員變量),默認(rèn)為public static final。也就是說(shuō)"Ball ball = new Ball("PingPang");"實(shí)際上是"public static final Ball ball = new Ball("PingPang");"。在Ball類的Play()方法中,"ball = new Ball("Football");"改變了ball的reference,而這里的ball來(lái)自Rollable interface,Rollable interface里的ball是public static final的,final的object是不能被改變r(jià)eference的。因此編譯器將在"ball = new Ball("Football");"這里顯示有錯(cuò)。

           

          JAVA編程題

          1.現(xiàn)在輸入n個(gè)數(shù)字,以逗號(hào),分開(kāi);然后可選擇升或者降序排序;按提交鍵就在另一頁(yè)面顯示按什么排序,結(jié)果為,提供reset

          import java.util.*;

          public class bycomma{

          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;

          }

          public static void main(String args[]){

          String[] s = splitStringByComma("5,8,7,4,3,9,1");

          int[] ii = new int[s.length];

          for(int i = 0;i<s.length;i++){

          ii[i] =Integer.parseInt(s[i]);

          }

          Arrays.sort(ii);

          //asc

          for(int i=0;i<s.length;i++){

          System.out.println(ii[i]);

          }

          //desc

          for(int i=(s.length-1);i>=0;i--){

          System.out.println(ii[i]);

          }

          }

          }

          2.金額轉(zhuǎn)換,阿拉伯?dāng)?shù)字的金額轉(zhuǎn)換成中國(guó)傳統(tǒng)的形式如:(¥1011)->(一千零一拾一元整)輸出。

          package test.format;

          import java.text.NumberFormat;

          import java.util.HashMap;

          public class SimpleMoneyFormat {

          public static final String EMPTY = "";

          public static final String ZERO = "零";

          public static final String ONE = "壹";

          public static final String TWO = "貳";

          public static final String THREE = "叁";

          public static final String FOUR = "肆";

          public static final String FIVE = "伍";

          public static final String SIX = "陸";

          public static final String SEVEN = "柒";

          public static final String EIGHT = "捌";

          public static final String NINE = "玖";

          public static final String TEN = "拾";

          public static final String HUNDRED = "佰";

          public static final String THOUSAND = "仟";

          public static final String TEN_THOUSAND = "萬(wàn)";

          public static final String HUNDRED_MILLION = "億";

          public static final String YUAN = "元";

          public static final String JIAO = "角";

          public static final String FEN = "分";

          public static final String DOT = ".";

          private static SimpleMoneyFormat formatter = null;

          private HashMap chineseNumberMap = new HashMap();

          private HashMap chineseMoneyPattern = new HashMap();

          private NumberFormat numberFormat = NumberFormat.getInstance();

          private SimpleMoneyFormat() {

          numberFormat.setMaximumFractionDigits(4);

          numberFormat.setMinimumFractionDigits(2);

          numberFormat.setGroupingUsed(false);

          chineseNumberMap.put("0", ZERO);

          chineseNumberMap.put("1", ONE);

          chineseNumberMap.put("2", TWO);

          chineseNumberMap.put("3", THREE);

          chineseNumberMap.put("4", FOUR);

          chineseNumberMap.put("5", FIVE);

          chineseNumberMap.put("6", SIX);

          chineseNumberMap.put("7", SEVEN);

          chineseNumberMap.put("8", EIGHT);

          chineseNumberMap.put("9", NINE);

          chineseNumberMap.put(DOT, DOT);

          chineseMoneyPattern.put("1", TEN);

          chineseMoneyPattern.put("2", HUNDRED);

          chineseMoneyPattern.put("3", THOUSAND);

          chineseMoneyPattern.put("4", TEN_THOUSAND);

          chineseMoneyPattern.put("5", TEN);

          chineseMoneyPattern.put("6", HUNDRED);

          chineseMoneyPattern.put("7", THOUSAND);

          chineseMoneyPattern.put("8", HUNDRED_MILLION);

          }

          public static SimpleMoneyFormat getInstance() {

          if (formatter == null)

          formatter = new SimpleMoneyFormat();

          return formatter;

          }

          public String format(String moneyStr) {

          checkPrecision(moneyStr);

          String result;

          result = convertToChineseNumber(moneyStr);

          result = addUnitsToChineseMoneyString(result);

          return result;

          }

          public String format(double moneyDouble) {

          return format(numberFormat.format(moneyDouble));

          }

          public String format(int moneyInt) {

          return format(numberFormat.format(moneyInt));

          }

          public String format(long moneyLong) {

          return format(numberFormat.format(moneyLong));

          }

          public String format(Number moneyNum) {

          return format(numberFormat.format(moneyNum));

          }

          private String convertToChineseNumber(String moneyStr) {

          String result;

          StringBuffer cMoneyStringBuffer = new StringBuffer();

          for (int i = 0; i < moneyStr.length(); i++) {

          cMoneyStringBuffer.append(chineseNumberMap.get(moneyStr.substring(i, i + 1)));

          }

          //拾佰仟萬(wàn)億等都是漢字里面才有的單位,加上它們

          int indexOfDot = cMoneyStringBuffer.indexOf(DOT);

          int moneyPatternCursor = 1;

          for (int i = indexOfDot - 1; i > 0; i--) {

          cMoneyStringBuffer.insert(i, chineseMoneyPattern.get(EMPTY + moneyPatternCursor));

          moneyPatternCursor = moneyPatternCursor == 8 ? 1 : moneyPatternCursor + 1;

          }

          String fractionPart = cMoneyStringBuffer.substring(cMoneyStringBuffer.indexOf("."));

          cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf("."), cMoneyStringBuffer.length());

          while (cMoneyStringBuffer.indexOf("零拾") != -1) {

          cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零拾"), cMoneyStringBuffer.indexOf("零拾") + 2, ZERO);

          }

          while (cMoneyStringBuffer.indexOf("零佰") != -1) {

          cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零佰"), cMoneyStringBuffer.indexOf("零佰") + 2, ZERO);

          }

          while (cMoneyStringBuffer.indexOf("零仟") != -1) {

          cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零仟"), cMoneyStringBuffer.indexOf("零仟") + 2, ZERO);

          }

          while (cMoneyStringBuffer.indexOf("零萬(wàn)") != -1) {

          cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零萬(wàn)"), cMoneyStringBuffer.indexOf("零萬(wàn)") + 2, TEN_THOUSAND);

          }

          while (cMoneyStringBuffer.indexOf("零億") != -1) {

          cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零億"), cMoneyStringBuffer.indexOf("零億") + 2, HUNDRED_MILLION);

          }

          while (cMoneyStringBuffer.indexOf("零零") != -1) {

          cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零零"), cMoneyStringBuffer.indexOf("零零") + 2, ZERO);

          }

          if (cMoneyStringBuffer.lastIndexOf(ZERO) == cMoneyStringBuffer.length() - 1)

          cMoneyStringBuffer.delete(cMoneyStringBuffer.length() - 1, cMoneyStringBuffer.length());

          cMoneyStringBuffer.append(fractionPart);

          result = cMoneyStringBuffer.toString();

          return result;

          }

          private String addUnitsToChineseMoneyString(String moneyStr) {  
          String result; StringBuffer cMoneyStringBuffer = new StringBuffer(moneyStr);
           int indexOfDot = cMoneyStringBuffer.indexOf(DOT);  
          cMoneyStringBuffer.replace(indexOfDot, indexOfDot + 1, YUAN);
          cMoneyStringBuffer.insert(cMoneyStringBuffer.length() - 1, JIAO);
          cMoneyStringBuffer.insert(cMoneyStringBuffer.length(), FEN);
           if (cMoneyStringBuffer.indexOf("零角零分") != -1)//沒(méi)有零頭,加整
            cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零角零分"), cMoneyStringBuffer.length(), "整");
          else  if (cMoneyStringBuffer.indexOf("零分") != -1)//沒(méi)有零分,加整   
          cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零分"), cMoneyStringBuffer.length(), "整");
           else { if(cMoneyStringBuffer.indexOf("零角")!=-1)
                  cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf("零角"),cMoneyStringBuffer.indexOf("零角")+2);
               cMoneyStringBuffer.append("整");
          }  
          result = cMoneyStringBuffer.toString();
          return result;
          }
          private void checkPrecision(String moneyStr) {
          int fractionDigits = moneyStr.length() - moneyStr.indexOf(DOT) - 1; 
           if (fractionDigits > 2)  throw new RuntimeException("金額" + moneyStr + "的小數(shù)位多于兩位。"); //精度不能比分低  
          }
          public static void main(String args[]) {  
          System.out.println(getInstance().format(new Double(10010001.01)));
          }
          }

          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

          6、 forward和rederect的區(qū)別
          答:redirect重定向到另外一個(gè)頁(yè)面,重新開(kāi)始一個(gè)請(qǐng)求forward跳轉(zhuǎn)到另外一個(gè)頁(yè)面, 請(qǐng)求不斷開(kāi)

          7、 jsp的常用的命令
          答:page, include, talib, forward,

          8、 接口和內(nèi)部類、抽象類的特征
          答:接口:在一個(gè)類里,只有申明沒(méi)有實(shí)現(xiàn)。內(nèi)部類:是在一個(gè)類的內(nèi)部定義的一個(gè)類;抽象類:是以abstract 定義的,里面至少有一個(gè)抽象方法。

          9、 文件讀寫的基本類
          答:File Reader 類和FileWriter類分別繼承自Reader類和Writer類。FileReader類用于讀取文件,F(xiàn)ile Writer類用于將數(shù)據(jù)寫入文件,這兩各類在使用前,都必須要調(diào)用其構(gòu)造方法創(chuàng)建相應(yīng)的對(duì)象,然后調(diào)用相應(yīng)的read()或 write()方法。

          10、 串行化的注意事項(xiàng)以及如何實(shí)現(xiàn)串行化
          答:如果有循環(huán)引用是不可以串行化的。對(duì)象輸出流的WriteObject方法和 對(duì)象輸入流的ReadObect 方法

          11、 線程的基本概念、線程的本狀態(tài)以及狀態(tài)之間的關(guān)系
          •新建 (Born) : 新建的線程處于新建狀態(tài)
          •就緒 (Ready) : 在創(chuàng)建線程后,它將處于就緒狀態(tài),等待 start() 方法被調(diào)用
          •運(yùn)行 (Running) : 線程在開(kāi)始執(zhí)行時(shí)進(jìn)入運(yùn)行狀態(tài)
          •睡眠 (Sleeping) : 線程的執(zhí)行可通過(guò)使用 sleep() 方法來(lái)暫時(shí)中止。在睡眠后,線程將進(jìn)入就緒狀態(tài)
          •等待 (Waiting) : 如果調(diào)用了 wait() 方法,線程將處于等待狀態(tài)。用于在兩個(gè)或多個(gè)線程并發(fā)運(yùn)行時(shí)。
          •掛起 (Suspended) : 在臨時(shí)停止或中斷線程的執(zhí)行時(shí),線程就處于掛起狀態(tài)。
          •恢復(fù) (Resume) : 在掛起的線程被恢復(fù)執(zhí)行時(shí),可以說(shuō)它已被恢復(fù)。
          •阻塞 (Blocked) – 在線程等待一個(gè)事件時(shí)(例如輸入/輸出操作),就稱其處于阻塞狀態(tài)。
          •死亡 (Dead) – 在 run() 方法已完成執(zhí)行或其 stop() 方法被調(diào)用之后,線程就處于死亡狀態(tài)。
           
          12、 線程的同步、如何實(shí)現(xiàn)線程的同步
          答:當(dāng)兩個(gè)或多個(gè)線程同時(shí)訪問(wèn)同一個(gè)變量,并且以個(gè)線程需要修改這個(gè)變量。就要用到線程同步。在Java 中,同步是通過(guò) synchronized 關(guān)鍵字來(lái)定義的。 諾是想同步化某程序段,可以使用 synchronized(object){}方法,其中{}內(nèi)的程序語(yǔ)句被同步化。

          13、 socket通信(tcp/udp區(qū)別及JAVA的實(shí)現(xiàn)方式)
          TCP——傳輸控制協(xié)議,具有極高的可靠性,保證數(shù)據(jù)包按照順序準(zhǔn)確到達(dá),但其也有著很高的額外負(fù)擔(dān)。
          UDP——使用者數(shù)據(jù)元協(xié)議,并不能保證數(shù)據(jù)包會(huì)被成功的送達(dá),也不保證數(shù)據(jù)包到達(dá)的順序,但其傳輸速度很快。大多數(shù)我們會(huì)使用TCP,偶爾才會(huì)動(dòng)用UDP,如聲音訊號(hào),即使少量遺失,也無(wú)關(guān)緊要。

          14、 JAVA的事件委托機(jī)制和垃圾回收機(jī)制
          java 事件委托機(jī)制的概念,一個(gè)源產(chǎn)生一個(gè)事件并將它送到一個(gè)或多個(gè)監(jiān)聽(tīng)器那里。在這種方案中,監(jiān)聽(tīng)器簡(jiǎn)單的等待,直到它收到一個(gè)事件。一旦事件被接受,監(jiān)聽(tīng)器將處理這個(gè)事件,然后返回。垃圾回收機(jī)制 垃圾收集是將分配給對(duì)象但不在使用的內(nèi)存回收或釋放的過(guò)程。如果一個(gè)對(duì)象沒(méi)有指向它的引用或者其賦值為null,則次對(duì)象適合進(jìn)行垃圾回收

          15、 JDBC調(diào)用數(shù)據(jù)庫(kù)的基本步驟
          導(dǎo)入必要的類,裝入JDBC驅(qū)動(dòng)程序,識(shí)別數(shù)據(jù)源,分配一個(gè)Connection對(duì)象,分配一個(gè)Statement對(duì)象,使用Statement執(zhí)行一個(gè)查詢,從返回的ResultSet對(duì)象中檢索數(shù)據(jù),關(guān)閉ResultSet,關(guān)閉Statement對(duì)象,關(guān)閉Connection對(duì)象

          16、 解析XML文件的幾種方式和區(qū)別
          答:Dom解析 在內(nèi)存中創(chuàng)建一個(gè)DOM樹(shù),能隨機(jī)訪問(wèn)文件內(nèi)容,也可以修改原文件內(nèi)容SAX解析 線性解析,不能隨機(jī)訪問(wèn),也無(wú)法修改原文件Dom解析要先用SAX解析創(chuàng)建DOM樹(shù)

          17、 JAVA的四種基本權(quán)限的定義public private protected 默認(rèn)

          18、 JAVA的國(guó)際化  
          答:Java 中提供了諾干國(guó)際化明感類,來(lái)實(shí)現(xiàn)國(guó)際化的。例如:dateformat  timezone 等等。

          posted on 2006-11-16 12:20 lbfeng 閱讀(246) 評(píng)論(0)  編輯  收藏 所屬分類: 專業(yè)考試題庫(kù)
          主站蜘蛛池模板: 开远市| 唐山市| 隆林| 清镇市| 灵璧县| 阿坝县| 兴义市| 九龙坡区| 始兴县| 平昌县| 仙桃市| 苏尼特右旗| 永顺县| 丰县| 彩票| 南川市| 赤城县| 方城县| 鹿泉市| 富顺县| 外汇| 晴隆县| 甘肃省| 托克托县| 新乡市| 闻喜县| 大石桥市| 湛江市| 开远市| 广河县| 辉南县| 舒兰市| 兰西县| 平舆县| 响水县| 达拉特旗| 同仁县| 凤山县| 乾安县| 崇文区| 渝北区|