java面试题大全代码与编程题.docx

上传人:b****7 文档编号:9668461 上传时间:2023-02-05 格式:DOCX 页数:52 大小:36.67KB
下载 相关 举报
java面试题大全代码与编程题.docx_第1页
第1页 / 共52页
java面试题大全代码与编程题.docx_第2页
第2页 / 共52页
java面试题大全代码与编程题.docx_第3页
第3页 / 共52页
java面试题大全代码与编程题.docx_第4页
第4页 / 共52页
java面试题大全代码与编程题.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

java面试题大全代码与编程题.docx

《java面试题大全代码与编程题.docx》由会员分享,可在线阅读,更多相关《java面试题大全代码与编程题.docx(52页珍藏版)》请在冰豆网上搜索。

java面试题大全代码与编程题.docx

java面试题大全代码与编程题

java面试题大全-代码与编程题

代码与编程题

135、写一个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的。

一般认为第一种形式要更加安全些 

136、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

答:

父类:

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();

 }

}

输出结果:

C:

\>java test.ChildClass

FatherClass Create

FatherClass Create

ChildClass Create 

137、内部类的实现方式?

答:

示例代码如下:

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();

 }

}

输出结果:

C:

\>java test/OuterClass

InterClass Create

OuterClass Create

再一个例题:

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();

   } 

说明如下:

一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。

 故 A、B 错

二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。

 

故 D 错

三.非静态内部类的非静态成员可以访问外部类的非静态变量。

 故 C 正确

四.答案为C、E 

138、Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?

 

答:

Server端程序:

package test;

import .*;

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 .*; 

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();

 }

}; 

139、用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

  {

   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

  {

       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

     {

      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

  {

   System.out.println("al["+i+"]="+al.get(i));

  }

 }

 public static void main(String[] args) 

 {

  InsertSort is = new InsertSort(10,100);

  is.SortIt();

 }

}

140、编程:

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。

 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。

 

141、JAVA多线程编程。

 用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。

 

希望大家补上,谢谢 

142、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.

答:

程序如下:

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();

  }

 }

143、ORACLE大数据量下的分页解决方法。

一般用截取ID方法,还有是三层嵌套方法。

 

答:

一种分页方法

<%

  int i=1;

  int numPages=14;

  String pages = request.getParameter("page") ;

  int currentPage = 1;

  currentPage=(pages==null)?

(1):

{Integer.parseInt(pages)}

  sql = "select count(*) from tables";

  ResultSet rs = DBLink.executeQuery(sql) ;

  while(rs.next()) i = rs.getInt

(1) ;

  int intPageCount=1;

  intPageCount=(i%numPages==0)?

(i/numPages):

(i/numPages+1);

  int nextPage ;

  int upPage;

  nextPage = currentPage+1;

  if (nextPage>=intPageCount) nextPage=intPageCount;

  upPage = currentPage-1;

  if (upPage<=1) upPage=1;

  rs.close();

  sql="select * from tables";

  rs=DBLink.executeQuery(sql);

  i=0;

  while((i

%>

//输出内容

//输出翻页连接

合计:

<%=currentPage%>/<%=intPageCount%>

page=1">第一页

href="List.jsp?

page=<%=upPage%>">上一页

<%

  for(int j=1;j<=intPageCount;j++){

  if(currentPage!

=j){

%>

  

page=<%=j%>">[<%=j%>] 

<%

  }else{ 

  out.println(j);

  }

  }

%>

page=<%=nextPage%>">下一页

page=<%=intPageCount%>">最后页 

 

144、用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());

     }

    }

145、编程用JAVA解析XML的方式.

答:

用S

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1