华为Java面试题集第3部分编程题.docx

上传人:b****1 文档编号:1964809 上传时间:2023-05-02 格式:DOCX 页数:24 大小:23.01KB
下载 相关 举报
华为Java面试题集第3部分编程题.docx_第1页
第1页 / 共24页
华为Java面试题集第3部分编程题.docx_第2页
第2页 / 共24页
华为Java面试题集第3部分编程题.docx_第3页
第3页 / 共24页
华为Java面试题集第3部分编程题.docx_第4页
第4页 / 共24页
华为Java面试题集第3部分编程题.docx_第5页
第5页 / 共24页
华为Java面试题集第3部分编程题.docx_第6页
第6页 / 共24页
华为Java面试题集第3部分编程题.docx_第7页
第7页 / 共24页
华为Java面试题集第3部分编程题.docx_第8页
第8页 / 共24页
华为Java面试题集第3部分编程题.docx_第9页
第9页 / 共24页
华为Java面试题集第3部分编程题.docx_第10页
第10页 / 共24页
华为Java面试题集第3部分编程题.docx_第11页
第11页 / 共24页
华为Java面试题集第3部分编程题.docx_第12页
第12页 / 共24页
华为Java面试题集第3部分编程题.docx_第13页
第13页 / 共24页
华为Java面试题集第3部分编程题.docx_第14页
第14页 / 共24页
华为Java面试题集第3部分编程题.docx_第15页
第15页 / 共24页
华为Java面试题集第3部分编程题.docx_第16页
第16页 / 共24页
华为Java面试题集第3部分编程题.docx_第17页
第17页 / 共24页
华为Java面试题集第3部分编程题.docx_第18页
第18页 / 共24页
华为Java面试题集第3部分编程题.docx_第19页
第19页 / 共24页
华为Java面试题集第3部分编程题.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

华为Java面试题集第3部分编程题.docx

《华为Java面试题集第3部分编程题.docx》由会员分享,可在线阅读,更多相关《华为Java面试题集第3部分编程题.docx(24页珍藏版)》请在冰点文库上搜索。

华为Java面试题集第3部分编程题.docx

华为Java面试题集第3部分编程题

1.现在输入n个数字,以逗号,分开;

然后可选择升或者降序排序;

按提交键就在另一页面显示

  按什么排序,结果为,  ,

提供reset

答案

(1)  publicstaticString[]splitStringByComma(Stringsource){

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

            returnnull;

        StringTokenizercommaToker=  newStringTokenizer(source,",");

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

        inti=0;

        while(commaToker.hasMoreTokens()){

            result[i]=commaToker.nextToken();

            i++;

        }

        returnresult;

  }

循环遍历String数组

Integer.parseInt(Strings)变成int类型

组成int数组

Arrays.sort(int[]a),

a数组升序

降序可以从尾部开始输出

2.金额转换,阿拉伯数字的金额转换成中国传统的形式如:

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

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

答:

父类:

packagetest;

publicclassFatherClass

{

publicFatherClass()

{

System.out.println("FatherClassCreate");

}

}

子类:

packagetest;

importtest.FatherClass;

publicclassChildClassextendsFatherClass

{

publicChildClass()

{

System.out.println("ChildClassCreate");

}

publicstaticvoidmain(String[]args)

{

FatherClassfc=newFatherClass();

ChildClasscc=newChildClass();

}

}

输出结果:

C:

>javatest.ChildClass

FatherClassCreate

FatherClassCreate

ChildClassCreate

4、内部类的实现方式?

答:

示例代码如下:

packagetest;

publicclassOuterClass

{

**classInterClass

{

publicInterClass()

{

System.out.println("InterClassCreate");

}

}

publicOuterClass()

{

InterClassic=newInterClass();

System.out.println("OuterClassCreate");

}

publicstaticvoidmain(String[]args)

{

OuterClassoc=newOuterClass();

}

}

输出结果:

C:

>javatest/OuterClass

InterClassCreate

OuterClassCreate

再一个例题:

publicclassOuterClass{

**doubled1=1.0;

//insertcodehere

}

Youneedtoinsertaninnerclassdeclarationatline3.Whichtwoinnerclassdeclarationsare

valid?

(Choosetwo.)

A.classInnerOne{

publicstaticdoublemethoda(){returnd1;}

}

B.publicclassInnerOne{

staticdoublemethoda(){returnd1;}

}

C.**classInnerOne{

doublemethoda(){returnd1;}

}

D.staticclassInnerOne{

protecteddoublemethoda(){returnd1;}

}

E.abstractclassInnerOne{

publicabstractdoublemethoda();

}

说明如下:

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

故A、B错

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

故D错

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

故C正确

四.答案为C、E

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

答:

Server端程序:

packagetest;

import.*;

importjava.io.*;

publicclassServer

{

**ServerSocketss;

**Socketsocket;

**BufferedReaderin;

**PrintWriterout;

publicServer()

{

try

{

ss=newServerSocket(10000);

while(true)

{

socket=ss.accept();

StringRemoteIP=socket.getInetAddress().getHostAddress();

StringRemotePort=":

"+socket.getLocalPort();

System.out.println("Aclientcomein!

IP:

"+RemoteIP+RemotePort);

in=newBufferedReader(new

InputStreamReader(socket.getInputStream()));

Stringline=in.readLine();

System.out.println("Cleintsendis:

"+line);

out=newPrintWriter(socket.getOutputStream(),true);

out.println("YourMessageReceived!

");

out.close();

in.close();

socket.close();

}

}catch(IOExceptione)

{

out.println("wrong");

}

}

publicstaticvoidmain(String[]args)

{

newServer();

}

};

Client端程序:

packagetest;

importjava.io.*;

import.*;

publicclassClient

{

Socketsocket;

BufferedReaderin;

PrintWriterout;

publicClient()

{

try

{

System.out.println("TrytoConnectto127.0.0.1:

10000");

socket=newSocket("127.0.0.1",10000);

System.out.println("TheServerConnected!

");

System.out.println("PleaseentersomeCharacter:

");

BufferedReaderline=newBufferedReader(new

InputStreamReader(System.in));

out=newPrintWriter(socket.getOutputStream(),true);

out.println(line.readLine());

in=newBufferedReader(newInputStreamReader(socket.getInputStream()));

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

out.close();

in.close();

socket.close();

}catch(IOExceptione)

{

out.println("Wrong");

}

}

publicstaticvoidmain(String[]args)

{

newClient();

}

};

6、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?

如在COLLECTION框架中,实现比较要实现什么样的接口?

答:

用插入法进行排序代码如下

packagetest;

importjava.util.*;

classInsertSort

{

ArrayListal;

publicInsertSort(intnum,intmod)

{

al=newArrayList(num);

Randomrand=newRandom();

System.out.println("TheArrayListSortBefore:

");

for(inti=0;i

{

al.add(newInteger(Math.abs(rand.nextInt())%mod+1));

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

}

}

publicvoidSortIt()

{

IntegertempInt;

intMaxSize=1;

for(inti=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(intj=0;j

{

if

(((Integer)al.get(j)).intValue()>=tempInt.intValue())

{

al.add(j,tempInt);

MaxSize++;

System.out.println(al.toString());

break;

}

}

}

}

System.out.println("TheArrayListSortAfter:

");

for(inti=0;i

{

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

}

}

publicstaticvoidmain(String[]args)

{

InsertSortis=newInsertSort(10,100);

is.SortIt();

}

}

JAVA类实现序例化的方法是实现java.io.Serializable接口

Collection框架中实现比较要实现Comparable接口和Comparator接口

7、编程:

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

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

答:

代码如下:

packagetest;

classSplitString

{

StringSplitStr;

intSplitByte;

publicSplitString(Stringstr,intbytes)

{

SplitStr=str;

SplitByte=bytes;

System.out.println("TheStringis:

′"+SplitStr+"′;SplitBytes="+SplitByte);

}

publicvoidSplitIt()

{

intloopCount;

loopCount=(SplitStr.length()%SplitByte==0)?

(SplitStr.length()/SplitByte):

(SplitStr.length()/Split

Byte+1);

System.out.println("WillSplitinto"+loopCount);

for(inti=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)));

}

}

}

publicstaticvoidmain(String[]args)

{

SplitStringss=newSplitString("test中dd文dsaf中男大3443n中国43中国人

0ewldfls=103",4);

ss.SplitIt();

}

}

8、JAVA多线程编程。

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

希望大家补上,谢谢

9、STRING与STRINGBUFFER的区别。

答:

STRING的长度是不可变的,STRINGBUFFER的长度是可变的。

如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法

Jsp方面

1、jsp有哪些内置对象?

作用分别是什么?

答:

JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):

 request用户端请求,此请求会包含来自GET/POST请求的参数

response网页传回用户端的回应

pageContext网页的属性是在这里管理

session与请求有关的会话期

applicationservlet正在执行的内容

out用来传送回应的输出

configservlet的构架部件

pageJSP网页本身

exception针对错误网页,未捕捉的例外

2、jsp有哪些动作?

作用分别是什么?

答:

JSP共有以下6种基本动作

jsp:

include:

在页面被请求的时候引入一个文件。

jsp:

useBean:

寻找或者实例化一个JavaBean。

jsp:

setProperty:

设置JavaBean的属性。

jsp:

getProperty:

输出某个JavaBean的属性。

jsp:

forward:

把请求转到一个新的页面。

jsp:

plugin:

根据浏览器类型为Java插件生成OBJECT或EMBED标记

3、JSP中动态INCLUDE与静态INCLUDE的区别?

答:

动态INCLUDE用jsp:

include动作实现

includepage="included.jsp"flush="true"/>它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数

静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面

<%@includefile="included.htm"%>

4、两种跳转方式分别是什么?

有什么区别?

答:

有两种,分别为:

includepage="included.jsp"flush="true">

forwardpage="nextpage.jsp"/>

前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。

执行完后还会回来,相当于函数调用。

并且可以带参数.后者完全转向新页面,不会再回来。

相当于goto语句。

Servlet方面

1、说一说Servlet的生命周期?

答:

servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。

这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。

2、Servlet版本间(忘了问的是哪两个版本了)的不同?

希望大家补上,谢谢

3、JAVASERVLETAPI中forward()与redirect()的区别?

答:

前者仅是容器中控制权的转向,在客户端浏览器XXX栏中不会显示出转向后的XXX;后者则是完全的跳转,浏览器将会得到跳转的XXX,并重新发送请求链接。

这样,从浏览器的XXX栏中可以看到跳转后的链接XXX。

所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。

在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

4、Servlet的基本架构

publicclassServletNameextendsbbbServlet{

publicvoiddoPost(bbbServletRequestrequest,bbbServletResponseresponse)throws

ServletException,IOException{

}

publicvoiddoGet(bbbServletRequestrequest,bbbServletResponseresponse)throws

ServletException,IOException{

}

}

Jdbc、Jdo方面

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

答:

程序如下:

packagehello.ant;

importjava.sql.*;

publicclassjdbc

{

StringdbUrl="jdbc:

oracle:

thin:

@127.0.0.1:

1521:

orcl";

StringtheUser="admin";

StringthePw="manager";

Connectionc=null;

Statementconn;

ResultSetrs=null;

publicjdbc()

{

try{

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

c=DriverManager.getConnection(dbUrl,theUser,thePw);

conn=c.createStatement();

}catch(Exceptione){

e.printStackTrace();

}

}

publicbooleanexecuteUpdate(Stringsql)

{

try

{

conn.executeUpdate(sql);

returntrue;

}

catch(SQLExceptione)

{

e.printStackTrace();

returnfalse;

}

}

publicResultSetexecuteQuery(Stringsql)

{

rs=null;

try

{

rs=conn.executeQuery(sql);

}

catch(SQLExceptione)

{

e.printStackTrace();

}

returnrs;

}

publicvoidclose()

{

try

{

conn.close();

c.close();

}

catch(Exceptione)

{

e.printStackTrace();

}

}

publicstaticvoidmain(String[]args)

{

ResultSetrs;

jdbcconn=newjdbc();

rs=conn.executeQuery("select*fromtest");

try{

while(rs.next())

{

System.out.println(rs.getString("id"));

System.out.println(rs.getString("name"));

}

}catch(Exceptione)

{

e.printStackTrace();

}

}

}

2、Class.forName的作用?

为什么要用?

答:

调用该访问返回一个以字符串指定类名的类的对象。

3、Jdo是什么?

答:

JDO是Java对象持久化的新的规范,为javadataobject的简称,也是一个用于存取某种数据仓库中的对象的标准化API。

JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBCAPI的使用)。

这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。

另外,JDO很灵活,因为它可以在任何数据底层上运行。

JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。

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

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

答:

一种分页方法

<%

inti=1;

intnumPages=14;

Stringpages=request.getParameter("page");

intcurrentPage=1;

currentPage=(pages==null)?

(1):

{Integer.parseInt(pages)}

sql="selectcount(*)fromtables";

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2