java实习生面试技巧.docx
《java实习生面试技巧.docx》由会员分享,可在线阅读,更多相关《java实习生面试技巧.docx(11页珍藏版)》请在冰豆网上搜索。
![java实习生面试技巧.docx](https://file1.bdocx.com/fileroot1/2022-11/17/1decc065-d27d-425d-9a29-88acc8af1d13/1decc065-d27d-425d-9a29-88acc8af1d131.gif)
java实习生面试技巧
java实习生面试技巧
【篇一:
实习生java面试题集及详细答案】
1.java有那些基本数据类型,string是不是基本数据类型,他们有何区别。
java语言提供了八种基本类型:
六种数字类型(四个整数型,两个浮点型)
字节型byte8位短整型short16位整型int32位
长整型long64位单精度float32位双精度double64位
一种字符类型
字符型char8位
还有一种布尔型
布尔型:
boolean8位可存储true和false。
string本身就是一个对象而不是基本数据类型,string的变量名是对string类的引用。
2.字符串的操作:
写一个方法,实现字符串的反转,如:
输入abc,输出cba
publicstaticstringreverse(strings){
intlength=s.length();
stringbufferresult=newstringbuffer(length);
for(inti=length-1;i=0;i--)
result.append(s.charat(i));
returnresult.tostring();
}
写一个方法,实现字符串的替换,如:
输入bbbwlirbbb,输出bbbhhtccc。
strings=bbbwlirbbb;
s.replaceall(wlirbbb,hhtccc);
3.数据类型之间的转换
如何将数值型字符转换为数字(integer,double)
使用integer.parseint()和double.parsedouble()方法。
如何将数字转换为字符
classmy
{
inta=12;
labellabel=newlabel();
label.settext(string.valueof(a));
}
如何取小数点前两位,并四舍五入。
system.out.println(四舍五入取整:
(3.856)=
+newbigdecimal(i).setscale(2,bigdecimal.round_half_up));
4.日期和时间
如何取得年月日,小时分秒
datedat=newdate();
dat.getyear();dat.getmonth();dat.getday();dat.gethours();dat.getminutes();dat.getseconds();
如何取得从1970年到现在的毫秒数
longnow=dat.gettime();
如何获取某个日期是当月的最后一天
dateformatedf=dateformate.getinstance();df.format(dat);
如何格式化日期
dateformatedf=dateformate.getinstance();
df.format(dat);
5.数组和集合
数组与集合的区别:
一:
数组声明了它容纳的元素的类型,而集合不声明。
这是由于集合以object形式来存储它们的元素。
二:
一个数组实例具有固定的大小,不能伸缩。
集合则可根据需要动态改变大小。
三:
数组是一种可读/可写数据结构没有办法创建一个只读数组。
然而可以使用集合提供的readonly方只读方式来使用集合。
该方法将返回一个集合的只读版本。
6.文件和目录(i/o)操作
如何列出某个目录下的所有文件
如何列出某个目录下的所有子目录
判断一个文件或目录是否存在
如何读写文件
importjava.io.bufferedreader;
importjava.io.file;
importjava.io.fileinputstream;
importjava.io.filereader;
importjava.io.filewriter;
importjava.io.ioexception;
importjava.io.inputstreamreader;
importjava.io.printwriter;
publicclassfileopreate{
publicstaticvoidmain(string[]args)
{
fileopreatefo=newfileopreate();
try
{
//文件的写入
/*string[]teststr=newstring[50];
for(inti=0;iteststr.length;i++)
{
teststr[i]=我的测试数据00+i;
}
fo.writefile(d:
\,test.txt,teststr);
*/
//文件的写入
/*stringstr=测试;
fo.writefile(d:
\,test001.txt,str);*/
//创建或者删除文件
/*if(fo.createanddeletefile(d:
\,test001.txt))
{
fo.createanddeletefile(d:
\,test002.txt);
}*/
//创建或者删除文件夹
/*fo.createanddeletefolder(d:
\,2009-07-06);*/
//输出一个文件内的文件名称
/*fo.readfolderbyfile(d:
\);*/
//判断一个文件是否是空的
/*fo.fileisnull(d:
\,test002.txt);*/
//读取全部的文件内容
/*fo.readallfile(d:
\,test.txt);*/
//一行一行读取文件内容
fo.readlinefile(d:
\,test.txt);
}
catch(exceptione)
{
e.printstacktrace();
}
}
7.java多态的实现(继承、重载、覆盖)
多态可分为:
1)编译多态:
主要是体现在重载,系统在编译时就能确定调用重载函数的哪个版本。
2)运行多态:
主要体现在oo设计的继承性上,子类的对象也是父类的对象,即上溯造型,所以子类对象可以作为父类对象使用,父类的对象变量可以指向子类对象。
因此通过一个父类发出的方法调用可能执行的是方法在父类中的实现,也可能是某个子类中的实现,它是由运行时刻具体的对象类型决定的。
8.编码转换,怎样实现将gb2312编码的字符串转换为iso-8859-1编码的字符串。
stringstr=newstring(字符串.getbytes(gb2312),iso-8859-1);
9.使用stringbuffer类与string类进行字符串连接时有何区别?
java平台提供了两个类:
string和stringbuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。
这个string类提供了数值不可改变的字符串。
而这个stringbuffer类提供的字符串进行修改。
当你知道字符数据要改变的时候你就可以使用stringbuffer。
典型地,你可以使用stringbuffers来动态构造字符数据。
10.谈谈final,finally,finalize的区别。
final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
11.strings=newstring(xyz);创建了几个stringobject?
两个,一个是strings,另一个是”xyz”。
12.java有没有goto?
goto是java中的保留字,现在没有在java中使用。
13.数组有没有length()这个方法?
string有没有length()这个方法?
数组没有length()这个方法,有length的属性。
string有length()这个方法。
14.overload和override的区别。
override(重写)
1)方法名、参数、返回值相同。
2)子类方法不能缩小父类方法的访问权限。
3)子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4)存在于父类和子类之间。
5)方法被定义为final不能被重写。
overload(重载)
1)参数类型、个数、顺序至少有一个不相同。
2)不能重载只有返回值不同的方法名。
3)存在于父类和子类、同类中。
15.abstractclass和interface有什么区别?
interface只能有成员常量,只能是方法的声明;
而abstractclass可以有成员变量,可以声明普通方法和抽象方法。
声明方法的存在而不去实现它的类被叫做抽象类(abstractclass),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract类的实例。
然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。
不能有抽象构造函数或抽象静态方法。
abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。
取而代之,在子类中实现该方法。
知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。
在接口中,所有方法都是抽象的。
多继承性可通过实现这样的接口而获得。
接口中的所有方法都是抽象的,没有一个有程序体。
接口只可以定义staticfinal成员变量。
接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。
当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。
然后,它可以在实现了该接口的类的任何对象上调用接口的方法。
由于有抽象类,它允许使用接口名作为引用变量的类型。
通常的动态联编将生效。
引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。
16.是否可以继承string类?
string类是final类故不可以继承。
17.面向对象的特征有哪些方面?
1)抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
2)继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3)封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4)多态性:
多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
18.int和integer有什么区别?
java提供两