Java基础试题
1.使用Java语言编写的源程序保存时的文件扩展名是( B )。
(A).class (B).java (C).cpp (D).txt
【注】java语言的源文件扩展名是.java,编译后会生成.class文件,就是代码文件。
2.设int a=-2,则表达式a>>>3的值为( D )。
(A)0 (B)3 (C)8 (D)很大的一个数
【注】测试的结果是536870911。涉及补码:正数的补码是自身,负数的补码为取反+1。
3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( C )。
(A)a[0]; (B)a[a.length-1];
(C)a[3]; (D)int i=1; a[i];
4.在类的定义中可以有两个同名函数,这种现象称为函数( D )。
(A)封装 (B)继承
(C)覆盖 (D)重载
【注】可以存在同名的方法,但是参数类型和参数不能相同,这样的关系体现了Java中的多态(重载)。
5.在类的定义中构造函数的作用是( D )。
(A)保护成员变量 (B)读取类的成员变量
(C)描述类的特征 (D)初始化成员变量
【注】构造函数通常用于在实例化对象时自动对内部数据成员初始化,设置初始值、分配内存空间等。
而析构函数则用于删除对象时做收尾工作,比如释放申请的空间等。
要创建一个对象,就得调用构造函数。
要销毁一个对象,就会被迫的调用析构函数。
如果成员函数声明称static,不创建对象也能调用 静态成员函数。
6.下面关键字中,哪一个不是用于异常处理语句( B )。
(A)try (B)break
(C)catch (D)finally
7.类与对象的关系是( A )。
(A)类是对象的抽象 (B)对象是类的抽象
(C)对象是类的子类 (D)类是对象的具体实例
【注】对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型,其定义为:class 类名{ }
它们的关系是,对象是类的实例,类是对象的模板。
8.下面哪一个是Java中不合法的标识符(D)
(A)$persons (B)twoNum
(C)_myVar (D)*point
【注】Java的标识符必须以 '$','_',或者字母'a'~'z','A'~'Z'开头,接下来可以是 '$','_',字母'a'~'z','A'~'Z',数字'0'~'9'的任意组成。标识符的长度没有限制。
标识符中不能含有其他符号,当然也不允许插入空格。
9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。
(A)static void
method( )
(B)public void
method( )
(C)final void
method( )
(D)abstract void
method( )
【注】
A是静态方法,可以直接用如下形式调用Test.method();
B是普通public函数,必须实例化类,Test test = new Test();
test.method();
C是final方法,不能被重载,用法同B
D是抽象方法,必须被子类继承并重写,然后调用的方式同B。
10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的(B)。
(A)ArrayList
myList=new Object( )
(B)List
myList=new ArrayList( )
(C)ArrayList
myList=new List( )
(D)List
myList=new List( )
【注】是B不是C。
这个称之为面向接口编程,是java语言的一大优点。ArrayList虽然是一个具体的类,按照ArrayList myList=new ArrayList();的确可以生成一个myList对象,而且编译也不会报错。但是在实际开发中时不采用这样的方式即实际开发时都是
接口名 xxx=new 接口某实现类()。这样便于
1.便于程序规范化设计
2.便与团队协同开发
3.便于转换为组件
4.方便的代码复用,无需了解技术细节。
11.Java源文件和编译后的文件扩展名分别为( B)
(A).class和.java
(B).java和.class
(C).class和.class
(D).java和.java
【注】java语言的源文件扩展名是.java,编译后会生成.class文件,就是代码文件。
13.对于一个Java源文件,import, class定义以及package正确的顺序是: (A)
(A) package,import,class
(B) class,import,package
(C) import,package,class
(D) package,class,import
14.下面哪个是非法的:(B)
(A) int
I = 32; (B) float f = 45.0;
(C) double d = 45.0;
(D) char c = ‘u’; //符号错
【注】应该为float f = 45.0f;
15.Java语言使用的字符码集是(D)
(A) ASCII (B) BCD
(C) DCB (D) Unicode
【注】Java语言所使用的字符集是16位Unicode编码。
16. 如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是(C)
(A) public
(B) protected
(C) private (D) static
【注】
private同一个类可以访问;
public
是全局都可以访问,子类,同一个包,同一个类都可以访问);
protected是同一类,同一个包,子类可以访问;
无修饰符号是缺省类型--default,可以在同一个类,同一个包内访问。
Static修饰状态,以上前三个是修饰权限。
17.下面关于main方法说明正确的是(B)
(A) public main(String args[
])
(B) public static void main(String args[ ])
(C)
private static void main(String args[ ])
(D)
void main()
【注】如下
18.哪个关键字可以对对象加互斥锁?( B )
(A)
transient (B) synchronized
(C)
serialize (D) static
【注】synchronized 线程安全与同步。
19.关于抽象方法的说法正确的是( C )
(A)可以有方法体 (B) 可以出现在非抽象类中
(C) 是没有方法体的方法
(D) 抽象类中的方法都是抽象方法
【注】抽象方法指一些只有方法声明,而没有具体方法体的方法。抽象方法一般存在于抽象类或接口中。所以正确的是C(没有方法体的方法)。
20.java.io包的File类是(B)选择D
(A)字符流类
(B) 字节流类
(C) 对象流类(无此流) (D) 非流类
21.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?(B)
A、String args B、String args[]
C、Char arg D、StringBuffer
args[]
22.以下代码段执行后的输出结果为( A )
int
x=-3; int y=-10;
System.out.println(y%x);
A、 -1 B、2 C、1 D、3
【注】取模符号与被除数一致!求余数,也就是整除之后剩余值,其中-9被整除了,还余下-1.。
23.以下关于继承的叙述正确的是( A )。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口(多个)
C、在Java中一个类不能同时继承一个类和实现一个接口(可以)
D、在Java中接口只允许单一继承(可多重继承)
24. 若有定义:byte[] x={11,22,33,-66};
其中0≤k≤3,则对x数组元素错误的引用是(
C )
A)x[5-3]
B)x[k]
C)x[k+5]
D)x[0]
26.以下哪个不是Java的原始数据类型( B )
A、int B、Boolean C、float D、char
【注】首字母大写的说明是boolean的封装类,继承自Object。就像Integer对应int一类,同一个包,子类可以访问。
27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为(
C )
A) 隐藏
B) 重写
C) 重载
D) Java不支持此特性
28. 以下有关构造方法的说法,正确的是:(
A )
A. 一个类的构造方法可以有多个
B. 构造方法在类定义时被调用
C. 构造方法只能由对象中的其它方法调用。
D. 构造方法可以和类同名,也可以和类名不同
【注】构造方法在生成实例对象的时候被调用;构造方法不能被对象的其他方法调用;构造方法必须和类同名。
30.给出下面代码,关于该程序以下哪个说法是正确的?( B错 )应该选择C。。静态的方法只能调用静态的成员。Math.abs()
public class Person{
static int arr[] = new int[5];
public static void main(String a[])
{
System.out.println(arr[0]); }
}
A、编译时将产生错误
B、编译时正确,运行时将产生错误
C、输出零
D、输出空
31、有以下方法的定义,请选择该方法的返回类型( C 错)。应该选择D
ReturnType
method(byte x, double y)
{
return
(short)x/y*2;
}
A、byte B、short C、int D、double
32.下列类定义中哪些是合法的抽象类的定义?( C)
A.abstract
Animal{abstract void growl();}
B.class
abstract Animal{abstract void growl();}
C.abstract class Animal{abstract void growl();}
D.abstract
class Animal{abstract void growl(){System.out.println(“growl”);};}
33.有以下程序片段,下列哪个选项不能插入到行1。( D )
1.
2.public class
Interesting{
3.//do
sth 此处内部类,就不能写public了
4. }
A、import java.awt.*;
B、package mypackage;
C、class OtherClass{ }
D、public
class MyClass{}一个类不能有两个public
【注】不能有两个public类,A是引用包,B是创建包,C是一个普通类。
34. 设有下面两个赋值语句:
a = Integer.parseInt(“12”);
b = Integer.valueOf(“12”).intValue();
下述说法正确的是( D )。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。
D、a和b都是整数类型变量并且值相等。
【注】Integer,是int类型的封装。java中有一些基本类型,如boolean byte char short int long float
double
这些类型是没有封装的裸类型,其余的所有类,都是继承自Objcet类。裸类型游离于类的继承树之外,不过java为所有这些简单类型都做了封装,其中对int的封装就是Integer
parseInte和intValue这两个方法的返回值都是int。
a和b都是整数类型变量,而非integer对象。
37. 为了使包ch4在当前程序中可见,可以使用的语句是( A )。
A)import
ch4.*; B)package ch4.*;
C)ch4 import; D)ch4 package;
38. 请问所有的异常类皆继承哪一个类?( B )。
A)java.io.Exception
B)java.lang.Throwable
C)java.lang.Exception
D)java.lang.Error
39.进行Java基本的GUI设计需要用到的包是( C )。
A)java.io B)java.sql
C)java.awt D)java.rmi
40. 当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个?(
D )
A)KeyEvent B)ActionEvent
C)ItemEvent D)MouseEvent
填空题:
1.数组x定义:String x[ ][ ]=new int[3][2]; x[0 ][0 ]=”abc”, x[0 ][1]=”12345”;
则 x.length 的值为__3__,x[0][1].length( ) 的值为__5__。
2、Java语言的变量由变量名、_修饰符_、变量属性、_初值___组成。
3、当程序中需要抛出异常时,应该使用_catch_子句,当需要在方法中声明可能抛出的异常类型,应该使用_ throws XXXException _子句。
6、Java源程序文件和字节码文件的扩展名分别为_.java__和__.class__。
7、Java语言的类型检查机制要求对于没有返回值的方法,在其前面必须加__void____进行说明。
8、 在Java语言中,所有的对象均通过_____new____运算符分配内存,并对内存进行自动管理。
10、每个Java
Application程序可以包括许多方法,但是必须有且只能有一个__main_方法,统一格式为_public static void main(String[]args){} _,它是程序执行的入口。
11、 若要在程序中定义一个公用的int型的类成员变量MAX_LENGTH,且该变量的值保持常数值1000,则定义该变量的语句是_ public final int MAX_LENGTH=100___。
12、 子类必须通过_ super
_关键字调用父类有参数的构造函数。
13、 在Java语言中,所有的类都是类__Object __的子类。
14、 在Java程序中,通过类的定义只能实现单重继承,但通过__接口 __ 的定义可以实现多重继承关系。
15、 如果在Java程序中,需要使用java.util包中的所有类,则应该在程序开始处加上语句_ import java.util.* _。
16、 下列程序的运行结果是___01234_____
public class ex2 {
public static void main(String[] args)
{
for(int cnt=0;cnt<10;cnt++)
{
if(cnt==5)
break;
System.out.print(cnt);
}}}
17、 下列程序的运行结果是______4_________
import java.io.*;
public class
ATest{
public
static void main(String args[])
{
SubClass
sb = new SubClass( );
System.out.println(sb.fun( ));
}}
class SuperClass{
int a
=24 , b =5 ;
}
class SubClass
extends SuperClass
{
int
fun( )
{
return
a%b;
}
}
18、 分析下列程序,填上空白处的语句
class point //定义坐标类
{ int x,y;
test(int a,int b)
{x=a;y=b;}
}
class rec extends point __________//定义长方形类
{
int length,width;
rec(int a1,int b1,int l,int w)
{super(a1,b1);
length=l;width=w;
}}
class test
{public static void
main(String args[])
{
___test r1=new__rec(0,0,10,20)______
//定义名为r1的对象同时初始化坐标为0,0,长度为10,宽度为20
r1.print();
}}
19、Java 源文件中最多只能有_____1________________个公共类,其它类的个数不限。
20、在 Java 中所有实现的多维数组,实际上是由一维数组构成的_数组的数组 。
21、设 x =15 ,则表达式 ( x + + )/4 的值是________3_____。
22、___抽象____方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
23、 ___run()_______方法用于定义线程的执行体. ______start()_____方法用于启动线程.
24、String str1=”abc”;
String
str2=new String(“abc”);
System.out.println(str1==str2); 则程序运行后输出结果为:____fault__(因为比较的是地址)_____
25、Java语言中,有一个类是所有类或接口的父类,这个类的名称是 ____Object____。
26、当启动 Applet 程序时,首先调用的方法是_______init()______。(初始化组件)
27、Java语言是一种完全的_____面向对象_____程序设计语言。
28. 如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是____Applet_____类的子类并且存储该源程序文件的文件名为Applet 。
29. 设 int x = 2 ,则表达式 (x++)/3 的值是_______0___________。
30.
Java提供的访问权限修饰符有:public、_private 、protected、友元。
31. Java中有两种常用的字符串类,一个是String,另一个是_ ,StringBuffer _。
【注】String是每次使用都会生成一个对象,不管你用=还是new都会是新的对象。
StringBuffer就是为了补String的这个问题,它可以使用append,这样初始化后就不会生成新的对象了,但是她是线程不安全的。
StringBuilder是线程安全的,所以它的速度要比StringBuffer慢点,其他的他们一样。
32.
Java实现多线程的方法有两种,一种方法是通过创建___ Thread ____类的子类实现多线程,另一种方法是定义一个实现
____ runnable __接口的类。
33.
Java不支持多继承。但它允许一个类同时实现多个___接口___,这就相当于部分实现了多继承。
34.
Java源文件中,________import_____语句位于package语句之后、类定义之前。
35. _FileOutputStream__类是OutputStream类的子类,用来处理以文件作为数据输出的数据流。
Java基础试题的更多相关文章
- Java 基础总结
Java基础总结 jdk:Java的开发环境与部署环境jre:Java的运行环境 Java数据类型分为:基本类型和引用类型 基本类型:①整数类型 byte short int long 默 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- Java基础&笔试题
这些题目是近期我参加过的笔试题和一些我在网上选的部分题,在这里做笔记,认真去学习,更好的应对后面的招聘.有错误欢迎指出. 一.Java基础部分 1.指针在任何情况下都可进行>,<,> ...
- 经典的Java基础面试题集锦
经典的Java基础面试题集锦,欢迎收藏和分享. 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 问题:Java里的传引用 ...
- 收集了50道基础的java面试题
下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...
- Android开发面试经——3.常见Java基础笔试题
Android开发(29) 版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...
- JAVA面试题集之基础知识
JAVA面试题集之基础知识 基础知识: 1.C 或Java中的异常处理机制的简单原理和应用. 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就 ...
- java基础面试题(转)
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...
- 非常全面的java基础笔试题
下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...
随机推荐
- 如何去除内联元素(inline-block元素)之间的间距(转载)
如何去除内联元素(inline-block元素)之间的间距 前几天写一个专题页 div{width:900px;}div a{ display:inline-block; width:300px; ...
- Canvas绘图API
Canvas就是一个画布,可以进行任何的线.图形.填充等一系列的操作. Canvas的Context对象 要使用Canvas来绘制图形必须在页面中添加Canvas的标签 <canvas id=& ...
- 20145210 《Java程序设计》第一周学习总结
教材学习内容总结 第一章: 1.Java三大平台,JavaSE的四个组成部分 Java根据应用领域的不同,区分为Java SE.Java EE.Java ME三大平台. 各应用平台的基础:Java S ...
- GridView分页操作
1.html <PagerStyle HorizontalAlign="Center" /> <PagerTemplate> 第: <asp:Labe ...
- Python 获取 网卡 MAC 地址
/*********************************************************************** * Python 获取 网卡 MAC 地址 * 说明: ...
- MariaDB exists 学习
MariaDB exists 学习 exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就 ...
- 转载:LBP的初步理解
转自http://blog.csdn.net/ty101/article/details/8905394 本文的PDF版本,以及涉及到的所有文献和代码可以到下列地址下载: 1.PDF版本以及文献:ht ...
- 分享"狼用"API一個
API People that are interested in using our service for automated caching of their newly created .to ...
- maven出错The folder is already a source folder
右键build path -> configure build path -> source ,选择 src/main/java.src/test/java删除,然后再新建.
- C语言中的三字母词
C语言中的三字母词(trigraph) 在ANSI C标准中,定义了9个三字母词(trigraph),三字母词就是几个字符的序列,合起来表示另一个字符.三字母词使C语言环境可以在缺少一些必需字符的字符 ...