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

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

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

    JAVA涂鴉
    關于JAVA的點點滴滴
    posts - 50,  comments - 689,  trackbacks - 0
    JSP方面
    1、
    forward redirect的區別
    答:forward是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然后把這些內容再發給瀏覽器,瀏覽器根本不知道服務器發送的內容是從哪兒來的,所以它的地址欄中還是原來的地址。
        redirect就是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數重新請求,所以session,request參數都可以獲取。
    2、
    jsp有哪些內置對象?作用分別是什么?
    答:JSP共有以下9種基本內置組件(可與ASP6種內部組件相對應):
     request 對象表示一個HTTP請求

       response
    對象存儲處理結果返回給用戶的響應。
       out 對象用于將內容寫入JSP頁面實例的輸出流中
       pageContext 對象描述某個JSP文檔的運行環境,此外,它還實現將控制權從當前頁面傳輸至其他頁面的方法
       session
    對象在用戶訪問一個Web站點的多個頁面時共享信息

       application 對象存儲運行文檔的環境的有關信息

       config 對象將Servlet配置數據以Servlet的初始化參數形式存儲

       page 對象表示JSP
    網頁本身
    ,更是Servlet類的實例,可以調用由Servlet類定義的任何方法
       exception
    針對錯誤網頁,未捕捉的例外
    ,只適用于JSP錯誤頁面
    3、
    jsp有哪些動作?作用分別是什么?
    :JSP共有以下7種基本動作
       jsp:include
    :在頁面被請求的時候引入一個文件。
       jsp:useBean
    它用來實例化JavaBean,或者定位一個已經存在的Bean實例,并且把它賦給一個變量名(或者id)。并給定一個具體的范圍來確定對象的生命周期。
       jsp:setProperty
    :設置JavaBean的屬性。

       jsp:getProperty
    :輸出某個JavaBean的屬性。

       jsp:forward
    :把請求轉到一個新的頁面。

       jsp:plugin
    :根據瀏覽器類型為Java插件生成OBJECTEMBED標記
      jsp:param:
    為其他標簽提供附加信息。
    4、
    JSP中動態INCLUDE與靜態INCLUDE的區別?
    答:動態INCLUDEjsp:include動作實現
       <jsp:include page="included.jsp" flush="true" />
    它總是會檢查所含文件中的變化,適合用于包含動態頁面,并且可以帶參數
      
    靜態INCLUDEinclude偽碼實現,定不會檢查所含文件的變化,適用于包含靜態頁面
       <%@ include file="included.htm" %>
    5、
    兩種跳轉方式分別是什么?有什么區別?
    答:有兩種,分別為:
      <jsp:include page="included.jsp" flush="true">
      <jsp:forward page= "nextpage.jsp"/>
    前者頁面不會轉向include所指的頁面,只是顯示該頁的結果,主頁面還是原來的頁面。執行完后還會回來,相當于函數調用。并且可以帶參數.后者完全轉向新頁面,不會再回來。相當于go to 語句。


    代碼和編程
    1、寫一個Singleton出來
    Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。
    一般Singleton模式通常有幾種種形式:
    第一種形式: 定義一個類,它的構造函數為private的,它有一個static的private的該類變量,在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。

    public class Singleton {
        private Singleton(){}
          //在自己內部定義自己一個實例,是不是很奇怪?
          //注意這是private 只供內部調用
          private static Singleton instance = new Singleton();
          //這里提供了一個供外部訪問本class的靜態方法,可以直接訪問  
          public static Singleton getInstance() {
            return instance;   
          }
        }

        第二種形式:

    public class Singleton {
      private static Singleton instance = null;
      public static synchronized Singleton getInstance() {
      //這個方法比上面有所改進,不用每次都進行生成對象,只是第一次     
      //使用時生成實例,提高了效率!

      if (instance==null)
        instance=new Singleton();
            return instance;   }
    }

    其他形式:
    定義一個類,它的構造函數為private的,所有方法為static的。
    一般認為第一種形式要更加安全些

    2、Java 的通信編程,編程題(或問答),用JAVA SOCKET編程,讀服務器幾個字符,再寫入本地顯示?
    答: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();

    }

    };


    3、JAVA實現一種排序,JAVA類實現序列化的方法(二種) 如在COLLECTION框架中,實現比較要實現什么樣的接口?

    :用插入法進行排序代碼如下

    package test;
    import java.util.*;
    class  InsertSort
    {
     ArrayList al;
     
    public InsertSort(int num,int mod)
     {
      al 
    = new ArrayList(num);
      Random rand 
    = new Random();
      System.out.println(
    "The ArrayList Sort Before:");
      
    for (int i=0;i<num ;i++ )
      {
       al.add(
    new Integer(Math.abs(rand.nextInt()) % mod + 1));
       System.out.println(
    "al["+i+"]="+al.get(i));
      }
     }
     
    public void SortIt()
     {
      Integer tempInt;
      
    int MaxSize=1;
      
    for(int i=1;i<al.size();i++)
      {
           tempInt 
    = (Integer)al.remove(i);
        
    if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue())
        {
         al.add(MaxSize,tempInt);
         MaxSize
    ++;
         System.out.println(al.toString());
        } 
    else {
         
    for (int j=0;j<MaxSize ;j++ )
         {
          
    if

    (((Integer)al.get(j)).intValue()
    >=tempInt.intValue())
          {
           al.add(j,tempInt);
           MaxSize
    ++;
           System.out.println(al.toString());
           
    break;
          }
         }
        }
      }
      System.out.println(
    "The ArrayList Sort After:");
      
    for(int i=0;i<al.size();i++)
      {
       System.out.println(
    "al["+i+"]="+al.get(i));
      }
     }
     
    public static void main(String[] args)
     {
      InsertSort is 
    = new InsertSort(10,100);
      is.SortIt();
     }
    }

    4、編程:編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串。 但是要保證漢字不被截半個,如ABC”4,應該截為AB”,輸入ABCDEF”6,應該輸出為ABC”而不是ABC+漢的半個

    答:代碼如下:

    package test;

    class  SplitString
    {
     String SplitStr;
     
    int SplitByte;
     
    public SplitString(String str,int bytes)
     {
      SplitStr
    =str;
      SplitByte
    =bytes;
      System.out.println(
    "The String is:'"+SplitStr+"';SplitBytes="+SplitByte);
     }
     
    public void SplitIt()
     {
      
    int loopCount;
      

    loopCount
    =(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split

    Byte
    +1);
      System.out.println(
    "Will Split into "+loopCount);
      
    for (int i=1;i<=loopCount ;i++ )
      {
       
    if (i==loopCount){
        

    System.out.println(SplitStr.substring((i
    -1)*SplitByte,SplitStr.length()));
       } 
    else {
        

    System.out.println(SplitStr.substring((i
    -1)*SplitByte,(i*SplitByte)));
       }
      }
     }
     
    public static void main(String[] args)
     {
      SplitString ss 
    = new SplitString("test中dd文dsaf中男大3443n中國43中國人

    0ewldfls
    =103",4);
      ss.SplitIt();
     }
    }

    5、可能會讓你寫一段JdbcOracle的程序,并實現數據查詢.

    :程序如下:

    package hello.ant;
    import java.sql.*;
    public class  jdbc
    {
     String dbUrl
    ="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
     String theUser
    ="admin";
     String thePw
    ="manager";
     Connection c
    =null;
     Statement conn;
     ResultSet rs
    =null;
     
    public jdbc()
     {
      
    try{
        Class.forName(
    "oracle.jdbc.driver.OracleDriver").newInstance();
              c 
    = DriverManager.getConnection(dbUrl,theUser,thePw);
        conn
    =c.createStatement();
      }
    catch(Exception e){
       e.printStackTrace();
      }
     }
     
    public boolean executeUpdate(String sql)
     {
       
    try
       {
         conn.executeUpdate(sql);
         
    return true;
       }
       
    catch (SQLException e)
       {
         e.printStackTrace();
         
    return false;
       }
     }
     
    public ResultSet executeQuery(String sql)
     {
       rs
    =null;
       
    try
       {
         rs
    =conn.executeQuery(sql);
       }
       
    catch (SQLException e)
       {
         e.printStackTrace();
       }
       
    return rs;
     }
     
    public void close()
     {
       
    try
       {
         conn.close();
         c.close();
       }
       
    catch (Exception e)
       {
         e.printStackTrace();
       }
     }
     
    public static void main(String[] args)
     {
      ResultSet rs;
      jdbc conn 
    = new jdbc();
      rs
    =conn.executeQuery("select * from test");
      
    try{
      
    while (rs.next())
      {
       System.out.println(rs.getString(
    "id"));
       System.out.println(rs.getString(
    "name"));
      }
      }
    catch(Exception e)
      {
       e.printStackTrace();
      }
     }
    }

    6、jdom解析xml文件時如何解決中文問題?如何解析?

    :看如下代碼,用編碼方式加以解決

    package test;
    import java.io.*;
    public class DOMTest
    {
     
    private String inFile = "c:\\people.xml";
     
    private String outFile = "c:\\people.xml"
     
    public static void main(String args[])
     {
         
    new DOMTest();
        }
     
    public DOMTest()
     {
      
    try
         { 
          javax.xml.parsers.DocumentBuilder builder 
    =
           

    javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
          org.w3c.dom.Document doc 
    = builder.newDocument();
          org.w3c.dom.Element root 
    = doc.createElement("老師");
          org.w3c.dom.Element wang 
    = doc.createElement("");
       org.w3c.dom.Element liu 
    = doc.createElement("");
          wang.appendChild(doc.createTextNode(
    "我是王老師"));
          root.appendChild(wang);
          doc.appendChild(root);
          javax.xml.transform.Transformer transformer 
    =
           javax.xml.transform.TransformerFactory.newInstance().newTransformer();
          transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, 
    "gb2312");
          transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, 
    "yes");  

       
          transformer.transform(
    new javax.xml.transform.dom.DOMSource(doc),
                
    new

    javax.xml.transform.stream.StreamResult(outFile));
         }
         
    catch (Exception e)
         {
          System.out.println (e.getMessage());
         }
        }
    }

    7、將一個鍵盤輸入的數字轉化成中文輸出

    (例如:輸入:1234567     輸出:一百二拾三萬四千五百六拾七)
    用java語言實現,,請編一段程序實現!
     

    public class Reader {
      
    private String strNum;
      
    private String strNumChFormat;
      
    private String strNumTemp;
      
    private int intNumLen;
      
    private String strBegin;
      
    public Reader(String strNum) {
        
    this.strNum = strNum;
      }
      
    public boolean check(String strNum) {
        
    boolean valid = false;
        
        
    if (strNum.substring(0,1).equals("0")){
         
    this.strNum = strNum.substring(1);
        }
        
    try {
          
    new Double(strNum);
          valid 
    = true;
        }
        
    catch (NumberFormatException ex) {
          System.out.println(
    "Bad number format!");
        }
        
    return valid;
      }
      
    public void init() {
        strNumChFormat 
    = "";
        intNumLen 
    = strNum.length();
        strNumTemp 
    = strNum;
        strNumTemp 
    = strNumTemp.replace('1''');
        strNumTemp 
    = strNumTemp.replace('2''');
        strNumTemp 
    = strNumTemp.replace('3''');
        strNumTemp 
    = strNumTemp.replace('4''');
        strNumTemp 
    = strNumTemp.replace('5''');
        strNumTemp 
    = strNumTemp.replace('6''');
        strNumTemp 
    = strNumTemp.replace('7''');
        strNumTemp 
    = strNumTemp.replace('8''');
        strNumTemp 
    = strNumTemp.replace('9''');
        strNumTemp 
    = strNumTemp.replace('0''');
        strNumTemp 
    = strNumTemp.replace('.''');
        strBegin 
    = strNumTemp.substring(01);
      }
      
    public String readNum() {
        
    if (check(strNum)) {
          init();
          
    try {
            
    for (int i = 1, j = 1, k = 1; i < intNumLen; i++) {
              
    if (strNumTemp.charAt(intNumLen - 1== '' && i == 1) {
                strNumChFormat 
    = "";
              }
              
    else if (strNumTemp.charAt(intNumLen - i) == '' && j == 1) {
                strNumChFormat 
    = "" + strNumChFormat;
              }
              
    else if (strNumTemp.charAt(intNumLen - i) == '') {
                j 
    = 1;
                k 
    = 1;
                strNumChFormat 
    = strNumTemp.charAt(intNumLen - i) + strNumChFormat;
                
    continue;
              }
              
    else {
                strNumChFormat 
    = strNumTemp.charAt(intNumLen - i) + strNumChFormat;
              }
              
    if (strNumTemp.charAt(intNumLen - i - 1!= '' &&
                  strNumTemp.charAt(intNumLen 
    - i - 1!= '') {
                
    if (j == 1 && i < intNumLen) {
                  strNumChFormat 
    = '' + strNumChFormat;
                }
                
    else if (j == 2 && i < intNumLen) {
                  strNumChFormat 
    = '' + strNumChFormat;
                }
                
    else if (j == 3 && i < intNumLen) {
                  strNumChFormat 
    = '' + strNumChFormat;
                }
              }
              
    if (j == 4 && i < intNumLen) {
                j 
    = 0;
              }
              
    if (k == 4 && i < intNumLen) {
                strNumChFormat 
    = '' + strNumChFormat;
              }
              
    else if (k == 8 && i < intNumLen) {
                k 
    = 0;
                strNumChFormat 
    = '' + strNumChFormat;
              }
              j
    ++;
              k
    ++;
            }
            
    while (strNumChFormat.indexOf(""!= -1) {
              strNumChFormat 
    = strNumChFormat.replaceAll(""" ");
            }
            
    if (strNumChFormat.substring(02== "一拾") {
              strNumChFormat 
    = strNumChFormat.substring(1, strNumChFormat.length());
            }
            
    if (strNumChFormat.indexOf("">= 0) {
              String rebegin 
    = strNumChFormat.substring(0,
                  strNumChFormat.indexOf(
    ""));
              String relast 
    = strNumChFormat.substring(strNumChFormat.indexOf(""),
                  strNumChFormat.length());
              
    for (int i = 1; i <= relast.length(); i++) {
                relast 
    = relast.replaceAll("""");
                relast 
    = relast.replaceAll("""");
                relast 
    = relast.replaceAll("""");
                relast 
    = relast.replaceAll("""");
                relast 
    = relast.replaceAll("""");
              }
              strNumChFormat 
    = rebegin + relast;
            }
          }
          
    catch (ArrayIndexOutOfBoundsException ex) {
            ex.printStackTrace();
          }
          
    catch (Exception ex) {
            ex.printStackTrace();
          }
          
    int off = strNumChFormat.indexOf("");
          strNumChFormat 
    = strBegin + strNumChFormat.substring(0);
        }
        
    else {
          strNumChFormat 
    = "";
        }
        
    return strNumChFormat;
      }
      
    public static void main(String args[]) {
        
    try {
          String number 
    = args[0].toString();
          System.out.println(
    "The number is: " + number);
          Reader reader 
    = new Reader(number);
          System.out.println(
    "Output String: " + reader.readNum());
        }
        
    catch (Exception ex) {
          System.out.println(
    "Please input like that: javac Reader <number>");
        }
      }
    }

    8、如何校驗數字型?

    var re=/^\d{1,8}$|\.\d{1,2}$/;
    var str
    =document.form1.all(i).value;
    var r
    =str.match(re);
    if (r==null)
    {
       sign
    =-4;
       
    break;
    }
    else{
       document.form1.all(i).value
    =parseFloat(str);
    }



     
    posted on 2006-01-06 11:02 千山鳥飛絕 閱讀(2735) 評論(7)  編輯  收藏 所屬分類: J2SE

    FeedBack:
    # re: 面試題
    2006-03-20 15:42 | hu
    看了之后覺得自己是典型的眼高手高型的。  回復  更多評論
      
    # re: 面試題
    2006-08-19 14:13 | yz79845
    慕名來到此博克,當即加入收藏夾,自己也剛剛  回復  更多評論
      
    # re: 面試題
    2006-08-19 14:15 | yz79845
    慕名為“如何學J2EE”來到此博克,當即加入收藏夾,同時也注冊自己的博克,希望如博主樣記錄自己每天學到的點點滴滴。突然為java和ajax crazy
      回復  更多評論
      
    # re: 面試題
    2007-01-17 21:16 | daveluck
    將一個鍵盤輸入的數字轉化成中文輸出
    我寫了一個程序,可能會有點錯誤

    import java.util.*;
    public class changRMB
    {
    private String rmb;//輸入的人民幣小寫,是一個雙精度的浮點數
    public changRMB(String r)
    {
    rmb=r;
    }

    private int IntLen()//返回浮點數整數部分的位數
    {
    String str=rmb;
    int i=0;
    while(str.charAt(i)!='.'&&i<str.length())
    i++;
    return i;
    }

    private int returnUnit(int i)//返回浮點數值的單位
    {
    if(i==1)return -1;//-1代表個位,在結果中不顯示
    if((i-1)%8==0)return 4;
    if((i-1)%4==0)return 3;
    if(i%4==0)return 2;
    if((i+1)%4==0)return 1;
    if((i+2)%4==0)return 0;
    return -1;
    }

    public static char UnitToRmb(int unit)//用數字來代表單位
    {
    switch(unit)
    {
    case 0:return '拾';
    case 1:return '佰';
    case 2:return '仟';
    case 3:return '萬';
    case 4:return '億';
    default:return 0;
    }
    }

      回復  更多評論
      
    # re: 面試題[未登錄]
    2007-05-09 19:08 | x
    第4題的程序是錯誤的,根本就沒有搞清楚題目的意思  回復  更多評論
      
    # re: 面試題
    2007-05-10 08:49 | 千山鳥飛絕
    @x
    這些題目也是從網上摘錄的,當時目的是為了自己以后面試時用。  回復  更多評論
      
    # re: 面試題
    2007-08-08 03:00 | ghfj
    584  回復  更多評論
      
    正在閱讀:



    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(35)

    隨筆檔案

    文章分類

    文章檔案

    好友的blog

    我的其他blog

    老婆的Blog

    搜索

    •  

    積分與排名

    • 積分 - 775154
    • 排名 - 56

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产91成人精品亚洲精品| 亚洲性69影院在线观看| 四虎成人精品永久免费AV| 亚洲美女高清一区二区三区| 久久精品国产亚洲麻豆| 国产黄在线观看免费观看不卡 | 亚洲免费观看网站| 久久久久亚洲Av无码专| 在线观看成人免费视频不卡| 亚洲va精品中文字幕| 成年女人免费视频播放77777| 亚洲依依成人亚洲社区| 免费观看午夜在线欧差毛片| 色网站在线免费观看| 中文字幕亚洲日本岛国片| 久久久久久久久久免免费精品| 国产亚洲AV夜间福利香蕉149| 免费无码又爽又刺激高潮软件| 亚洲Av无码精品色午夜| 麻豆国产精品免费视频| 国产精品亚洲专区在线观看 | 国产成人福利免费视频| 亚洲午夜电影在线观看| 免费看a级黄色片| 深夜久久AAAAA级毛片免费看| 亚洲色婷婷一区二区三区| 久久免费国产视频| 亚洲综合久久精品无码色欲| 四虎影视免费永久在线观看| 国内精品免费久久影院| 亚洲精品91在线| 四虎影在线永久免费四虎地址8848aa | 日韩色日韩视频亚洲网站| 97国产免费全部免费观看| 亚洲精华国产精华精华液好用| 亚洲一区二区三区免费观看 | 一级做a毛片免费视频| 国产成人啪精品视频免费网| 国产99久久久久久免费看| 亚洲天堂福利视频| 亚洲国产精品视频|