....
学习参考
标签:Java面试题
第一题:判断题
1.Java语言是一种面向对象程序设计语言。(对)
2.在Java有布尔类型,该类型只能有两个值:1和0。(错)
3.Java中一个类可以同时继承多个其他类,但只能实现一个接口。(错)
4.在Java中字符串的长度和字符串中字符的个数是相等的。(对)
5.程序中的异常是错误的一种,通过调试程序可以解决异常。(错)
6.使用Java语言既可以读写二进制文件,又可以读写文本文件。(对)
7.框架JFrame作为图形用户界面的顶级容器,原子组件是不能直接放置到框架的。(错)
8.当最小化小程序时就会调用小程序的stop()方法,暂时释放所占资源。(对)
9.调试Java程序也就是运行Java程序,使用java命令即可完成。(错)
10.线程就是程序,只不过是代码较少。(错)
第二题:选择题
以下对Java语言描述不正确的是(C)
AJava语言是一个完全面对对象的语言
BJava是结构独立、与平台无关的语言
CJava是一种编译性语言
DJava是一种解释性语言
以下说法正确的是(C)
AJava程序文件名必须是和程序文件中定义的类型一致
BJava程序文件名可以和程序文件中定义的类名不一致
CJava源程序文件的扩展名必须是.java
D以上A、C说法正确,B说法不正确
以下有关运行Java应用程序(Application)正确的说法是(B)
AJava应用程序是由Java编译器解释执行的
BJava应用程序经编译后生成的字节代码可由Java虚拟机解释执行
CJava应用程序经编译后可直接在操作系统下运行
DJava应用程序经编译后可直接在浏览器中运行
4、以下有关标识符说法中正确的是(C)
A、任何字符的组合都可以形成一个标识符
B、Java的关键字也可以作为标识符使用
C、标识符是以字母、下划线或$开头,后跟字母、数字、下划线或$的字符组合
D、标识符是不分大小写
5、以下说法正确的是(D)
A、基本字符数据类型有字符和字符串两种
B、字符类型占两个字节,可保存两个字符
C、字符类型占两个字节,可保存一个字符
D、以上说法都是错误的
6、以下有关类型转变的说法错误的是(D)
A、低精度类型向高精度类型转换时,不会丢失数据精度
B、系统会自动进行(整型或浮点型)低精度类型数据向高精度类型数据的转换
....
学习参考
C、高精度类型数据向低精度类型数据的转换、整型和浮点型数据之间的转换,必须强制进
行,有可能会引起数据丢失
D、高精度类型数据向低精度类型转换时,也不会丢失数据精度,因为转换是系统进行的
7、以下正确的关系表达式(D)
A、x≥yB、x+yzC、>=xD、x+y!=z
8、以下正确的逻辑表达式(A)
A、(x+y>7)&&(x-y<1)B、!(x+y)
C、(x+y>7)||(z=a)D、(x+y+z)&&(z>=0)
9、以下有关条件运算符(?:)说法正确的是(D)
A、条件运算符是一个三元运算符,其格式是:表达式1?表达式2:表达式3
B、格式中的“表达式1”是关系或者逻辑表达式,其值是boolean值
C、若“表达式1”成立,该条件表达式取“表达式2”的值,否则取“表达式3”的值
D、以上说法都正确
10、在if(表达式)语句中,“表达式”的值必须是(C)
A、任意整数值B、字符串C、布尔逻辑值D、非零值
11、在switch(表达式)语句中,“表达式”的值必须是(D)
A、整数值B、字符值C、布尔逻辑值D、整数或字符值
12、下列关于for循环和while循环的说法中,正确的是(A)
A、while循环能实现的操作,for循环也能实现
B、while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果
C、两种循环任何时候都可以替换
D、两种循环结构中必须都有循环体,循环体不能为空
13、下面表达式中,用来访问数组中的第一个值的是(C)
A、intArray[1]B、intArray.1C、intArray[0]D、intArray.0
14下面的表达式中正确的是(C)
Strings=”你好”;if(s==”你好”)n(true);
Strings=”你好”;if(s!=”你好”)n(fal);
Strings=”你好”;if((”你好”))n(true);
Strings=”你好”;if(equals(s,”你好”))n(true);
15Stringstr;n(());以上语句的处理结果是(A)
A、编译报错B、运行结果是nullC、运行结果为0D、随机值
16、执行String[]s=newString[10];代码后,下面结论正确的是(D)
A、s[10]为””B、s[10]为null
C、s[0]未定义D、为10
17、构造器(B)被调用。
A、类定义时B、创建对象时
C、调用对象方法时D、适用对象的变量时
18、Java中访问限定符不包括(C)
A、publicB、privateC、defaultD、final
19、有关方法重载的正确说法是(AC)
A、方法的名称一致,限定符不同B、方法的名称一致,限定符相同
C、方法的名称一致,返回值不同D、其他都一致,只有参数定义不同
20、如果任何包中的子类都能访问超类中的成员,则使用的限定符是(A)
A、publicB、privateC、protectedD、transient
....
学习参考
21、有关继承下面的说法正确的是(C)
A、继承的主要目的是隐藏类的属性
B、在Java中,一个类可以从多个类中继承属性和方法
C、继承体现了事物的普遍性和特殊性
D、继承允许子类继承父类中的构造器
22、在下列事件处理机制中不是时间组件的是(C)
A、事件对象B、事件源C、接口D、事件处理器
23、下面说法不正确的是(BD)
A、Java中线程是抢占式的B、Java中线程是分时式的
C、Java中的线程可以共享数据D、Java中的线程可以共享代码
24、下列关于Java线程的说法正确的是(D)
A、每一个Java线程由代码、一个真实的CPU以及数据3部分组成
B、创建线程的两种方法中,从Thead类中继承的创建方式可以防止出现多父类问题
C、Thead类属于程序包
D、以上说法都不正确
25、下面关键字用来处理Java运行时的错误的是(A)
A、try和catch块B、try、catch和finally块
C、try块和throw语句D、throw语句和catch块
26.一个Java源程序编译后生成的文件为,则运行该程序应该使用的命令为(C)。
(A)javacTest(B)
(C)javaTest(D)
27.下面数据类型的定义中错误的是(C)。
(A)inta=10;(B)doubled=1.2;
(C)floatf=1.2;(D)charc=‘A’;
28.类可以保护它的成员变量和成员函数不会被其他对象随意访问到,这一特性属于类的
(A)。
(A)封装性(B)继承性
(C)多态性(D)重载
29.以下关于字符串类的说法正确的是(B)。
(A)String类用于字符串变量,而StringBuffer类用于字符串常量
(B)String类用于字符串常量,而StringBuffer类用于字符串变量
(C)String类的对象只能用“new”关键字生成
(D)StringBuffer字符串的容量是指字符串中字符的个数
30.在Java的异常处理语句中对finally的描述正确的是(A)。
(A)不管是否发生异常,finally中的程序都要执行
(B)只有不发生异常时,finally中的程序才需要执行
(C)只有异常发生时,finally中的程序才需要执行
(D)不管是否发生异常,finally中的程序都不会执行
31.在子类的定义中有一个和父类同名的成员函数,这一现象称为函数的(B)。
(A)继承(B)覆盖
(C)错误(D)重载
32.下面哪种注释能支持javadoc命令(C)。
....
学习参考
(A)//(B)/*……*/
(C)/**……*/(D)都能支持
33.在Java中如果使正在运行的线程进入睡眠状态,可以调用线程的哪一个方法。(B)
(A)wait()(B)sleep()
(C)stop()(D)notify()
34.设有数组的定义int[]a=newint[3],则下面对数组元素的引用错误的是(D)。
(A)a[0];
(B)a[-1];
(C)inti=1;a[i];
(D)int[2>1];
35.关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C)
(A)可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的
子类
(B)可以被两种类访问和引用:该类本身、该类的所有子类
(C)只能被该类自身所访问和修改
(D)只能被同一个包中的类访问
36.下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的(C)。
(A)public(B)private
(C)static(D)final
37.下面哪个是对字符串String的正确定义。(A)
(A)Strings1=“ntnull”;
(B)Strings2=‘null’;
(C)Strings3=(String)‘abc’;
(D)Strings4=(String)‘uface’;
38.给出一段程序,试判断哪个是正确的结果。(D)
publicclassTest{
publicstaticvoidmain(Stringargs[]){
try{(“Helloworld”);}
finally{n(“Finallyexecuting”);}
}
}
(A)无法编译运行,因为没有指定异常
(B)无法编译运行,因为没有catch子句
(C)Helloworld
(D)HelloworldFinallyexecuting
39.下面哪项可以得到数组元素的个数,java中定义数组名为abc。(B)。
(A)()(B)
(C)len(abc)(D)ubound(abc)
40、Applet类中的直接父类是(D)
A、Component类B、Container类C、Frame类D、Panel类
第三题:填空题
常用的Java语言开发工具有__JCreater_____和_jbuilder_____,本书采用__eclip_____。
Java源程序是由__package____、___import____、_ClassDefinition______和
___INTERFACEdEFINITION____组成的。
....
学习参考
HTML语言的语法比较简单,所有标记符都用_尖括号__括起来。
DOS操作系统是按照树形目录结构管理文件的,位于最上层的目录为__根目录_____,每个
目录上一层目录为该目录的___父目录_____,下一层目录为该目录的___子目录____。
5、变量的作用范围是由__数据类型_____决定的,可以分成___静态____和_____动态__。
6、__控制组件_____是图形用户界面的最小单位之一,它里面不在包含其他的元素。例如___
单选按钮___、___文本框___和____菜单命令___。
7、在面向对象设计过程中,通过对象的____属性___和__方法_____两个方面来描述对象。
8、使用面向对象方法解决问题的过程可以大体划分为__总结____、__抽象___和_____加工
_3大步骤。
9、数组是___元素____的集合。每个数组都有长度,也就是其___元素个数____。求数组长
度的语句是___数组名.length数组num_1和num2______。
10、如果声明了一个长度为100的boolean类型的数组boo,则其第一个元素为____ture___,
最后一个元素为__boo[99]__。
11、所谓排序是指___将数据按一定规律排列起来___。到目前为止最常用的排序方法有___
插入___、___选择__和____交换____等排序法。不论使用哪种排序方法编写Java程序,其
最根本的操作是___将无序记录调整为有序记录________。
12、如果一个方法没有返回值,则该方法类型为___.类的构造____。
13、方法的__覆盖_____是指在同一类中,声明方法名称相同但参数不同的多个方法。
14、实例变量的修饰符可以是_类中的非静态变量___,但是不能使用__abstract_____;静态
变量使用___privatepublicprotectedfinal
____修饰符。
15、在类的构造方法和实例方法中,使用关键字__this____可以解决局部变量与实例变量同
名的问题。
16、如果希望某个变量可以被类本身访问和调用,则应该使用___private____修饰符。
17、在Java语言中,.包____是组织Java程序中类的一种手段,其作用与Window系统中的
____文件夹___类似。
18,、接口中的方法均是使用修饰符__public_____和关键字___abstract
____修饰。
19、抽象方法不能使用修饰符__final_____和___virtual___修饰。
20、图形用户界面中的复选框和单选按钮可以分别通过Swing中的___Checkbox____类和
__JFrame_____类来创建。
第四题:程序填空:
1.根据下面程序段写出输出结果。
inta=1,b=2;
Stringstr=“hello”;
n(str+a+b);
n(a+b+str);
程序两次输出结果分别为:hello12
3hello
staticvoidmain(string[]args){
Intsum=0;
For(inti=1;i<=101;i++){
Sum+=I;
....
学习参考
}
n(“1到101的累加和是:”+sum);
}
1到101的累加和是:5151
第五题:简答题
1Java语言有哪些特点?P2
2每一个Java应用程序有几个main()方法?main()方法处于程序的位置不同时,程序运行时
开始点是否还是在main()方法处?
第六题:编程题:
1编写一个名为PrintArguments的程序,打印从命令行中获取的四个参数。例如在命令行中
输入”javaPrintArguments10203040”时,将打印出”10203040”.
publicclassPrintArguments{
publicstaticvoidmain(String[]args){
if(!=4)
{n(“Pleainput4arguments”);
(0);
}
for(inti=0;i<4;i++)(args[i]+”“);
}
}
标签:Java面试题
1.结构化程序设计有哪三种流程?他们分别对应Java中那些语句。
结构化程序设计有三种基本流程:循环、分支和顺序。Java程序中的分支语句包含if语句、
switch语句;循环语句包括了while语句,do-while语句、for语句;其他语句如变量、对象
定义、赋值语句、方法调用语句、以及上面的循环结构、分支结构等按照上下文排列都是顺
序语句。
2.在一个循环中使用break、continue和return有什么不同?
break用于跳出整个循环语句,在循环结构中一旦遇到break语句,不管循环条件如何,程
序立即退出所在的循环体。
continue用于跳过本次循环中尚未执行的语句,但是仍然继续执行下一次循环中的语句。
在循环中使用return语句,将终止当前方法调用,同时终止循环,使流程返回到调用语句
的下一个语句执行。
3.面代码将输出:________
....
学习参考
a=9;b=18;c=4;d=14;e=-14;f=-2
g=18.4;h=2.3999999999999986;i=5;j=3;k=5
publicclasstest3{
publicstaticvoidmain(Stringargs[]){
inta=5+4;
intb=a*2;
intc=b/4;
intd=b-c;
inte=-d;
intf=e%4;
doubleg=18.4;
doubleh=g%4;
inti=3;
intj=i++;
intk=++i;
n(“a=”+a+”;b=”+b+”;c=”+c+”;d=”+d+”;e=”+e+”;f=”+f);
n(“g=”+g+”;h=”+h+”;i=”+i+”;j=”+j+”;k=”+k);
}
}
4.下面代码将输出:________
....
学习参考
25<3=fal
3!=0&&25/3>5=true
0!=0&&25/0>5=fal
publicclassLogicTest{
publicstaticvoidmain(Stringargs[]){
inta=25,b=3;
booleand=a
n(a+”<“+b+”=”+d);//=;
inte=3;
d=(e!=0&&a/e>5);
n(e+”!=0&&”+a+”/”+e+”>5=”+d);
intf=0;
d=(f!=0&&a/f>5);
n(f+”!=0&&”+a+”/”+f+”>5=”+d);
}
}
5.编写程序,求两个整数的最大公约数。
r;
publicclassGcd_Lcm{
publicstaticvoidmain(Stringargs[]){
....
学习参考
Scannersc=newScanner();
n(“输入2个数:以‘,’隔开“);
String[]str=().split(“,”);
intm=nt(str[0]);
intn=nt(str[1]);
intmin=m>n?n:m;
intmax=m>n?m:n;
intnum1=1;
intnum2=max;
for(inti=min;i>0;i–){
if(m%i==0&&n%i==0){
num1=i;break;
}
}
while(true){
if(num2%m==0&&num2%n==0){
break;
}
num2=m*n>num2*2?num2*2:m*n;
}
n(“最大公约数:“+num1+”最小公倍数:”+num2);
}
....
学习参考
}
6.编写程序,打印出如下九九乘法表。
*|123456789
——-|——————————————————-
1|1
2|24
3|369
4|481216
5|510152025
6|61218243036
7|79
8|8664
9|937281
publicclassNineByNineMul{
publicstaticvoidmain(Stringargs[]){
(“*|”);
for(inti=1;i<=9;i++){
(“”+i+””);
}
....
学习参考
n();
(“——-|—–”);
for(inti=1;i<=9;i++){
(“—–”);
}
n();
for(inti=1;i<=9;i++){
(“”+i+”|”);
for(intj=1;j<=i;j++){
(i*j+””);
}
n();
}
}
}
7.下面代码将输出:onetwodefault
inti=1;
switch(i){
ca0:n(“zero”);
break;
....
学习参考
ca1:n(“one”);
ca2:n(“two”);
default:n(“default”);
}
8.下面代码将输出:Equal
classEqualsTest{
publicstaticvoidmain(String[]args){
chara=’u0005′;
Strings=a==0x0005L?“Equal”:”NotEqual”;
n(s);
}
}
9.编写程序,对A[]={30,1,-9,70,25}数组由小到大排序。
publicclassbooktest{
publicstaticvoidmain(String[]args){
inta[]={30,1,-9,70,25};
(“数组原始顺序:“);
for(inti=0;i<;i++)(a[i]+””);
for(inti=0;i<;i++){
intlowerIndex=i;
....
学习参考
for(intj=i+1;j<;j++)
inttemp=a[i];
a[i]=a[lowerIndex];
a[lowerIndex]=temp;
}
(“n数组排序后的顺序:“);
for(inti=0;i<;i++)(a[i]+””);
}
}
10.运行下面代码将输出什么内容?one
inti=1;
switch(i){
ca0:n(“zero”);
break;
ca1:n(“one”);
break;
ca2:n(“two”);
break;
default:n(“default”);
}
....
学习参考
11.编写程序,求2-1000内的所有素数,并按每行5列的格式输出。
publicclassPrimeTest{
publicstaticvoidmain(Stringargs[]){
intnum=2;
(2+””);
for(inti=3;i<=1000;i+=2){
booleanf=true;
for(intj=2;j
if(i%j==0){
f=fal;
break;
}
}
if(!f){continue;}
(i+””);
if(num++%5==0)n();
}
}
}
12.编写程序,生成100个1~6之间的随机数,统计1~6每个数字出现的概率。
....
学习参考
publicclassRandomTest{
publicstaticvoidmain(String[]args){
int[]randomnum=newint[100];
int[]n=newint[6];
doublea;
for(inti=0;i<100;i++){
a=()*6;
a=(a);
randomnum[i]=newDouble(a).intValue();
(randomnum[i]);
switch(randomnum[i]){
ca1:n[0]++;break;
ca2:n[1]++;break;
ca3:n[2]++;break;
ca4:n[3]++;break;
ca5:n[4]++;break;
ca6:n[5]++;break;
}
}
n();//以下可改为循环输出
n(“数字1出现的概率=”+(n[0]/100.0)*100+”%”);
n(“数字2出现的概率=”+(n[1]/100.0)*100+”%”);
....
学习参考
n(“数字3出现的概率=”+(n[2]/100.0)*100+”%”);
n(“数字4出现的概率=”+(n[3]/100.0)*100+”%”);
n(“数字5出现的概率=”+(n[4]/100.0)*100+”%”);
n(“数字6出现的概率=”+(n[5]/100.0)*100+”%”);
}
}
13.编写程序,求1!+2!+3!+…+15!。
publicclassFactorialSum{
staticintf(intx){
if(x<=0)return1;
el
returnx*f(x-1);
}
publicstaticvoidmain(String[]args){
intsum=0;
for(intj=1;j<=15;j++)
{
sum+=f(j);
}
n(sum);
}
....
学习参考
}
14.编写程序,分别用do-while和for循环计算1+1/2!+1/3!+1/4!+…的前15项的和。
for循环代码:
publicclassFor_FactorialSum{
staticintf(intx){
if(x<=0)return1;
el
returnx*f(x-1);
}
publicstaticvoidmain(String[]args){
doublesum=0;
for(intj=1;j<=15;j++)
{
sum+=1.0/f(j);
}
n(sum);
}
}
do-while循环代码:
publicclassDoWhile_FactorialSum{
....
学习参考
staticintf(intx){
if(x<=0)return1;
el
returnx*f(x-1);
}
publicstaticvoidmain(String[]args){
doublesum=0;
intj=1;
do{
sum+=1.0/f(j);
j++;
}
while(j<=15);
n(sum);
}
}
15.编写一个程序,用选择法对数组a[]={20,10,55,40,30,70,60,80,90,100}进行从大到小的排
序。
(分别采用冒泡排序、选择排序和插入排序方法)
publicclassSortAll{
publicstaticvoidmain(String[]args){
inta[]={20,10,55,40,30,70,60,80,90,100};
....
学习参考
n(“—-冒泡排序的结果:“);
maoPao(a);
n();
n(“—-选择排序的结果:“);
xuanZe(a);
n();
n(“—-插入排序的结果:“);
chaRu(a);
}
//冒泡排序
publicstaticvoidmaoPao(int[]x){
for(inti=0;i<;i++){
for(intj=i+1;j<;j++){
if(x[i]>x[j]){
inttemp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
}
for(inti:x){
(i+””);
....
学习参考
}
}
//选择排序
publicstaticvoidxuanZe(int[]x){
for(inti=0;i<;i++){
intlowerIndex=i;
//找出最小的一个索引
for(intj=i+1;j<;j++){
if(x[j]
lowerIndex=j;
}
}
//交换
inttemp=x[i];
x[i]=x[lowerIndex];
x[lowerIndex]=temp;
}
for(inti:x){
(i+””);
}
}
//插入排序
....
学习参考
publicstaticvoidchaRu(int[]x){
for(inti=1;i从1开始,因为第1个数已经是排好序的
for(intj=i;j>0;j–){
if(x[j]
inttemp=x[j];
x[j]=x[j-1];
x[j-1]=temp;
}
}
}
for(inti:x){
(i+””);
}
}
}
16.编写程序,产生30个素数,按从小到大的顺序放入数组prime[]中。
publicclassPrimeArray{
publicstaticvoidmain(Stringargs[]){
int[]primearry=newint[30];
primearry[0]=2;
intnum=1;
....
学习参考
(2+””);
for(inti=3;i<=1000;i+=2){
booleanf=true;
for(intj=2;j
if(i%j==0){
f=fal;
break;
}
}
if(!f){continue;}
primearry[num++]=i;
(i+””);
if(num%5==0)n();
if(num==30)break;
}
}
}
17.一个数如果恰好等于它的因子之和,这个数就称为“完数”。分别编写一个应用程序和小
应用程序求1000之内的所有完数。
publicclassWanshu{
....
学习参考
publicstaticvoidmain(String[]args){
intsum=0,i,j;
for(i=1;i<=1000;i++)
{
for(j=1,sum=0;j
{
if(i%j==0)
sum=sum+j;
}
if(sum==i)
{
(“完数:”+i+””+”其因子是:“);
for(intk=1;k<=sum/2;k++)
{
if(sum%k==0)
(“”+k);
}
n();
}
}
}
}
....
学习参考
18.从键盘读取若干个数,以“-1”结束,按从小到大的顺序排序。
r;
publicclasssc_num{
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner();
intscnum=0,i=0;
int[]scarry=newint[30];
n(“输入整数(-1结束):”);
while(scnum!=-1){
scarry[i]=t();;
scnum=scarry[i];
i++;
}
xuanZe(scarry,i-1);
}
//选择排序
publicstaticvoidxuanZe(int[]x,intn){
for(inti=0;i
intlowerIndex=i;
for(intj=i+1;j
if(x[j]
....
学习参考
lowerIndex=j;
}
}
inttemp=x[i];
x[i]=x[lowerIndex];
x[lowerIndex]=temp;
}
for(inti=0;i
(x[i]+””);
}
}
}
本文发布于:2023-03-15 10:54:40,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678848882263346.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:初级程序员.doc
本文 PDF 下载地址:初级程序员.pdf
留言与评论(共有 0 条评论) |