小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

java面試題[基礎類]

 軟件團隊頭目 2006-05-25

一、Java基礎知識
1.Java有那些基本數(shù)據(jù)類型,String是不是基本數(shù)據(jù)類型,他們有何區(qū)別。
2.字符串的操作:
  寫一個方法,實現(xiàn)字符串的反轉,如:輸入abc,輸出cba
  寫一個方法,實現(xiàn)字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。
3.數(shù)據(jù)類型之間的轉換
  如何將數(shù)值型字符轉換為數(shù)字(Integer,Double)
  如何將數(shù)字轉換為字符
  如何取小數(shù)點前兩位,并四舍五入。
4.日期和時間
  如何取得年月日,小時分秒
  如何取得從1970年到現(xiàn)在的毫秒數(shù)
  如何獲取某個日期是當月的最后一天
  如何格式化日期
5.數(shù)組和集合
6.文件和目錄(I/O)操作
  如何列出某個目錄下的所有文件
  如何列出某個目錄下的所有子目錄
  判斷一個文件或目錄是否存在
  如何讀寫文件
7.Java多態(tài)的實現(xiàn)(繼承、重載、覆蓋)
8.編碼轉換,怎樣實現(xiàn)將GB2312編碼的字符串轉換為ISO-8859-1編碼的字符串。
9.Java中訪問數(shù)據(jù)庫的步驟,Statement和PreparedStatement之間的區(qū)別。
10.找出下列代碼可能存在的錯誤,并說明原因:

二、JSP&Servlet技術
1.描述JSP和Servlet的區(qū)別、共同點、各自應用的范圍
2.在Web開發(fā)中需要處理HTML標記時,應做什么樣的處理,要篩選那些字符(< > & “”)
3.在JSP中如何讀取客戶端的請求,如何訪問CGI變量,如何確定某個Jsp文件的真實路徑。
4.描述Cookie和Session的作用,區(qū)別和各自的應用范圍,Session工作原理。
5.列出Jsp中包含外部文件的方式,兩者有何區(qū)別。
6.說明Jsp中errorPage的作用,應用范圍。
7.介紹在Jsp中如何使用JavaBeans。
8.簡單介紹JSP的標記庫
9.Jsp和Servlet中的請求轉發(fā)分別如何實現(xiàn)。

三、J2EE相關知識
1.介紹J2EE、J2SE、J2SE的區(qū)別。
2.J2EE是一種技術還是一種平臺,他提供了那些技術。
3.什么是Application Server,它有什么功能和優(yōu)點。
4.簡單介紹連接池的優(yōu)點和原理。
5.Web.xml的作用

四、其他
1.Web安全性的考慮(表單驗證、瀏覽器Basic方式的驗證,應用程序的安全性,SSL,代碼考慮)
2.簡單介紹您所了解的MVC。
3.簡單介紹所了解的XML。
4.文檔和編碼規(guī)范
5.Java中的分頁、效率考慮。
6.簡單介紹您所了解的structs。

1.xml在項目中的作用
2.s-EJB 與 e-EJB的區(qū)別
3.會話面的作用
4.cmp與bmp的優(yōu)缺點
5.j2me程序的必需的幾個部分
6.c/s與b/s的區(qū)別
7.構建一個connect pool,然后再調用它,
8.j2ee平臺與dotnet平臺的區(qū)別
9.ejb的life cycle
10.session bean 和 entity bean的區(qū)別
11.ejb中的transaction機制
12.synchronized (生產者和消費)
13.String 和 StringBuffer
14.Serializable
15.MVC (Struts的工作流程)
16.什么是MDA
17.tcp與udp的區(qū)別
18.鏈表與散列表和數(shù)組的區(qū)別
19.堆和棧的區(qū)別
20.ejb的分類及區(qū)別
21.你對現(xiàn)在軟件業(yè)以及國內軟件業(yè)的看法
22.談談java多線程
23.談談文件加密技術
24.軟件開發(fā)生命周期
25.路由協(xié)議種類及特點
26.java的awt和swing組件的GUI設計的關鍵
27.對于java流的認識
28.簡單描述一下awt與swing區(qū)別。
29.簡述java編程中事件處理模式。
30.你編寫過applet嗎?applet的安全權限如何?試列舉java application或者applet中與servlet/jsp通信可以采用的方式。
31.簡述邏輯操作(如&,|)與條件操作(如&&,||)的區(qū)別。
32.簡述 Java Server Page 和 Servlet 的聯(lián)系和區(qū)別。
33.簡述synchronized和java.util.concurrent.locks.Lock的異同 ?
34.EJB規(guī)范規(guī)定EJB中禁止的操作有哪些?


35.java除了8種基本類型外,在虛擬機里還有哪一種,有什么作用?
36.除了使用new關鍵字創(chuàng)建對象意外,試列舉另外三種以上創(chuàng)建實例的方式?
37.classloader中,JDK的API、Classpath中的同web-inf中的class加載方式有什么區(qū)別?
38.列舉三種以上垃圾回收算法,并比較其優(yōu)缺點?
39.編寫代碼實現(xiàn)一個線程池
40.描述一下JVM加載class文件的原理機制?
41.試舉例說明一個典型的垃圾回收算法?
42.請用java寫二叉樹算法,實現(xiàn)添加數(shù)據(jù)形成二叉樹功能,并以先序的方式打印出來.
43.請寫一個java程序實現(xiàn)線程連接池功能?
44.給定一個C語言函數(shù),要求實現(xiàn)在java類中進行調用。
45.如何獲得數(shù)組的長度?
46.訪問修飾符“public/private/protected/缺省的修飾符”的使用
47.用關鍵字final修飾一個類或者方法時,有何意義?
48.掌握類和對象的概念,掌握面向對象編程的本質
49.靜態(tài)變量和靜態(tài)方法的意義,如何引用一個類的靜態(tài)變量或者靜態(tài)方法?
50.JAVA語言如何進行異常處理,關鍵字:thorws,throw,try,catch,finally
51.Object類(或者其子類)的finalize()方法在什么情況下被調用?
52.一個“.java”原文件中是否可以包括多個類(不是內部類)?
53.掌握內部類和接口的概念
54.StringTokenizer類的使用
55.數(shù)據(jù)結構,如何遍歷List中的元素?
   如果要按照鍵值保存或者訪問數(shù)據(jù),使用什么數(shù)據(jù)結構?
   要掌握Collection相關的接口和類的使用
56.使用StringBuffer類與String類進行字符串連接時有何區(qū)別?
57.調用Thread類的destroy()方法有什么后果?
58.多線程,用什么關鍵字修飾同步方法?stop()和suspend()方法為何不推薦使用?
59.使用socket建立客戶端與服務器的通信的過程
60.JAVA語言國際化應用,Locale類,Unicode
61.描述反射機制的作用
62.如何讀寫一個文件?
63.在圖形界面中,一個按鈕如何處理鼠標點擊事件?
64.在圖形界面中,一個表格,如何實現(xiàn)編輯單元格時彈出下拉框?
65.如何加載圖片?
66.什么是模態(tài)對話框?
67.闡述MVC的概念
68.GUI布局管理器的使用,F(xiàn)lowLayout,BorderLayout,GridBagLayout
69.如何構造一棵樹?選擇樹的一個節(jié)點時,如何得到這個節(jié)點?
70.向編輯框中輸入字符時,如何控制只輸入整數(shù)?
71.描述使用JDBC連接數(shù)據(jù)庫的過程
72.EJB分為幾類?什么是BMP,CMP?
73.什么是JNDI?
74.ADO是什么?ActiveX數(shù)據(jù)對象,是一個應用級程序接口.
75.四種JDBC方式?目前的版本?
76.EJB有哪幾種?區(qū)別是什么?
77.JavaBean與EJB有什么區(qū)別?
78.軟件開發(fā)生命周期有哪幾個階段?
79.軟件開發(fā)有哪些因素?
80.軟件開發(fā)中如何進行版本控制?
81.UML中,類視圖如何表示類中的繼承與聚合?
82.客戶端游標與服務器端游標的區(qū)別?
83.動態(tài)游標與靜態(tài)游標的區(qū)別?
84.dotnet由哪幾個基本框架組成?
85.Oracle中SGA是什么?
86.web servers是什么?
87.UNIX中QT是什么意思?
88.在軟件開發(fā)生命周期中的哪個階段開始測試?
89.dotnet與J2EE的比較?
90.什么是ActiveX?
91.Java中IDL是什么?
92.ISO9000和CMM是什么?IS09000和CMM(軟件能力成熟度模型)認證是國際上通用的軟件質量評估方法.CMM的五個成熟度等級。


//反轉這符串
    public String convertStr(String s_text){
        String b = "";
        int li_len = s_text.length();
        for (int i = li_len-1;i>=0;i--){
            b = b + String.valueOf(s_text.charAt(i));
        }
        return b;
    }
    //替換字符串
    public String replaceStr(int start,int end ,String s_newStr,
            String s_oldAllStr){
        String ls_temp =  "";
        int li_len = s_oldAllStr.length();
        ls_temp = s_oldAllStr.substring(0,start);
        ls_temp = ls_temp + s_newStr;
        ls_temp = ls_temp + s_oldAllStr.substring(end+1,li_len);
       
       
        return ls_temp;
    }

字符串與整型互換:String.valueOf(int val)  Integer.parseInt(String val);
//四舍五入方法
    public double getRound(double d_val,int i_sit){
       
        String ls_temp = "";
        ls_temp = String.valueOf(d_val);
        int li_index = ls_temp.indexOf(".");
        int li_len = ls_temp.length();
        int li_weak = li_len - (li_index + 1);
       
        String ls_str;
        //位數(shù)
        char ch_index;
        double d_unit,d_temp=d_val;
        String ls_subStr=ls_temp;
        for (int i=li_len-1; i>=li_index; i--){
            ch_index = ls_temp.charAt(i);
            li_weak = i - li_index;
            ls_str = "0.";
           
            if (li_weak == i_sit){
                ls_subStr = ls_subStr.substring(0,i+1);
                d_temp = Double.parseDouble(ls_subStr);
                break;
            }
           
            if (Integer.parseInt(String.valueOf(ch_index))>=5){
        for (int l=0;l<li_weak-1;l++){
            if (l != li_weak -2)
              ls_str = ls_str + "0";
            else
              ls_str = ls_str + "1";
        }
        d_unit = Double.parseDouble(ls_str);
        d_temp = Double.parseDouble(ls_subStr) + d_unit;
        ls_subStr = String.valueOf(d_temp);
        continue;
            }
            else{
                ls_subStr = ls_subStr.substring(0,i);
                d_temp = Double.parseDouble(ls_subStr);
                continue;
            }
        }
        return d_temp;
    }



如何取得年月日,小時分秒
    //獲取日期
    public String getToday() {
       
        String ls_date = "";
        GregorianCalendar obj_date = new GregorianCalendar();
        ls_date = ls_date + obj_date.get(Calendar.YEAR);
        ls_date = ls_date + "-"+obj_date.get(Calendar.MONTH);
        ls_date = ls_date + "-"+obj_date.get(Calendar.DATE);
        ls_date = ls_date + " "+obj_date.get(Calendar.HOUR_OF_DAY);
        ls_date = ls_date + ":"+obj_date.get(Calendar.MINUTE);
        ls_date = ls_date + ":"+obj_date.get(Calendar.SECOND);
       
        return ls_date;
    }
//如何取得從1970年到現(xiàn)在的毫秒數(shù)
    public String getMillSecond(int i_yes){
        GregorianCalendar obj_date = new GregorianCalendar();
        int li_weak = obj_date.get(Calendar.YEAR) - i_yes;
        int li_m = obj_date.get(Calendar.MONTH);
        int li_d = obj_date.get(Calendar.DATE);
        int li_h = obj_date.get(Calendar.HOUR_OF_DAY);
        int li_min = obj_date.get(Calendar.MINUTE);
        int li_s = obj_date.get(Calendar.SECOND);
        //天數(shù)需要另外調整,包括銳年銳月、大小月不等,這里用30天將就一下,實際中另寫
        long bi_weak = li_weak * 12 * 30 * 24 * 60 * 60 * 1000;
        long bi_m = li_m * 30 * 24 * 60 * 60 * 1000;
        long bi_d = li_d * 24 * 60 * 60 * 1000;
        long bi_h = li_h * 60 * 60 * 1000;
        long bi_min = li_min * 60 * 1000;
        long bi_s = li_s * 1000;
        long bi_total;
        bi_total = bi_weak;
        bi_total = bi_total+bi_m;
        bi_total = bi_total+bi_d;
        bi_total = bi_total+bi_h;
        bi_total = bi_total+bi_min;
        bi_total = bi_total+bi_s;
       
        return String.valueOf(bi_total);
    }

這個不用這樣子吧
System.currentTimeMillis()不就是嗎?
還有上面的代碼也都是太復雜了吧


在java 1.4后提供了一個四舍五入方法
NumberFormat
  /**
   * 格式化double數(shù)
   * @param dNumber double
   * @param iFrac int 保留小數(shù)點后幾位;
   * @return String
   */
  public static String RoundFracToString(double dNumber, int iScale)
  {
    String sReturn = "";
    NumberFormat format = NumberFormat.getNumberInstance();
    if (iScale >= 0)
    {
      format.setGroupingUsed(true);            //是否分組顯示,如:1,400.00
      format.setMaximumFractionDigits(iScale);
      format.setMinimumFractionDigits(iScale);
      sReturn = format.format(dNumber);
    }
    return sReturn;
  }

四舍五入方法
  /**
   * 保留x位小數(shù)(將進行四舍五入)
   * @param str 需保留的字符串型數(shù)據(jù)
   * @param x 需要保留的小數(shù)位
   * @return String 返回保留后的字符串
   **/
  static public String getRound(String str, int x)
  {
    if (str == null || str.equals(""))
    {
      return "0";
    }
    String cStr = "";
    String rStr = "";
    while (rStr.length() < x)
    {
      rStr += "#";
    }
    java.text.DecimalFormat df = new java.text.DecimalFormat("##." + rStr);
    return df.format(Double.parseDouble(str));
  }

反轉字符串:
String temp = "reddd";
      char[] t = temp.toCharArray();
      for(int j = t.length-1;j >= 0 ;j--){
      System.out.println(t[j]);
     
      }

//    四舍五入方法
   private String RoundToScale(String number,int scale){
        BigDecimal bdNumber = new BigDecimal(number);
        return RoundToScale(bdNumber,int scale);
    }
    private String RoundToScale(BigDecimal number,int scale){
        if(number == null)return null;
        return number.setScale(scale,BigDecimal.ROUND_HALF_UP).toString();
    }
//reverse string :
public String reverseString(String str){
StringBuffer tmpStr= new StringBuffer(str);
}


//reverse string :
public String reverseString(String str){
StringBuffer tmpStr= new StringBuffer(str);
return tmpStr.reverse().toString();
}

 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約