华为Java面试题集第3部分编程题.docx
- 文档编号:1964809
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:24
- 大小:23.01KB
华为Java面试题集第3部分编程题.docx
《华为Java面试题集第3部分编程题.docx》由会员分享,可在线阅读,更多相关《华为Java面试题集第3部分编程题.docx(24页珍藏版)》请在冰点文库上搜索。
华为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";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 Java 试题 部分 编程