面试程序部分.docx
- 文档编号:23047391
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:32
- 大小:24.55KB
面试程序部分.docx
《面试程序部分.docx》由会员分享,可在线阅读,更多相关《面试程序部分.docx(32页珍藏版)》请在冰豆网上搜索。
面试程序部分
4、float型floatf=3.4是否正确?
【基础】
答:
不正确;精度不准确,应该用强制类型转换,如下所示:
floatf=(float)3.4。
5、语句floatf=1.3;编译能否通过?
【基础】
答:
不能;应该用强制类型转换,如下所示:
floatf=(float)1.3;。
6、shorts1=1;s1=s1+1;有什么错?
shorts1=1;s1+=1;有什么错?
【基础】
答:
shorts1=1;s1=s1+1;s1+1运算结果是int型,需要强制转换类型;
shorts1=1;s1+=1;可以正确编译,自12、Math.round(11.5)等于多少?
Math.round(-11.5)等于多少?
【基础】
答:
Math.round(11.5)==12Math.round(-11.5)==-11round方法返回与参数
最接近的长整数,参数加1/2后求其floor。
动类型提升。
14、编程题:
用最有效率的方法算出2乘以8等於几?
【基础】
答:
2<<3。
20、以下二条语句返回值为true的有:
A:
“beijing”==“beijing”;
B:
“beijing”.equalsIgnoreCase(newString(“beijing”));【基础】
答:
A和B。
26、定义类A和类B如下:
【基础】
classA{
inta=1;
doubled=2.0;
voidshow(){
System.out.println("ClassA:
a="+a+"\td="+d);
}
}
classBextendsA{
floata=3.0f;
Stringd="Javaprogram.";
voidshow(){
super.show();
System.out.println("ClassB:
a="+a+"\td="+d);
}
}
(1)若在应用程序的main方法中有以下语句:
Aa=newA();
a.show();
则输出的结果如何?
(2)若在应用程序的main方法中定义类B的对象b:
Ab=newB();
b.show();
则输出的结果如何?
答:
输出结果为:
1)ClassA:
a=1d=2.0;
2)ClassA:
a=1d=2.0
ClassB:
a=3.0d=Javaprogram。
49、指出下面程序的运行结果:
【基础】
classA{
static{
System.out.print("1");
}
publicA(){
System.out.print("2");
}
}
classBextendsA{
static{
System.out.print("a");
}
publicB(){
System.out.print("b");
}
}
publicclassHello{
publicstaticvoidmain(String[]ars){
Aab=newB();//执行到此处,结果:
1a2b
ab=newB();//执行到此处,结果:
1a2b2b
}
}
答:
输出结果为1a2b2b;类的static代码段,可以看作是类首次加载(虚拟机加
载)执行的代码,而对于类加载,首先要执行其基类的构造,再执行其本身的构造。
50、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
【基础】
父类:
packagetest;
publicclassFatherClass{
publicFatherClass(){
System.out.println("FatherClassCreate");
}
}
子类:
packagetest;
importtest.FatherClass;
publicclassChildClassextendsFatherClass{
publicChildClass(){
System.out.println("ChildClassCreate");
}
publicstaticvoidmain(String[]args){
FatherClassfc=newFatherClass();
ChildClasscc=newChildClass();
}
}
答:
输出结果为:
FatherClassCreate
FatherClassCreate
ChildClassCreate
51、内部类的实现方式?
【基础】
答:
示例代码如下:
packagetest;
publicclassOuterClass{
privateclassInterClass{
publicInterClass(){
System.out.println("InterClassCreate");
}
}
publicOuterClass(){
InterClassic=newInterClass();
System.out.println("OuterClassCreate");
}
publicstaticvoidmain(String[]args){
OuterClassoc=newOuterClass();
}
}
输出结果为:
InterClassCreate
OuterClassCreate
52、关于内部类:
【基础】
publicclassOuterClass{
privatedoubled1=1.0;
//insertcodehere
}
Youneedtoinsertaninnerclassdeclarationatline3,Whichtwo
innerclassdeclarationsarevalid?
(Choosetwo.)
A.classInnerOne{
publicstaticdoublemethoda(){returnd1;}
}
B.publicclassInnerOne{
staticdoublemethoda(){returnd1;}
}
C.privateclassInnerOne{
doublemethoda(){returnd1;}
}
D.staticclassInnerOne{
protecteddoublemethoda(){returnd1;}
}
E.abstractclassInnerOne{
publicabstractdoublemethoda();
}
答:
答案为C、E;说明如下:
1)静态内部类可以有静态成员,而非静态内部类则不能有静态成员;故A、B
错;
2)静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类
的非静态变量;故D错;
3)非静态内部类的非静态成员可以访问外部类的非静态变量;故C正确。
53、数据类型之间的转换:
1)如何将数值型字符转换为数字?
2)如何将数字转换为字符?
3)如何取小数点前两位并四舍五入?
【基础】
答:
1)调用数值类型相应包装类中的方法parse***(String)或valueOf(String)
即可返回相应基本类型或包装类型数值;
2)将数字与空字符串相加即可获得其所对应的字符串;另外对于基本类型
数字还可调用String类中的valueOf(…)方法返回相应字符串,而对于包装类型
数字则可调用其toString()方法获得相应字符串;
3)可用该数字构造一java.math.BigDecimal对象,再利用其round()方法
进行四舍五入到保留小数点后两位,再将其转换为字符串截取最后两位。
54、字符串操作:
如何实现字符串的反转及替换?
【基础】
答:
可用字符串构造一StringBuffer对象,然后调用StringBuffer中的reverse
方法即可实现字符串的反转,调用replace方法即可实现字符串的替换。
55、编码转换:
怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?
【基础】
答:
示例代码如下:
Strings1="你好";
Strings2=newString(s1.getBytes("GB2312"),"ISO-8859-1");
56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分
隔。
【基础】
答:
函数代码如下:
publicString[]split(Stringstr,intchars){
intn=(str.length()+chars-1)/chars;
Stringret[]=newString[n];
for(inti=0;i if(i ret[i]=str.substring(i*chars,(i+1)*chars); }else{ ret[i]=str.substring(i*chars); } } returnret; } 57、写一个函数,2个参数,1个字符串,1个字节数,返回截取的字符串,要 求字符串中的中文不能出现乱码: 如(“我ABC”,4)应该截为“我AB”,输入(“我 ABC汉DEF”,6)应该输出为“我ABC”而不是“我ABC+汉的半个”。 【基础】 答: 代码如下: publicStringsubString(Stringstr,intsubBytes){ intbytes=0;//用来存储字符串的总字节数 for(inti=0;i if(bytes==subBytes){ returnstr.substring(0,i); } charc=str.charAt(i); if(c<256){ bytes+=1;//英文字符的字节数看作1 }else{ bytes+=2;//中文字符的字节数看作2 if(bytes-subBytes==1){ returnstr.substring(0,i); } } } returnstr; } 58、日期和时间: 1)如何取得年月日、小时分秒? 2)如何取得从1970年到现在的毫秒数? 3)如何取得某个日期是当月的最后一天? 4)如何格式化日期? 【基础】 答: 1)创建java.util.Calendar实例(Calendar.getInstance()),调用其get() 方法传入不同的参数即可获得参数所对应的值,如: calendar.get(Calendar.YEAR);//获得年 2)以下方法均可获得该毫秒数: Calendar.getInstance().getTimeInMillis(); System.currentTimeMillis(); 3)示例代码如下: Calendartime=Calendar.getInstance(); time.set(Calendar.DAY_OF_MONTH, time.getActualMaximum(Calendar.DAY_OF_MONTH)); 4)利用java.text.DataFormat类中的format()方法可将日期格式化。 59、Java编程,打印昨天的当前时刻。 【基础】 答: publicclassYesterdayCurrent{ publicstaticvoidmain(String[]args){ Calendarcal=Calendar.getInstance(); cal.add(Calendar.DATE,-1); System.out.println(cal.getTime()); } } \69、类ExampleA继承Exception,类ExampleB继承ExampleA;【基础】 有如下代码片断: try{ thrownewExampleB(“b”); }catch(ExampleAe){ System.out.printfln(“ExampleA”); }catch(Exceptione){ System.out.printfln(“Exception”); } 输出的内容应该是: A: ExampleAB: ExceptionC: bD: 无 答: 输出为A。 79、用程序给出随便大小的10个数,序号为1-10,按从小到大顺序输出,并输 出相应的序号。 【基础】 答: 代码如下: packagetest; importjava.util.ArrayList; importjava.util.Collections; importjava.util.Iterator; importjava.util.List; importjava.util.Random; publicclassRandomSort{ publicstaticvoidprintRandomBySort(){ Randomrandom=newRandom();//创建随机数生成器 Listlist=newArrayList(); //生成10个随机数,并放在集合list中 for(inti=0;i<10;i++){ list.add(random.nextInt(1000)); } Collections.sort(list);//对集合中的元素进行排序 Iteratorit=list.iterator(); intcount=0; while(it.hasNext()){//顺序输出排序后集合中的元素 System.out.println(++count+": "+it.next()); } } publicstaticvoidmain(String[]args){ printRandomBySort(); } } 80、用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(){ tempInt; 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接口。 90、设计4个线程,其中两个线程每次对j增加1,另两个线程对j每次减少1; 写出程序。 【中等难度】 答: 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题: publicclassTestThread{ privateintj; publicTestThread(intj){this.j=j;} privatesynchronizedvoidinc(){ j++; System.out.println(j+"--Inc--"+ Thread.currentThread().getName()); } privatesynchronizedvoiddec(){ j--; System.out.println(j+"--Dec--"+ Thread.currentThread().getName()); } publicvoidrun(){ (newDec()).start(); newThread(newInc()).start(); (newDec()).start(); newThread(newInc()).start(); } classDecextendsThread{ publicvoidrun(){ for(inti=0;i<100;i++){ dec(); } } } classIncimplementsRunnable{ publicvoidrun(){ for(inti=0;i<100;i++){ inc(); } } } publicstaticvoidmain(String[]args){ (newTestThread(5)).run(); } } 94、写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出 现的次数。 【基础】 答: 代码如下: publicintcountWords(Stringfile,Stringfind)throwsException { intcount=0; Readerin=newFileReader(file); intc; while((c=in.read())! =-1){ while(c==find.charAt(0)){ for(inti=1;i c=in.read(); if(c! =find.charAt(i))break; if(i==find.length()-1)count++; } } } returncount; } 95、Java的通信编程,编程题(或问答),用JAVASOCKET编程,读服务器几个 字符,再写入本地显示? 【基础】 答: Server端程序: packagetest; import.*; importjava.io.*; publicclassServer{ privateServerSocketss; privateSocketsocket; privateBufferedReaderin; privatePrintWriterout; 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("TrytoConnectto 127.0.0.1: 10000"); socket=newSocket("127.0.0.1",10000); System.out.println("TheServerConnected! "); System.out.println("PleaseentersomeCharacter: "); BufferedReaderline=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面试 程序 部分