面试程序部分.docx

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

面试程序部分.docx

《面试程序部分.docx》由会员分享,可在线阅读,更多相关《面试程序部分.docx(32页珍藏版)》请在冰点文库上搜索。

面试程序部分.docx

面试程序部分

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=

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

当前位置:首页 > 人文社科

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

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