S1JAVA面试题集.docx
《S1JAVA面试题集.docx》由会员分享,可在线阅读,更多相关《S1JAVA面试题集.docx(24页珍藏版)》请在冰豆网上搜索。
S1JAVA面试题集
JAVA技术面试题
目录
目录
JAVA技术面试题1
1、开发Java程序步骤?
3
2、Java程序的注释分类?
3
3、Java领域分为哪些?
3
4、怎么样理解JAVA的程序概念?
3
5、Java程序的基本框架是什么?
3
6、Java的基本类型有哪些?
3
7、变量命名规则?
3
8、JAVA中常用的运算符有哪些?
这些运算符之间的优先级怎么样?
4
9、JAVA中数据类型之间的转换规则分为:
4
10、boolean类型的常用值为什么?
4
11、JAVA中常用的选择结构有哪些?
4
12、if...elseif...elseif...else与switch的使用场景是什么?
4
13、在JAVA自定义一个生产10-100之间的随机数的公式?
4
14、switch语句中的表达式可以是什么类型数据?
4
15、switch判断表达式中break的作用是什么?
4
16、三元运算符?
:
的作用是什么?
4
17、while循环结构与do...while循环结构的不同?
4
18、java中程序调试的步骤?
4
19、for循环结构与while循环结构的不同?
5
20、程序中break、continue、return跳转语句的不同?
5
21、使用数组四步走是什么?
5
22、数组的定义有哪些方式?
5
23、编写一个程序实现费波拉契数列(就是后面的数字是前面两个数字的和),要求从1到20即可。
请使用数组方式来实现5
24、请打印杨辉三角。
杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和(使用数组实现)5
25、请描述什么是对象,什么是类?
6
26、定义一个类的步骤什么?
6
27、成员变量和局部变量的区别是什么?
6
28、请描述方法的组成部分?
6
29、JAVA中包的作用是什么?
6
30、包命名规范有哪些?
6
31、定义一个方法,该方法带有一个字符串的参数,该方法的功能是实现大小写的转换,如:
输入的是HoWAREyoU通过该方法就可以把她转换为hOwareYOu最后把转换的结果通过return返回。
6
32、String是最基本的数据类型吗?
7
33、Java有没有goto?
7
34、说明一下类变量和实例变量的区别。
7
35、说明实例方法和类方法的区别?
7
36、数组有没有length()方法?
String有没有length()方法?
7
37、什么是循环嵌套?
其特点是什么?
7
38、char型变量中能不能存贮一个中文汉字?
为什么?
7
39、Strings=newString("a");共创建了几个String对象?
7
40、int和Integer有什么区别7
41、如果main方法被声明为private会怎样?
8
42、Java里的传引用和传值的区别是什么?
8
43、Java的”一次编写,处处运行”是如何实现的?
8
44、说明一下publicstaticvoidmain(Stringargs[])这段声明里每个关键字的作用8
45、如果去掉了main方法的static修饰符会怎样?
8
46、为什么Java里没有全局变量?
8
47、如何将String类型转化成Number类型?
8
48、面向对象编程的原则是什么?
8
49、什么是隐式的类型转化?
9
50、显式的类型转化是什么?
9
51、什么是Java虚拟机?
9
52、Java的访问修饰符是什么?
9
53、&操作符和&&操作符有什么区别?
9
54、publicstaticvoid写成staticpublicvoid会怎样?
9
55、声明变量和定义变量有什么不同?
9
56、Java支持哪种参数传递类型?
9
57、你怎么理解变量?
9
58、怎么判断数组是null还是为空?
9
59、程序中可以允许多个类同时拥有都有main方法吗?
9
60、一个类能拥有多个main方法吗?
10
61、一个".java"源文件中是否可以包括多个类(不是内部类)?
有什么限制?
10
62、说说&和&&的区别。
10
63、Java中的“短路”是指什么10
64、在JAVA中如何跳出当前的多重嵌套循环?
10
65、switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
11
66、shorts=1;s=s+1;有什么错?
shorts=1;s+=1;有什么错?
11
67、char型变量中能不能存贮一个中文汉字?
为什么?
12
68、用最有效率的方法算出2乘以8等于几?
12
69、冒泡排序实现12
70、"=="和equals方法究竟有什么区别?
12
71、静态变量和实例变量的区别?
13
72、谈谈你对static关键词的理解14
73、是否可以从一个static方法内部发出对非static方法的调用?
15
74、Integer与int的区别15
75、Math.round(11.5)等於多少?
Math.round(-11.5)等于多少?
15
76、请说出作用域public,private,protected,以及不写时的区别15
77、public、protected和private这些访问权限修饰词的作用16
78、写出JDK中至少5个以上的包名。
16
79、Java是否有过程和函数?
16
80、String是最基本的数据类型吗?
16
81、String s = "Hello";s = s + " world!
";这两行代码执行后,原始的String对象中的内容到底变了没有?
17
82、String和StringBuffer的区别18
83、StringBuffer与StringBuilder的区别18
84、数组有没有length()这个方法?
String有没有length()这个方法?
18
85、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
19
86、final关键词有哪些应用19
87、在eclipse中调试时,怎样查看一个变量的值?
19
88、您看过哪些JAVA方面的书籍,能列举一下吗?
19
89、BS与CS的联系与区别。
19
\
1、开发Java程序步骤?
编辑源程序(以.java为后缀名保存)=>编译.java文件(生成.class文件)=>运行.class文件(输出程序结果)
2、Java程序的注释分类?
1、单行注释//
2、多行注释/**/
3、文档注释/***/
3、Java领域分为哪些?
1、JavaSE、JavaEE、JavaME
4、怎么样理解JAVA的程序概念?
通常指完成某些事情的一种既定方式和过程,可以将程序看成对一系列动作的执行过程的描述
5、Java程序的基本框架是什么?
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("HelloWorld!
!
!
");
}
}
6、Java的基本类型有哪些?
byte,char,short,int,long,float,double,boolean
7、变量命名规则?
1、简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写
2、变量名首字符必须是字母、下划线或者美元符$,其后可以跟字母、数字、下划线已经美元符。
8、JAVA中常用的运算符有哪些?
这些运算符之间的优先级怎么样?
1、算术运算符
2、比较运算符
3、赋值运算符
4、逻辑运算符
运算符之间的优先级:
算术运算符》比较运算符》逻辑运算符》赋值运算符
9、JAVA中数据类型之间的转换规则分为:
1、自动类型转换
2、强制类型转换
10、boolean类型的常用值为什么?
true/false
11、JAVA中常用的选择结构有哪些?
1、if
2、if...else
3、if...else...的嵌套
4、if...elseif...elseif...else...
5、switch
12、if...elseif...elseif...else与switch的使用场景是什么?
1、if...elseif...elseif...else一般使用在对值得范围进行判断
2、发现多个条件均为等值判断,更好的解决办法是使用switch。
13、在JAVA自定义一个生产10-100之间的随机数的公式?
intrandom=(int)(Math.random()*(max-min)+min)
intrandom=(int)(Math.random()*(100-10)+10)
14、switch语句中的表达式可以是什么类型数据?
答:
表达式的值可以是byte、short、int和char类型的数据,但不能是float和double类型的数据。
15、switch判断表达式中break的作用是什么?
用来结束case匹配语句的执行。
16、三元运算符?
:
的作用是什么?
?
:
是if...else...的简化版
17、while循环结构与do...while循环结构的不同?
while结构在循环的开始判断下一个迭代是否应该继续。
do/while结构在循环的结尾来判断是否将继续下一轮迭代。
do结构至少会执行一次循环体。
18、java中程序调试的步骤?
1、设置断点2、单步运行3、观察变量
19、for循环结构与while循环结构的不同?
当循环次数确定时使用for循环否则使用while循环。
20、程序中break、continue、return跳转语句的不同?
1、break:
跳出循环而执行循环后面的语句
2、continue:
跳过循环体中剩余的语句而执行下一次循环
3、return结束方法的调用。
21、使用数组四步走是什么?
1、声明数组2、分配空间3、赋值4、处理数据
22、数组的定义有哪些方式?
int[]arr=newint[5];
intarr[]=newint[5];
int[]arr=newint[]{1,2,3,4,5};
int[]arr={1,2,3,4,5};
23、编写一个程序实现费波拉契数列(就是后面的数字是前面两个数字的和),要求从1到20即可。
请使用数组方式来实现
int[]num=newint[20];
num[0]=0;
num[1]=1;
for(inti=2;i<20;i++){
num[i]=num[i-1]+num[i-2];
}
for(intj=1;j<=20;j++){
if(j%5==0){
System.out.println();
}
System.out.print(num[j-1]+"");
}
24、请打印杨辉三角。
杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和(使用数组实现)
finalintN=10;
int[]num=newint[N];
num[0]=1;
for(inti=1;i!
=N;i++){
for(intj=0;j!
=i;j++){
System.out.print(num[j]+"\t");
}
System.out.println();
num[i]=1;
for(intj=i-1;j!
=0;j--){
num[j]=num[j]+num[j-1];
}
}
25、请描述什么是对象,什么是类?
对象是一个你能够看得到、摸得着的具体实体
类是模子,定义对象将会拥有的特征(属性)和行为(方法),类是抽象的概念,仅仅是模板
26、定义一个类的步骤什么?
1、定义类名2、编写类的属性3、编写类的方法
27、成员变量和局部变量的区别是什么?
作用域不同
局部变量的作用域仅限于定义它的方法
成员变量的作用域在整个类内部都是可见的
初始值不同
Java会给成员变量一个初始值
Java不会给局部变量赋予初始值
28、请描述方法的组成部分?
方法的签名与方法体构成。
29、JAVA中包的作用是什么?
1、允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件
2、更好的保护类、属性和方法
3、防止命名冲突
30、包命名规范有哪些?
1、包名由小写字母组成,不能以圆点开头或结尾
2、包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名
3、包名后续部分依不同机构内部的规范不同而不同
31、定义一个方法,该方法带有一个字符串的参数,该方法的功能是实现大小写的转换,如:
输入的是HoWAREyoU通过该方法就可以把她转换为hOwareYOu最后把转换的结果通过return返回。
publicStringcharConvert(Stringstr){
char[]chs=str.toCharArray();
for(inti=0;iif((int)chs[i]>=65&&(int)chs[i]<=90){
chs[i]=(char)((int)chs[i]+32);
}else{
chs[i]=(char)((int)chs[i]-32);
}
}
Strings=newString(chs);
returns;
}
32、String是最基本的数据类型吗?
String不是基本数据类型,基本数据类型包括byte、int、char、long、float、double、boolean和short。
Java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。
33、Java有没有goto?
goto是Java中的保留关键字,但是现在没有在Java中使用。
34、说明一下类变量和实例变量的区别。
类变量是所有对象共有的,所有的实例对象都共用一个类变量,内存中只有一处空间存放类变量的值。
如果其中一个对象改变了类变量的值,其他对象得到的就是改变后的结果。
当类被加载到内存时,类变量就会分配相应的内存空间。
35、说明实例方法和类方法的区别?
方法前面有static关键字修饰的为类方法,否则为实例方法。
实例方法可以调用该类中的其他方法;类方法只能调用其他类方法,不能调用实例方法;当类文件加载到内存时,实例方法不会被分配内存空间,只有在对象创建之后才会分配。
而类方法在该类被加载到内存时就分配了相应的内存空间。
36、数组有没有length()方法?
String有没有length()方法?
数组没有length()方法,只有length的属性。
String有length()方法。
37、什么是循环嵌套?
其特点是什么?
循环的嵌套,是指在一个循环语句的循环体中又包含另一个完整的循环语句。
多重循环语句的特点是:
外层循环变量相对稳定,内层循环变量逐一变化,即:
“多层循环,内(层)外(层)有别,外(层)变一次,内(层)变一遍。
”
38、char型变量中能不能存贮一个中文汉字?
为什么?
能够定义成为一个中文的,因为Java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的。
39、Strings=newString("a");共创建了几个String对象?
两个。
其中包括一个字符对象和一个字符对象引用对象。
40、int和Integer有什么区别
Java提供两种不同的类型:
引用类型和原始类型(或内置类型)。
Int是java的原始数据类型,Integer是java为int提供的封装类。
Java为每个原始类型提供了封装类。
原始类型封装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
用类型和原始类型的行为完全不同,并且它们具有不同的语义。
引用类型和原始类型具有不同的特征和用法,它们包括:
大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。
对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。
41、如果main方法被声明为private会怎样?
能正常编译,但运行的时候会提示”main方法不是public的”。
42、Java里的传引用和传值的区别是什么?
传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。
43、Java的”一次编写,处处运行”是如何实现的?
Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台独立的。
44、说明一下publicstaticvoidmain(Stringargs[])这段声明里每个关键字的作用
public:
main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。
所以可见性设置为pulic.
static:
Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static。
void:
main方法没有返回值。
String是命令行传进参数的类型,args是指命令行传进的字符串数组。
45、如果去掉了main方法的static修饰符会怎样?
程序能正常编译。
运行时会抛NoSuchMethodError异常。
46、为什么Java里没有全局变量?
全局变量是全局可见的,Java不支持全局可见的变量,因为:
全局变量破坏了引用透明性原则。
全局变量导致了命名空间的冲突。
47、如何将String类型转化成Number类型?
Integer类的valueOf方法可以将String转成Number。
下面是代码示例:
StringnumString=“1000″;
intid=Integer.valueOf(numString).intValue();
48、面向对象编程的原则是什么?
主要有三点,多态,继承和封装
49、什么是隐式的类型转化?
隐式的类型转化就是简单的一个类型赋值给另一个类型,没有显式的告诉编译器发生了转化。
并不是所有的类型都支持隐式的类型转化。
代码示例:
inti=1000;
longj=i;//Implicitcasting
50、显式的类型转化是什么?
显式的类型转化是明确告诉了编译器来进行对象的转化。
代码示例:
longi=700.20;
intj=(int)i;//Explicitcasting
51、什么是Java虚拟机?
Java虚拟机是能移植到不同硬件平台上的软件系统。
52、Java的访问修饰符是什么?
访问权限修饰符是表明类成员的访问权限类型的关键字。
使用这些关键字来限定程序的方法或者变量的访问权限。
它们包含:
public:
所有类都可以访问protected:
同一个包内以及所有子类都可以访问private:
只有归属的类才能访问默认:
归属类及相同包下的子类可以访问
53、&操作符和&&操作符有什么区别?
当一个&表达式在求值的时候,两个操作数都会被求值,&&更像是一个操作符的快捷方式。
当一个&&表达式求值的时候,先计算第一个操作数,如果它返回true才会计算第二个操作数。
如果第一个操作数取值为fale,第二个操作数就不会被求值。
54、publicstaticvoid写成staticpublicvoid会怎样?
程序正常编译及运行。
55、声明变量和定义变量有什么不同?
声明变量我们只提供变量的类型和名字,并没有进行初始化。
定义包括声明和初始化两个阶段Strings;只是变量声明,Strings=newString(“bob”);或者Strings=“bob”;是变量定义。
56、Java支持哪种参数传递类型?
Java参数都是进行传值。
对于对象而言,传递的值是对象的引用,也就是说原始引用和参数引用的那个拷贝,都是指向同一个对象。
57、你怎么理解变量?
变量是一块命名的内存区域,以便程序进行访问。
变量用来存储数据,随着程序的执行,存储的数据也可能跟着改变。
58、怎么判断数组是null还是为空?
输出array.length的值,如果是0,说明数组为空。
如果是null的话,会抛出空指针异常。
59、程序中可以允许多个类同时拥有都有main方法吗?
可以。
当程序运行的时候,我们会指定运行的类名。
JVM只会在你指定的类中查找main方法。
因此多个类拥有main方法并不存在命名冲突的问题。
60、一个类能拥有多个main方法吗?
可以,但只能有一个main方法拥有以下签名:
publicstaticvoidmain(String[]args){}
否则程序将无法通过编译。
编译器会警告你main方法已经存在。
61、一个".java"源文件中是否可以包括多个类(不是内部类)?
有什么限制?
可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。
62、说说&和&&的区别。
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str!
=null&&!
str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。
If(x==33&++y>0)y会增长,If(x==33&&++y>0)不会增长
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31&0x0f的结果为0x01。
备注:
这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富。
63、Java中的“短路”是指什么
在java逻辑运算中使用逻辑运算符||与&&时将采取“短路”运算。
举一个例子
if(a>0||a<1){
//代码1....
}
上面一段代码的执行过程是当a满足大于0的时候将不会再执行后面的a<1代码,这就是“短路”。
64、在JAVA中如何跳出当前的多