《JAVA程序设计》期末考试试题(通用9套)
我们在学习、工作生活中,我们都要用到考试题,考试题有助于被考核者了解自己的真实水平。你知道什么样的考试题才能切实地帮助到我们吗?以下是小编为大家整理的《JAVA程序设计》期末考试试题(通用9套),仅供参考,欢迎大家阅读。

《JAVA程序设计》期末考试试题 1
一、 单选题
1、下列程序段执行后的结果是( )。
String s = new String("abcdefg");
for (int i=0; i
System.out.print(s.charAt(i));
}
A) aceg B) ACEG C) abcdefg D) abcd
2、有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( ).
A) 2 7 8 12 35 B) 12 35 8 7 2
C) 35 12 8 7 2 D) 8 7 12 35 2
3、下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是( )。
File f = new File(填代码处);
file =new FileReader(f);
in=new BufferedReader(file);
A) "./1.txt" B) "../my/1.txt" C) "c:\\my\\1.txt" D) "c:\ my\1.txt"
4、应用程序的main方法中有以下语句,则输出的结果是 ( )。
String s1=new String("abc");
String s2=new String("abc");
boolean b1=s1.equals(s2);
boolean b2=(s1==s2);
System.out.print(b1+" "+b2);
A)true false B) false true C) true true D)false false
5、应用程序的main方法中有以下语句,则输出的结果是 ( )。
Hashtable hashtable=new Hashtable();
hashtable.put("x","12345");
hashtable.put("y","67890");
hashtable.put("a","abcde");
System.out.println(hashtable.get("a"));
A) a B) abcde C) 12345 D) 67890
6、下面语句的功能是( )。
RandomAccessFile raf2 = newRandomAccessFile("1.txt","rw" );
A)打开当前目录下的文件1.txt,既可以向文件写数据,也可以从文件读数据。
B)打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。
C)打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。
D) 以上说法都不对。
7、应用程序的main方法中有以下语句,则输出的结果是 ( )。
String s="12345#aaa#bbb#67890";
int n=s.indexOf("#");
int k=s.indexOf("#",n+1);
int m=s.indexOf("#",k+1);
String s2=s.substring(m+1);
System.out.println(s2);
A) 123456 B) 67890 C) aaa D) bbb
8、下面程序段执行后b的值是( )。
Integerinteg =new Integer(9);
boolean b = integ instanceof Object;
A) 9 B) true C) 1 D) false
9、应用程序Test.java的源程序如下,在命令行键入:
java Test aaa bb c
回车后输出的.结果是 ( )。
public class Test {
publicstatic void main(String args[]) {
int k1=args.length;
int k2=args[1].length();
System.out.print(k1+" "+k2);
}
}
A) 3 2 B)1 2 C) 1 3 D)3 3
10、应用程序的main方法中有以下语句,则输出的结果是 ( )。
int b[][]={{1}, {2,2}, {2,2,2}};
int sum=0;
for(int i=0;i
for(int j=0;j
sum*=b[i][j];
}
}
System.out.println("sum="+sum);
A) 32 B)11 C) 2 D) 3
11、应用程序的main方法中有以下语句,则执行后输出的结果是 ( )。
int[] x={125,21,5,168,98};
int max=x[0];
for(int i=1;i
if(x[i]>max)
max=x[i];
}
System.out.println(max);
A) 125 B) 5 C) 98 D) 168
12、程序Test.java编译运行后输出的结果是( )。
public class Test {
Strings1="java";
publicstatic void main(String args[]) {
intz=2;
Testt=new Test();
System.out.println(t.s1+z);
}
}
A) java2 B)2 C)没有输出结果 D)java
13、应用程序的main方法中有以下语句,则输出的结果是 ( )。
Strings1="0.5", s2="12";
double x=Double.parseDouble(s1);
int y=Integer.parseInt(s2);
System.out.println(x+y);
A) 12.5 B) 120.5 C)12 D) “12.5”
14、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( )。
import java.io.*;
public class Test {
publicstatic void main(String args[]) {
try{
Strings="ABCDE";
byteb[]=s.getBytes();
FileOutputStreamfile=new FileOutputStream("test.txt",true);
file.write(b);
file.close();
}
catch(IOExceptione) {
System.out.println(e.toString());
}
}
}
A) ABCABC B) ABCDE C) Test D) ABCDE ABCDE ABCDE
15、下面那些方法不是接口Collection中已声明的方法( )?
A)添加元素的add(Object obj) 方法
B)删除元素的remove(Objectobj)方法
C)得到元素个数的length()方法
D)返回迭代器的iterator()方法,迭代器用于元素遍历
二、多选题
1、下面main()方法的定义哪些是正确的( )?
A) publicstatic void main(String args[]) {} B) publicstatic void main(String[]) {}
C) publicstatic void main(String[] args) {} D)publicstatic void main(String [] x) {}
2、线程对象的生命周期中,通常经历下面哪些状态( )。
A)新建 B)运行 C)就绪 D)死亡
3、下面说法正确的是( )。
A) final 可修饰类、属性(变量)、方法。
B) abstract可修饰类、方法。
C) 抽象方法只有方法头,没有方法体。
D) 关键字final和abstract不能同时使用。
4、下面关于java中输入/输出流的说法正确的是( )。
A) FileInputStream与FileOutputStream类用读、写字节流。
B) Reader与Writer类用来读、写字符流。
C) RandomAccessFile既可以用来读文件,也可以用来写文件。
D) File类用来处理与文件相关的操作。
5、下面说法正确的是( )。
A)如果某公共接口被声明在一个源文件中,则接口必须与源文件具有相同名字。
B)如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。
C)如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。
D)接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。
6、下面关于Java中异常处理try块的说法正确的是( )?
A) try块后通常应有一个catch 块,用来处理try块中抛出的异常。
B) catch 块后必须有finally块。
C)可能抛出异常的方法调用应放在try块中。
D)对抛出的异常的处理必须放在try块中
7、下面关于进程、线程的说法正确的是( )。
A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索。
B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。
C)Java多线程的运行与平台相关。
D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。
8、关于BufferedReader类的readLine()方法,以下说法正确的是()。
A)方法readLine()每次读取一行数据。
B)方法readLine()每次读取一个字节。
C)该方法可能抛出IOException异常,调用该方法时通常应将它放到try块中,并通过catch块处理异常。
D)如果读到流的末尾,该方法返回的结果为null。
三、程序阅读题
1、阅读下面的程序,回答问题(u问3分,v问3分,共6分)。
import java.awt.*;
import javax.swing.*;
public class T extends JFrame {
public T ( ) {
super("GridLayout");
Container con=this.getContentPane();
con.setLayout(new GridLayout(2,3));
con.add(new JButton("a"));
con.add(new JButton("b"));
con.add(new JButton("c"));
con.add(new JButton("d"));
con.add(new JButton("e"));
con.add(new JButton("f"));
setSize(200, 80);
setVisible(true);
}
public static void main(String args[]) {
new T();
}
}
u画图表示程序运行后的图形界面。
v如果程序通过实现某个接口处理按钮的动作事件,则该接口名为何?接口中的方法头声明如何?
答案:
u
v接口名:ActionListener
接口中的方法:publicvoid actionPerformed(ActionEvent e)
2、阅读下面的程序,回答问题(u问3分,v问3分,共6分)。
import java.util.*;
publicclass T {
public static void main(Stringargs[]) {
Set set = new TreeSet();
set.add(new Integer(10));
set.add(new Integer(5));
set.add(new Integer(15));
set.add(new Integer(5));
set.add(new Integer(10));
System.out.println("size =" + set.size());
Iterator it=set.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
}
}
u程序运行后输出的结果如何?
v说明java中的集合(Set接口)和映射(Map接口)的主要区别。
答案:
u
size = 3
5 10 15
vSet接口是不包含重复元素的集合;Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。
3、阅读下面的程序,并回答问题(u问3分,v问3分,共6分)。
import java.io.*;
public class Test {
public static void main(String args[]) throws IOException {
BufferedReader buf=new BufferedReader(
newInputStreamReader(System.in));
while(true) {
String str=buf.readLine();
if(str.equals("quit"))
break;
int x=Integer.parseInt(str);
System.out.println(x*x);
}
}
}
编译运行上面的程序:
u从键盘输入5,回车后输出的结果如何?
v从键盘输入quit,回车后程序执行情况如何?
答案:
u25
v终止应用程序的运行。
《JAVA程序设计》期末考试试题 2
1. 下面哪些是Thread类的方法()
A start() B run() C exit() D getPriority()
答案:ABD
解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。
2. 下面关于java.lang.Exception类的说法正确的是()
A 继承自Throwable B Serialable CD 不记得,反正不正确
答案:A
解析:Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承 Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException继承RuntimeException。
扩展:错误和异常的区别(Error vs Exception)
1) java.lang.Error: Throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。
java.lang.Exception: Throwable的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。
2) Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions).
checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。检查了的异常发生在编译阶段,必须要使用try…catch(或者throws)否则编译不通过。
unchecked exceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。发生在运行期,具有不确定性,主要是由于程序的逻辑问题所引起的。比如ArrayIndexOutOfBoundException, ClassCastException等。从语言本身的角度讲,程序不该去catch这类异常,虽然能够从诸如RuntimeException这样的异常中catch并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是bug,应该被修复,出现此类错误时程序就应该立即停止执行。 因此,面对Errors和unchecked exceptions应该让程序自动终止执行,程序员不该做诸如try/catch这样的事情,而是应该查明原因,修改代码逻辑。
RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。
处理RuntimeException的原则是:如果出现 RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。其他(IOException等等)checked异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
3. 下面程序的运行结果是()
String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);
答案:false
解析:因为str2中的llo是新申请的内存块,而==判断的是对象的地址而非值,所以不一样。如果是String str2 = str1,那么就是true了。
4. 下列说法正确的有()
A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行。
D.一个class只能定义一个constructor
答案:C
解析:这里可能会有误区,其实普通的类方法是可以和类名同名的,和构造方法唯一的区分就是,构造方法没有返回值。
5. 具体选项不记得,但用到的知识如下:
String []a = new String[10];
则:a[0]~a[9] = null
a.length = 10
如果是int []a = new int[10];
则:a[0]~a[9] = 0
a.length = 10
6. 下面程序的运行结果:()
public static void main(String args[]) {
Thread t = new Thread() {
public void run() {
pong();
}
};
t.run();
System.out.print("ping");
}
static void pong() {
System.out.print("pong");
}
#FormatImgID_0#
A pingpong B pongping C pingpong和pongping都有可能 D 都不输出
答案:B
解析:这里考的是Thread类中start()和run()方法的区别了。start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程,进而调用run()方法来执行任务,而单独的调用run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用start()而不是run()。
7. 下列属于关系型数据库的是()
A. Oracle B MySql C IMS D MongoDB
答案:AB
解答:IMS(Information Management System )数据库是IBM公司开发的两种数据库类型之一;
一种是关系数据库,典型代表产品:DB2;
另一种则是层次数据库,代表产品:IMS层次数据库。
非关系型数据库有MongoDB、memcachedb、Redis等。
8. GC线程是否为守护线程?()
答案:是
解析:线程分为守护线程和非守护线程(即用户线程)。
只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。
守护线程最典型的应用就是 GC (垃圾回收器)
9. volatile关键字是否能保证线程安全?()
答案:不能
解析:volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对
volatile的写操作,无法保证线程安全。例如假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1堆count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6;导致两个线程及时用volatile关键字修改之后,还是会存在并发的情况。
10. 下列说法正确的是()
A LinkedList继承自List
B AbstractSet继承自Set
C HashSet继承自AbstractSet
D WeakMap继承自HashMap
答案:AC
解析:下面是一张下载的Java中的集合类型的继承关系图,一目了然。
#FormatImgID_1#
11. 存在使i + 1 < i的数吗()
答案:存在
解析:如果i为int型,那么当i为int能表示的最大整数时,i+1就溢出变成负数了,此时不就
扩展:存在使i > j || i <= j不成立的数吗()
答案:存在
解析:比如Double.NaN或Float.NaN,感谢@BuilderQiu网友指出。
12. 0.6332的数据类型是()
A float B double C Float D Double
答案:B
解析:默认为double型,如果为float型需要加上f显示说明,即0.6332f
13. 下面哪个流类属于面向字符的输入流( )
A BufferedWriter B FileInputStream C ObjectInputStream D InputStreamReader
答案:D
解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。
面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。
面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。
总结:以InputStream(输入)/OutputStream(输出)为后缀的是字节流;
以Reader(输入)/Writer(输出)为后缀的是字符流。
14. Java接口的修饰符可以为()
A private B protected C final D abstract
答案:CD
解析:接口很重要,为了说明情况,这里稍微啰嗦点:
(1)接口用于描述系统对外提供的所有服务,因此接口中的成员常量和方法都必须是公开(public)类型的,确保外部使用者能访问它们;
(2)接口仅仅描述系统能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;
(3)接口不涉及和任何具体实例相关的细节,因此接口没有构造方法,不能被实例化,没有实例变量,只有静态(static)变量;
(4)接口的中的变量是所有实现类共有的,既然共有,肯定是不变的东西,因为变化的东西也不能够算共有。所以变量是不可变(final)类型,也就是常量了。
(5) 接口中不可以定义变量?如果接口可以定义变量,但是接口中的方法又都是抽象的,在接口中无法通过行为来修改属性。有的人会说了,没有关系,可以通过 实现接口的'对象的行为来修改接口中的属性。这当然没有问题,但是考虑这样的情况。如果接口 A 中有一个public 访问权限的静态变量 a。按照 Java 的语义,我们可以不通过实现接口的对象来访问变量 a,通过 A.a = xxx; 就可以改变接口中的变量 a 的值了。正如抽象类中是可以这样做的,那么实现接口 A 的所有对象也都会自动拥有这一改变后的 a 的值了,也就是说一个地方改变了 a,所有这些对象中 a 的值也都跟着变了。这和抽象类有什么区别呢,怎么体现接口更高的抽象级别呢,怎么体现接口提供的统一的协议呢,那还要接口这种抽象来做什么呢?所以接口中 不能出现变量,如果有变量,就和接口提供的统一的抽象这种思想是抵触的。所以接口中的属性必然是常量,只能读不能改,这样才能为实现接口的对象提供一个统 一的属性。
通俗的讲,你认为是要变化的东西,就放在你自己的实现中,不能放在接口中去,接口只是对一类事物的属性和行为更高层次的抽象。对修改关闭,对扩展(不同的实现 implements)开放,接口是对开闭原则的一种体现。
所以:
接口的方法默认是public abstract;
接口中不可以定义变量即只能定义常量(加上final修饰就会变成常量)。所以接口的属性默认是public static final 常量,且必须赋初值。
注意:final和abstract不能同时出现。
15. 不通过构造函数也能创建对象吗()
A 是 B 否
答案:A
解析:Java创建对象的几种方式(重要):
(1) 用new语句创建对象,这是最常见的创建对象的方法。
(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
(3) 调用对象的clone()方法。
(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
(1)和(2)都会明确的显式的调用构造函数 ;(3)是在内存上对已有对象的影印,所以不会调用构造函数 ;(4)是从文件中还原类的对象,也不会调用构造函数。
坐完笔试后,很多人都希望能提前预知面试题目,最好的方法就是整理一些经典的面试题,java面试的专业性比较强,如果你的基础不够扎实,那么最好找些经典的java面试题及答案分析,提前参透一下吧!
java面试题1、说说HashMap和Hashtable的差别
答案分析:
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap类没有分类或排序。他允许一个null键和多个null值。
Hashtable类似于HashMap,不过不允许null键和null值。他也比HashMap慢,因为他是同步的。
java面试题2、Anonymous Inner Class (匿名内部类)是否能extends(继承)其他类,是否implements(实现)interface(接口)?
答案分析:
匿名的内部类是没有名字的内部类。不能extends(继承)其他类,但一个内部类能作为一个接口,由另一个内部类实现。
java面试题3、STRING与STRINGBUFFER的区别是什么?
答案分析:
STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。
java面试题4、什么时候用assert
答案分析:
断言是个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。如果表达式计算为false,那么系统会报告一个AssertionError,他用于调试目的。
java面试题5、Set里的元素是不能重复的,那么用什么方法来区分重复和否呢?是用==还是equals()?他们有何差别?
答案分析:
Set里的元素是不能重复的,那么用iterator()方法来区分重复和否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
java面试题6、List, Set, Map是否继承自Collection接口?
答案分析:
List,Set是
Map不是
《JAVA程序设计》期末考试试题 3
JAVA笔试基础题目
1、string 是最基本的数据类型吗?
2、int 和 integer 有什么区别
3、string 和 stringbuffer 的区别
4、运行时异常与一般异常有何异同?
5、说出 servlet 的生命周期,并说出 servlet 和 cgi 的区别。
6、说出 arraylist,vector, linkedlist 的存储性能和特性
7、ejb 是基于哪些技术实现的?并说出 sessionbean 和 entitybean 的区别,statefulbean 和statelessbean 的区别。
8、collection 和 collections 的区别。
9、&和&&的区别。
江苏电信县级笔试题目
江苏电信县级笔试考的内容为:经济学,财务,会计,营销,管理30道单选,20道多选,10道判断(每题1分)
大题(每题10分):
1授权的益处和流程
2客户购买的动机,联系3g具体说说
3一位客户出差,孩子没人接送,你怎么办?如果同意,是否值得推广?
4根据材料谈谈江苏电信如何实施联合战略
2015年建行笔试行测题
请参加过建行笔试的各位朋友们提供下行测题型,谢谢
行测题型:
第一部分:常识判断
第二部分:言语理解与表达(给一段话概括意思、选词填空)
第三部分:判断推理(图形推理、定义判断、类比推理、逻辑判断)
第四部分:数量关系(数字推理、数学运算)
第五部分:资料分析
尽管知道建行笔试都有行测题,但希望各位朋友们能提供下具体的题型,不胜感激!
波士顿咨询类笔试题目
(一)专业与作文
战略、人力、财务、营销模型名称各五个,并深度描述其中两个的运用
(二)、作文(500~800 字)
1、我看管理咨询业
2、四大商业银行改革之我见
3、中国民企成长之烦恼
4、我看商业新业态
5、我看中国房地产
6、我看中国旅游业
7、农业改革之我见
(三)问答题
1、公司人力资源管理很乱,应采用什么方法?
2、上海一年消费多少啤酒?
3、如果原油开采成本降为0,世界会产生什么影响?
2015年拜耳校招笔试真题
1.1和0之间加上什么符号才可以使得到的数比0大又比1小呢?你知道吗?
2.戴维手里拿着火柴走到厨房,这有一个煤气灶和一个酒精灯,他如果想烧开水,请他应该先点燃什么?
3.有三个不同的信箱,今有4封不同的信欲投其中,共有多少种不同的投法?
4.连续4次抛掷一枚硬币,恰出现两次是正面的概率和最后两次出现是正面的概率。
5.一个口袋内装有除颜色外其他都相同的6个白球和4个红球,从中任意摸出2个,a、2个都是白球的概率;b、2个都是红球的概率;c、一个白球,一个红球的概率。
6.你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到红球的准确几率是多少?
7.在中国文化中中庸思想一直占据着很重要的地位与作用,谈谈你的理解?
8.你知道“世纪之药”吗?
9.谈谈关于公司的几件事?
推理题
1、在房里有三盏灯,房外有三个开关,在房外看不见房内的.情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯?
2、有两根不均匀分布的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段45分钟的时间?
3、一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄。请问三个女儿的年龄分别是多少?为什么?
4、在一张长方形的桌面上放了n个一样大小的圆形硬币。这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心在桌面内时,新放的硬币便必定与原先某些硬币重叠。证明整个桌面可以用4n个硬币完全覆盖?
5、一个球、一把长度大约是球的直径2/3长度的直尺.你怎样测出球的半径?方法很多,看看谁的比较巧妙?
6、五个大小相同的一元人民币硬币。要求两两相接触,应该怎么摆?
数字推理笔试题如何解答
1.熟记各种数字的运算关系。
如各种数字的平方、立方以及它们的邻居,做到看到某个数字就有感觉。这是迅速准确解好数字推理题材的前提。常见的需记住的数字关系如下:
(1)平方关系:2-4,3-9,4-16,5-25,6-36,7-49,8-64,9-81,10-100,11-121,12-144
13-169,14-196,15-225,16-256,17-289,18-324,19-361,20-400
(2)立方关系:2-8,3-27,4-64,5-125,6-216,7-343,8-512,9-729,10-1000
(3)质数关系:2,3,5,7,11,13,17,19,23,29......
(4)开方关系:4-2,9-3,16-4......
以上四种,特别是前两种关系,每次考试必有。所以,对这些平方立方后的数字,及这些数字的邻居(如,64,63,65等)要有足够的敏感。当看到这些数字时,立刻就能想到平方立方的可能性。熟悉这些数字,对解题有很大的帮助,有时候,一个数字就能提供你一个正确的解题思路。如 216 ,125,64()如果上述关系烂熟于胸,一眼就可看出答案但一般考试题不会如此弱智,实际可能会这样 215,124,63,() 或是217,124,65,()即是以它们的邻居(加减1),这也不难,一般这种题5秒内搞定。
2.熟练掌握各种简单运算,一般加减乘除大家都会,值得注意的是带根号的运算。根号运算掌握简单规律则可,也不难。
3.对中等难度以下的题,建议大家练习使用心算,可以节省不少时间,在考试时有很大效果。
注册电气工程师笔试试题
1、TN-C系统,设备对外壳短路,重复接地,求外壳电压 (我的答案是110V)
A
B 98V
C 110V
D 66V
2、1题改成设备不接地等电位联结,(我的答案是66V)
A 110V
B 99V
C 66V
D 44V
3 外接设备B问当设备A发生接地故障,设备B外壳的接触电压是多少?我的答案是110V
4 采用以下那种措施不能防止设备A故障设备B外壳带电 我选A
A 设备B线路接RCD
B 设备B采用局部TT
C (设备B与A没有PE线连接)
D 设备B采用隔离变压器供电。
5 从变压器开始,TN-C-S系统改为TN-S,设备A和B处接触电压有何变化? 我选c
A 降低20%
B 降低
C 降低40%
D 没变化
下列负荷中为二级负荷的是( )
A. 中断供电将造成公共场所秩序混乱者
B. 二类高层建筑的消防控制室、消防水泵、消防电梯和防烟排烟设施等
C. 室外消防用水量为20L/s的公共建筑的消防用电设备
《JAVA程序设计》期末考试试题 4
1、Collection 和 Collections的区别?
Collection是集合的根接口,其下有set及list
Collections是集合的算法。
2、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用?
在比较时先调用hashCode方法,如果不相同,证明不相等。
如果相同,再调用equals方法,如果equals方法相同,证明相等,不相同,证明不相等。
==:主要用在基本数据类型及引用
equals:主要是对象或对象引用的比较。
集合中是否包含某一个元素用contains来判断。
3、List,Set,Map是否继承自Collection接口?
List,set继承于Collection
Map没有继承于Collection,其相对是独立的。
属于Collection类型的对象,可以通过构造函数将一个集合构造成另外一个集合。
4、面向对象的特征有哪些方面?
1.抽象:
找共性,将共有的属性、方法放到父类中
2.继承:
子类继承于父类,具有父类的所有属性与方法,可以重用,也可以覆盖。
3.封装:
一个类包括多个属性及方法。
4. 多态性:
5、String是最基本的数据类型吗?
基本数据类型包括byte、int、char、long、float、double、boolean和short。
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类
6、int 和 Integer 有什么区别?
int 是基本数据类型,不是对象,占一个内存空间,没有方法。与其同类的有long,char,doble
Integer是封装类,具有方法及属性。与其同类的有Long,Double.Float
7、运行时异常与一般异常有何异同?
运行时异常:JVM抛出的异常,代码中不用处理。
一般异常:用户抛出的异常,如果用throws 声明了,调用这个方法的代码必须对其处理。
8、&和&&的区别?
&:与: 左边若为false右边还执行。
:短路与,左边若为false右边不执行。
9、final,finally,finalize的区别?
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
10、heap和stack有什么区别?
栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素
11、Static Nested Class 和 Inner Class的不同?
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
12、GC是什么? 为什么要有GC?
GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
13、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)
14、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round方法返回与参数最接近的长整数,参数加1/2后求其floor.
15、Java有没有goto?
java中的保留字,现在没有在java中使用。
16、给出一个你最常见到的runtime exception ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException
一般异常:
IOException
FileNotFoundException
SqlException
17、数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length这个属性
String有length()这个方法.
18、构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
19、是否可以继承String类?
String类是final类故不可以继承。
20、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
21、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行,在return前执行。
22、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
不对,有相同的 hash code
这是java语言的定义:
1) 对象相等则hashCode一定相等;
2) hashCode相等对象未必相等
23、四种会话跟踪技术?
Cookie
Session
Hidden
url 重写
24、写一个Singleton出来。
Singleton模式主要作用是保证在Java应用程序中,一个类只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的'getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定义一个类,它的构造函数为private的,所有方法为static的。
一般认为第一种形式要更加安全些
25、Java中的异常处理机制的简单原理和应用。
原理: 有错直接转到异常处理部分或向上抛出。
应用:JAVA的异常就是错误,有两种,一种是运行时,编码可以不用捕捉。一种是一般异常,如果throws声明了,必须进行处理。
26、描述一下JVM加载class文件的原理机制?
JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。
《JAVA程序设计》期末考试试题 5
1). applet的运行过程要经历4个步骤,其中哪个不是运行步骤?
A.浏览器加载指定URL中的HTML文件
B.浏览器显示HTML文件
C.浏览器加载HTML文件中指定的applet类
D.浏览器中的Java运行环境运行该applet
正确答案:B
2). 二维数组A[O,…,8][0,…,9],其每个元素占2字节。从首地址400开始,按行优先顺序存储,则元素A[8][5]的存储地址为( )。
A.570
B.506
C.410
D.482
正确答案:A
答案解析:A[8][5]元素存储的位置在第9行第6列,所以A[8][5]之前存储的个数应为8×10+5 = 85,这些元素占用的空间为85×2字节=170字节,所以A[8][5]的存储位置为400+170= 570。
3). 用于生产过程控制的系统,一般都是( ),它要求有对输入数据及时做出响应的能力。
A.批处理系统
B.分时系统
C.实时系统
D.及时系统
正确答案:C
答案解析:用于生产过程控制的系统,一般都是实时系统,它要求有对输入数据及时做出反应(响应)的能力。由于环境和控制对象以及工作任务的不同,控制系统对计算机系统的要求也会不同,一般会对计算机系统的'可靠性、封闭性、抗干扰性等指标提出要求。
4). Java语言的许多特点中,下列哪个特点是C++语言所不具备的?
A.高性能
B.跨平台
C.面向对象
D.有类库
正确答案:B
5). 在匹配器(Matcher)类中,用于寻找下一个模式匹配串的方法是( )。
A.static boolean matches()
B.boolean matcher .fi nd()
C.i nt matcher .start()
D.i nt matcher .end()
正确答案:A
答案解析:本题考查考生对Java 中的匹配器(Matcher)类的理解。Matcher 类用于将一个输入字符串i nput 和模式串pattern 相比较。Boolean matcher .fi nd()方法用于寻找下一个模式匹配串;i nt matcher .start()方法用于返回匹配串的一个起始索引整数值;i nt matcher .end()方法用于返回匹配串的一个终止索引整数值。而用于输入字符串与模式串比较的方法是static boolean matches(),选项A 正确。
6). J2EE和( )语言绑定。
A.C
B.C++
C.Java
D.汇编语言
正确答案:C
答案解析:J2EE的基础是J2SE,以Java为平台;而C语言用于ODBCAPI。由于两者不兼容,SUN公司才提出了JDBC作为Java几个平台与麴据库的标准连接。
7). 下列关于结构化设计原则的描述,错误的是
A.在块和进程的非正常出口处往往需要调用GOTO语句,使用GOTO语句使程序执行效率提高,但是滥用GOTO语句确实有害,应该避免使用GOTO语句。
B.程序设计时应该自顶向下,逐步求精。
C.程序设计时,应该将复杂问题进行模块化,就是将程序设计的总目标分解为若干个分目标,再进一步分解为具体的小目标。
D.在进行程序设计时,应该尽量在一行书写一条语句,尽量做到效率第一,清晰第二。
正确答案:D
8). 如果线程调用下列方法,不能保证使该线程停止运行的是( )。
A.sleep()
B.stop()
C.yield()
D.wait()
正确答案:C
答案解析:线程的方法中sleep()方法的作用是使比当前线程优先级低的线程运行。该方法使一个线程暂停运行一段固定时间。在休眠时间内,线程将不运行,低优先级的线程将有机会运行。yield()方法为只让给同等优先级的线程运行。如果没有同等优先级的线程是可运行状态,yield()方法将什么也不做,即线程将继续运行。stop()方法是强行终止线程。wait()方法是线程间交互的方法,是使一个线程停止运行,进入等待状态。
9). 开发软件时对提高开发人员工作效率至关重要的是( )。
A.操作系统的资源管理功能
B.先进的软件开发工具和环境
C.程序员的数量
D.计算机的并行处理能力
正确答案:B
答案解析:先进的软件开发工具和环境对提高开发人员工作效率是至关重要的。
10). 信息隐蔽的概念与下述哪一种概念直接相关( )。
A.软件结构定义
B.模块独立性
C.模块类型划分
D.模拟耦合度
正确答案:B
答案解析:信息隐蔽的概念与模块独立性这一概念直接相关。
《JAVA程序设计》期末考试试题 6
一.选择题(30分)
1.下列哪些情况可以终止当前线程的运行?
a. 抛出一个异常时。
b. 当该线程调用sleep()方法时。
c. 当创建一个新线程时。(与当前进程无关)
d. 当一个优先级高的线程进入就绪状态时。
2. 下面哪些为构造函数的特性定义
a. 在类中声明构造函数时,名称应该与类名相同
b. 具有重载特性,可以建立多个相同的名称
c. 使用类建立新对象时,会自动执行构造函数,因此在构造函
数内设定变量的初值或进行内存分配
d. 以上都是
3. 关于异常处理机制的叙述哪些正确
a. catch部分捕捉到异常情况时,才会执行finally部分(无论是否有毛病,都执行)
b. 当try区段的程序发生异常时,才会执行catch区段的程序
c. 不论程序是否发生错误及捕捉到异常情况,都会执行finally部分
d. 以上都是
4. 下列关于接口的叙述中哪些是正确的
a. 接口中的数据必须设定初值(就是接口中的常量)
b. 接口中的方法都是抽象方法
c. 接口可以声明引用
d. 以上都正确
5.Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是对的?
A. 重写是父类与子类之间多态性的一种表现。
B. 重写是一个类中多态性的一种表现。
C. 重载是一个类中多态性的一种表现。
D. 重载是父类与子类之间多态性的一种表现。
6.在Struts应用的视图中包含哪些组件?
A. JSP
B. Servlet
C. ActionServlet
D. Action
E. 代表业务逻辑或业务数据的JavaBean
F. EJB
G. 客户化标签
7. struts框架中,关于FormBean,下列哪些说法是正确的:
A FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给Action
B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证
C 用户每次提交表单,都会产生一个新的FormBean实例
D 动态FormBean不能进行验证操作
8哪些方法可以进行servlet的调试?()
A、使用打印语句; 在桌面计算机上运行服务器
B、使用Apache Log4J
C、使用IDE集成的调试器
D、直接查看HTML源码 ????
E、返回错误页面给客户
9、下面关于servlet的功用说法正确的有哪些?()
A、读取客户程序发送来的显式数据
B、读取客户程序发送来的隐式数据
C、生成相应的结果
D、发送显式的数据给客户程序
E、发送隐式的数据给客户程序
10、下面关于session的用法哪些是错误的?(
A、HttpSession session = new HttpSession();
request.getSession();
B、String haha =(String) session.getParameter(Attribute)(“haha”);
C、session.removeAttribute(“haha”);
D、session. setAttribute(“haha”,值);
11、关于说法正确的有哪些?()
A、URL的输出在请求时入到JSP页面中
B、不能含有影响整个页面的JSP内容
C、被包含文件改变后不需更改使用它的页面
D、被包含文件更改后,需要手动地更新使用它的页面(不需要手动更新)
12、关于bean的说法正确的有哪些?()
A、具备一个零参数(空)的构造函数(不是必须的)
B、不应该有公开的实例变量(字段)
C、所有的属性都必须通过getXxx和setXxx方法来访问
D、布尔型的属性使用isXxx,而非getXxx
13、下面关于MVC说法错误的有哪些?()
A、必须使用复杂的框架
B、使用内建的RequestDispatcher能够很好地实现MVC
C、当其中一个组件发生变化的时候,MVC影响整个系统的设计
D、我们可以用MVC来处理单个请求
14、下面的标签中哪些是JSTL标签?()
15、struts框架,错误的是,下面那些说法正确?
A Struts中无法完成上传功能
B Struts框架基于MVC模式
C Struts框架容易引起流程复杂、结构不清晰等问题(清晰)
D Struts可以有效地降低项目的类文件数目
二、填空题( 5分)
1、调用函数MOD(123,10)返回值为___。
2、select round (123.67,1) from dual;这语句输出值为______。
3、创建一个临时替代变量使用的字符是_____。
4、若v_comm = 2800, X := NVL (V_comm,0) ,则X的值为____。
5、调用函数INSTR(‘Here you are’,’er’)返回值为___。
三、判断题(10分)
1、WHERE子句限制行记录,也可以指定限制分组结果的条件。 ()
2、具有UNIQUE约束的列不能包含多个空值。 ()
3、DATE型数据中包含着时间值。 ()
4、具有外键约束的列可以包含空值。 ()
5、如果在类型为4)的列中输入“hello”,则只能存储hell。 ()
6、含有Group by子句的`查询,其结果是排好序的。 ()
7、定义游标时,其中的select语句不能使用order by子句。(子查询
不能用) ()
9、触发器一定会被激发。 、过程可以有返回值。 ()
10、instead
of触发器只是基于视图的。
四、写出相应的SQL语句(括号内为列名)(10分)
1、查询从事各工作(JOB)的员工人数。
2、查询与员工SMITH在同一部门(DEPTNO)的员工的姓名(ENAME),工资(SAL)和部门。
3、查询所有员工的姓名(ENAME),工资(SAL)和工资等级(GRADE)。
4、查询获得工资(SAL)最高的3个员工信息。
5、查询所有员工的姓名(ENAME)及其主管姓名(ENAME)。
五、简答题(15分)
1. 在PL/SQL程序中,进行用户自定义异常处理的3个步骤是
什么?
2. 面向对象的特征有哪些方面?并简要介绍
3. List、Map、Set三个接口,存取元素时,各有什么特点?
List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。
4 .struts1.0和struts2.0的区别?如何控制两种框架中的单例模式?
5. 描述一下如何在struts1.0实现国际化,以两国语言(中文,英文)为例:
6.struts中怎么配置form-bean、action
7. Hibernate自带的分页机制是什么?如果不使用Hibernate自带的分页,则采用什么方式分页?
8. hibernate中一对多配置文件返回的是什么?
9.什么样的数据适合存放到第二级缓存中?
10你一般用spring做什么?
11项目中如何体现Spring中的切面编程,具体说明。
12 触发触发器的数据操作有哪些?
13 解释视图的含义以及使用视图的好处。
14 简述ORACLE中5种约束及其作用。
15 ORACLE中过程和函数的异同点。
六、编程题(30分)
1、创建一个PL/SQL块,根据用户输入的编号,在emp表中查询出该编号的员工姓名、部门号及其主管编号,要有异常处理。
2、创建一个PL/SQL块,根据用户输入的工作,从emp表中逐条输出从事这一工作的每位员工的编号、姓名和受雇如期,每条信息格式如下:(用游标实现)
编号 姓名 受雇日期
7751 JOHN 95-12-31
3、编写一个函数,用于判断EMP表中某一工作(JOB)是否存在,若EMP表存在此工作名称,则返回TRUE,否则返回FALSE。
4、编写一触发器,在EMP表执行插入或修改前被激发,此触发器将对员工的工资(SAL)超过5000进行报错,不能插入或修改,不超
过5000的才将员工编号、工作及当时的日期(SYSDATE)插入UP_EMP表
(注:此表已建好,表结构为UP_EMP(EMPNO NUMBER(4),SAL NUMBER(7,2),UDETE DATE))
5下面程序的输出结果是多少?
importjava.util.Date;
public class Test extends Date{
public static void main(String[] args) {
new Test().test();}
public void test(){
System.out.println(super.getClass().getName());}}
6下面的程序代码输出的结果是多少? public class smallT
{}
public static void main(String args[]) { } public int get() { } try { } finally { } return 2 ; return 1 ; smallT t = new smallT(); int b = t.get(); System.out.println(b);
7子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
8去掉一个Vector集合中重复的元素
9有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数
10. xxx公司的sql面试
Table EMPLOYEES Structure:
EMPLOYEE_ID NUMBER Primary Key,
FIRST_NAME VARCHAR2(25),
LAST_NAME VARCHAR2(25),
Salary number(8,2),
HiredDate DATE,
Departmentid number(2)
Table Departments Structure:
Departmentid number(2) Primary Key,
DepartmentName VARCHAR2(25).
(1)基于上述EMPLOYEES表写出查询:写出雇用日期在今年的,或者工资在[1000,2000]之间的,或者员工姓名(last_name)以’Obama’打头的所有员工,列出这些员工的全部个人信息。
(2) 基于上述EMPLOYEES表写出查询:查出部门平均工资大于1800
元的部门的所有员工,列出这些员工的全部个人信息。()
(3) 基于上述EMPLOYEES表写出查询:查出个人工资高于其所在部门平均工资的员工,列出这些员工的全部个人信息及该员工工资高出部门平均工资百分比。
参考答案
1答案:ABD
2答案: D
3答案:BC
4答案:AB
5答案AC
6答案:A,G
7答案:A
8A B C D E
9A B C D E
10A B D
11A B C
12B D
13A C
14A B C
15A B C
16答案:C
二 填空
3 123.7 & 2800 2
三判断
× ×√√√√×√×√
四写出相应的SQL语句
1Select job,count(*) from emp group by job;
2Select ename,sal,deptno from emp where deptno=(select deptno from emp where ename=’SMITH’);
3Select ename,sal,grade from emp,salgrade where sal between losal and hisal;
4Select * from (select * from emp order by sal desc) where rownum<=3;
5Select e1.ename empname,e2.ename mgrname from emp e1,emp e2 where e1.mgr=e2.empno;
五简答
可以通过声明和发布来截获自定义异常。
一、在声明部分为声明自定义异常名。
二、在执行部分使用 RAISE 语句显式地发布异常。
三、在相应的异常处理例程中引用已声明的异常。
2(1).抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
(2).继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性, 新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
(3).封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
(4). 多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。
3List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值
4a、Action类:
struts1.2要求Action类继承一个基类。struts2.0 Action要求继承ActionSupport基类 b、线程模式
struts1.2 Action是单例模式的并且必须是线程安全的,因为仅有一个Action的实例来处理所有的请求。
单例策略限制了Struts1.2 Action能做的事情,并且开发时特别小心。Action资源必须是线程安全的或同步的。
struts2.0 Action为每一个请求产生一个实例,因此没有线程安全问题。
c、Servlet依赖
struts1.2 Action依赖于Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execut方法。
struts2.0 Action不依赖于容器,允许Action脱离容器单独测试。如果需要,Struts2 Action仍
然可以访问初始的Request和Response。
但是,其他的元素减少或者消除了直接访问HttpServletRequest和HttpServletResponse的必要性。
d、可测性
测试struts1.2 Action的一个主要问题是execute方法暴露了Servlet API(这使得测试要依赖于容器)。一个第三方扩展:struts TestCase
提供了一套struts1.2的模拟对象来进行测试。
Struts2.0 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。
《JAVA程序设计》期末考试试题 7
第一阶段题库
基础知识部分:
1. JDK是什么?JRE是什么?
a) 答:JDK:java开发工具包。JRE:java运行时环境。
2. 什么是java的平台无关性?
a) 答:Java源文件被编译成字节码的形式,无论在什么系统环境下,只要有java虚拟机就能运行这个字节码文件。也就是一处编写,处处运行。这就是java的跨平台性。
3. 在一台电脑上配置java环境,path起什么作用?如何配置?
a) 答:path的作用是在DOS环境下,能在任意位置使用JDK目录中bin文件夹中的可执行程序,来编译执行java程序。
b) 在环境变量中找到path变量,把bin文件夹的绝对路径加上即可。
4. 什么样的标识符是合法的?
a) 由字母、数字、_和$组成,长度不限。其中字母可以是大写或小写的英文字母,数字为0到9。
b) 标识符的第一个字符不能是数字。
c) 标识符区分大小写。
d) 标识符不能包含空格。
5. Java有几种基本数据类型?
a) byte,short,int,long,char,boolean,float,double
6. 什么是隐式类型转换?什么是显示类型转换?
a) 当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换。 b) 当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换运算。
7. &&和&区别||和|区别?
a) &&和||是短路与,短路或,当左边的表达式能判断当前结果,则不判断右边的表达式。
b) 而& 和|则将两边的表达式都运算完毕后,再算结果。
8. break,continue区别?
a) break结束最近的一个循环,continue结束当次循环,进入下次循环。
9. 类的命名规则是什么?
a) 如果类名使用拉丁字母,那么名字的首写字母使用大写字母。
b) 类名最好见名得意,当类名由几个单词复合而成时,每个单词的首写字母使用大写。
10. 类体的内容由两部分构成,哪两部分?
a) 一部分是变量的定义,用来刻画属性。
b) 另一部分是方法的定义,用来刻画功能。
11. 解释什么是类的成员变量,局部变量,实例成员变量,类成员变量?
a) 变量定义部分所定义的变量被称为类的成员变量。
b) 在方法体中定义的变量和方法的参数被称为局部变量。
c) 成员变量又分为实例成员变量和类成员变量(static修饰)。
12. 简述this关键字用法。
a) this关键字使用在实例方法中,代表调用该方法的当前对象。
13. 如何确定方法的返回类型?
_____________________________________________________________________
a) 方法返回的值的类型就是方法的返回类型,如果无返回值,则返回类型为void。
14. 返回值为void的方法,可否有return?
a) 可以。但return后没有任何值。
15. 解释什么是类方法,什么是实例方法?
a) static修饰的方法是类方法,无static修饰的方法是实例方法。
16. 简述方法和变量的命名规则?
a) 首写字母使用小写,如果由多个单词组成,从第2个单词开始首字母使用大写。
17. 什么是方法重载?
a) 方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。
18. 什么是构造方法?
a) 构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不返回任何数据类型。
19. 如何创建一个对象?
a) 使用new 运算符和类的构造方法为对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法。
20. 系统什么情况下会为类提供构造方法,提供什么样的构造方法?
a) 如果类中没有构造方法,系统会提供一个默认的构造方法,默认的构造方法是无参的。
21. 对象如何调用自己的成员变量和方法?
a) 使用运算符” . ”来调用自己的成员变量和方法。
22. 为什么可以直接用类名来访问类成员变量和类方法?
a) 因为当类被加载到虚拟机的时候,类成员变量就被分配内存,类方法被分配入口地
址,所以不用创建对象,可以直接通过类名调用。
23. 类变量有什么特点?
a) 一个类的所有对象共享同一个类变量。
24. 类方法有什么特点?
a) 类方法只能调用类变量和类方法。(同一类中)
25. package关键字有什么作用,使用中注意什么问题?
a) package指定一个类所在的包,该语句为源代码第一行。
26. import关键字有什么作用?
a) 引入程序中所用到的类。
27. 类有几种访问权限?变量和方法有几种访问权限?分别是什么?
a) 类有两种访问权限:public,友好的。
b) 方法和变量的访问权限:public,protected,友好的,private。
28. 简述java的访问权限。
a) public:公有的,任何类都可以访问。
b) protected:受保护的,同一个包的类可以访问。不同包的子类可以访问。 c) 友好的:同一个包的类可以访问。
d) private:私有的,在同一个类中才能访问。
29. 子类能继承父类的哪些变量和方法?
a) 如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private 的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private 的方法作为自己的方法。
_____________________________________________________________________
b) 如果子类和父类不在同一个包中,那么,子类继承了父类的protected,public 成员变量做为子类的成员变量,并且继承了父类的protected,public 方法为子类的方法。
30. 子类重写父类的方法,可否降低访问权限?
a) 不可以降低。
31. final关键字可以用来修饰什么?分别起什么作用?
a) final可以修饰类,这样的类不能被继承。
b) final可以修饰方法,这样的方法不能被重写。
c) final可以修饰变量,这样的变量的值不能被修改,是常量。
32. 简述super关键字作用?
a) 使用super调用父类的构造方法。
b) 使用super操作被隐藏的成员变量和方法。
33. 简述什么是对象上转型?
a) 假设,A 类是B 类的父类,当我们用子类创建一个对象,并把这个对象的引用放到父类的对象中时,我们称这个父类对象是子类对象的上转型对象。
34. 上转型对象可以操作什么?不可以操作什么?
a) 上转对象不能操作子类新增的成员变量,失掉了这部分属性,不能使用子类新增的方法,失掉了一些功能 。
b) 上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继承的或重写的方法。
35. 什么是抽象类?什么是抽象方法?有什么特点?
a) 用关键字abstract修饰类称为抽象类,abstract类不能用new运算创建对象,必须产生其子类,由子类创建对象。
b) 用关键字abstract修饰方法称为抽象方法,abstract方法,只允许声明,而不允许实现。
36. 一个类声明实现一个接口,那么这个类需要做什么工作?
a) 实现接口里所有的方法,并且这些方法的访问权限必须是public。
37. 简述什么是数组?
a) 数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用数组中的数据。下标从 0 开始排序。
38. 创建数组是否需要指定数组长度,如何求数组长度?
a) 必须指定数组长度,数组调用 .length来获取数组长度。
39. char数组和byte数组如何转化成字符串?如何求字符串长度?
a) 利用String类本身的构造方法,String (char a[]),String (byte a[]),””.length()。
以下方法均为字符串中方法
40. equals equalsIgnoreCase startsWith endsWith
a) 字符串比较 。
b) 忽略大小写比较。
c) 判断是否以指定字符串开头、结尾。
41. regionMatches
a) 判断一个字符串的`子串是否和另一个字符串的子串匹配。
42. compareTo compareToIgnoreCase indexOf
a) 按字典顺序比较字符串。
b) 忽略大小写的按字典顺序比较字符串。
c) 字符串检索。
43. substring replace trim()
a) 字符串截取
b) 字符串替换
c) 去掉字符串前后空格。
44. 字符串如何转化为int型,double型?
a) Integer.parseInt(“1”);
b) Double.parseDouble(“25.45”);
45. 简述StringTokenizer作用?
a) 按照指定的分隔符,将字符串解析成若干语言符号。
46. 如何判断一个字符是不是数字,是不是大写?
a) Character.isDigit(‘a’)
b) Character.isUpperCase(‘U’)
47. 已知一个java.util.Date对象,如何格式化成如下格式 YYYY-MM-dd hh:mm:ss
a) SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
formate.format(new Date()));
48. 如何生成一个0-100的随即整数?
a) (int)(Math.random()*100)
49. 简述java异常处理的机制?
a) 当所调用的方法出现异常时,调用者可以捕获异常使之得到处理;也可以回避异常。
50. 简述如下关键字用途try、catch、throw、throws、finally
a) try:保护代码,如果try中某行代码出现异常,则try中代码不再继续执行。 b) catch:捕获异常,当try中出现异常,则catch负责捕获异常,并处理。
c) throw:抛出异常。
d) throws:声明异常。
e) finally:无论try中是否出现异常,finally一定执行。
51. LinkedList和ArrayList区别?
a) LinkedList底层通过链式存储结构实现。
b) ArrayList底层通过数组实现。
52. 什么是I/O流,有什么作用?
a) 指数据输入输出的流, I/O 流提供一条通道程序,可以使用这条通道把源中的字节序列送给目的地。
53. 如何查看一个文件的大小,绝对路径,是否可读?
a) File file = new File(“e://a.txt”);
b) file.length();
c) file.getAbsolutePath();
d) file.canRead();
54. 已知如下代码
File f = new File("myfile.dat");
FileInputStream istream = new FileInputStream(f); 如何从流中读取数据。
a) byte[] buff = new byte[100];
b) istream.read(buff);
55. 实现多线程的两种方法?
a) 从Java.lang.Thread类派生一个新的线程类,重写它的run()方法。
b) 实现Runnable接口,重写Runable接口中的run()方法。
56. 简述一个线程的生命周期?
a) 新建---运行---中断---死亡
57. 如何让一个准备就绪的线程运行?
a) 调用线程的start方法让一个处于准备就绪的状态的线程运行。
58. 如何让一个线程休眠1000毫秒?
a) 调用线程的sleep方法,参数为1000。
59. 如何使线程同步?
a) 使用同步方法
synchronized void methodA() { }
b) 使用同步块
synchronized(object) {
//要同步的语句
}
60. 什么是GC?为什么有GC?
a) GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。
61. 构造方法能否被重写?为什么?
a) 不能,因为构造方法不能被继承,所以不能重写。
62. 是否可以继承String类,为什么?
a) 因为String类是final类,final修饰的类不能被继承。
63. java关键字区分大小写吗?
a) java关键字一律小写。所以无所谓区分大小写,大写的不是关键字。
64. java采用什么字符集?该字符集有多少字符
a) Java 使用 unicode 字符集,所以常量共有 65535 个
65. 列举算术运算符?
a) +,-,*,/,%
66. 算术混合运算结果精度如何确定?
a) Java按照运算符两边的操作元的最高精度保留结果的精度。
67. &是位运算符,与运算的规则是什么?
a) 全1则1,否则为0
68. | 是位运算符,或运算的规则是什么?
a) 全0则0,否则是1
69. ^是位运算符,异或运算的规则是什么?
a) 相同0,不同1
70. ~是位运算符,非运算的规则是什么?
a) 遇1则0,遇0则1
71. if语句后边有个括号,该括号里表达式为什么类型?
a) boolean类型
72. switch语句后括号里的表达式是什么类型?case后类型如何确定?
a) char,int,byte,short,枚举类型。
b) case后面是一个常量,该常量类型由switch后括号内表达式来确定。
73. switch语句后,default关键字起什么作用?break起什么作用?
a) default:当用户指定的表达式与任何case都不匹配的时候,执行了 default后的语句。 b) break:退出当前case。
74. for循环后括号里三个表达式分别起什么作用?
a) 1:循环初始化的时候执行,只执行一次。
b) 2:循环成立的条件。
c) 3:循环每次执行都会调用该表达式,一般做变量自增。
75. while 和do。while区别?
a) while先判断条件,再执行。
b) do……while先执行,再判断条件
c) do……while至少执行一次。
76. 什么是编译执行的语言?什么是解释执行的语言?
a) 编译方式:Compilation:针对当前的机器处理器芯片,将源程序全部翻译成机器指令,称做目标程序,再将目标程序交给计算机执行.
b) 解释方式:Interpretation:这种方式不产生整个的目标程序,而是根据当前的机器处理器芯片,边翻译边执行,翻译一句执行一句.
77. 简述一个java程序执行的过程?
a) 首先编写java源文件(扩展名为.java的文本文档)。
b) 用javac命令把源文件编译成字节码文件(.class文件)
c) 用java命令执行字节码文件。
78. 成员变量的作用范围?局部变量的作用范围?
a) 成员变量在整个类内都有效
b) 局部变量只在定义它的类内有效。
79. 构造方法有什么作用?
a) 在创建对象的时候,java虚拟机会调用类的构造方法来创建对象。一般对象的初始化工作可以放在构造方法里。
80. java三大特性?
a) 封装,继承,多态。
数据库部分
81. 简述什么是关系型数据库?
a) 所谓关系型数据库,是指采用了关系模型来组织数据的数据库。关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
b) 关系型数据库是由许多数据表(Table)所组成,表又是由许多记录(Row 或Record)所组成,而纪录又是由许多的字段(Column 或Filed)所组成。
82. 什么是主键?
a) 设置一个表中的某个字段为主键,这个字段能够唯一的确定该表中某条记录,这样的字段我们称为主键。
83. 什么是外键?
a) 外部键约束用于强制参照完整性,提供单个字段或者多个字段的参照完整性。
84. 主外键关联的作用?
a) 保证数据完整性。
b) 消除冗余数据。
85. SQL语句中文含义是?
a) Structured Query Language,结构化查询语言。
86. 什么是数据库?
a) 数据库是长期存储在计算机内的、有组织的、可共享的数据集合。
87. 什么数据库管理系统?
a) DBMS就是实现把用户意义下的抽象的逻辑数据转换成计算机中的具体的物理数据的处理软件。
JDBC部分
88. JDBC含义?
a) JDBC(Java DataBase Connectivity) java数据库连接,是java连接数据库的AIP。
89. JDBC连接数据库步骤?
a) 加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
b) 建立连接
Connection conn = DriverManager.getConnection(dbURL,username,password);
c) 创建语句对象
Statement stmt = conn.createStatement()
90. 如何使用sql语句操作数据库?
a) 得到语句对象之后,使用语句对象调用executeUpdate(sql)方法和executeQuery(sql)
方法分别执行更新语句和查询语句。
91. executeUpdate(sql)方法的返回值表示什么含义?
a) 表示该更新方法影响了几行记录。
92. executeQuery(sql)方法的返回值如何使用?
a) 该方法的返回值为一个结果集,即ResultSet类型的对象。
b) ResultSet类型的对象有一个游标,指向当前操作的行。该游标默认指向第一行记录
之前,如果我们想操作结果集,需要先将游标下移,我们调用ResultSet接口的next()方法将游标下移,如果结果集里有数据,则游标下移,指向第一行,如果结果集里没有记录,则下移失败。当游标指向具体的某一行时,我们就可以从结果集里边获取值了。获取的值为当前游标指向行的值。
93. 如何获取游标所指的行的数据?
a) 当游标指向某一行时,我们可以使用ResultSet接口的getString(列名)方法来获取某一列的值,列名作为方法的参数。
94. 创建语句对象时,createStatement(参数1,参数2),两个参数分别表示什么含义?
a) 第一个参数指定该语句对象生成的结果集是否可滚动以及是否敏感,
b) 第二个参数指定该语句对象生成的结果集是否可以更新数据库。
《JAVA程序设计》期末考试试题 8
1. Java中sleep和wait的区别
① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。
sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。
② 锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。
Thread.sleep(0)的作用是“触发操作系统立刻重新进行一次CPU竞争”。
③ 使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用。
synchronized(x){ x.notify() //或者wait() }
2. Java中HashMap和HashTable的区别
① 历史原因: Hashtable是给予陈旧的Dictonary类的, HashMap是Java1.2引进的Map接口的一个实现
② HashMap允许空的键值对, 而HashTable不允许
③ HashTable同步,而HashMap非同步,效率上比HashTable要高
3. 请简述在异常当中,throw和throws有什么区别
① throw代表动作,表示抛出一个异常的动作;throws代表一种状态,代表方法可能有异常抛出
② throw用在方法实现中,而throws用在方法声明中
③ throw只能用于抛出一种异常,而throws可以抛出多个异常
4. 内存溢出和内存泄露的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。
内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
memory leak会最终会导致out of memory!
内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。
内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不能吃了。这就是溢出!比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出。
以发生的方式来分类,内存泄漏可以分为4类:
① 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。
② 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。
③ 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏。比如,在类的构造函数中分配内存,在析构函数中却没有释放该内存,所以内存泄漏只会发生一次。
④ 隐式内存泄漏。程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。但是对于一个服务器程序,需要运行几天,几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。
从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的.存在。真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于常发性和偶发性内存泄漏它更难被检测到。
5. String,StringBuffer 和 StringBuilder的区别
①可变与不可变
String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。
private final char value[];
StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字符数组保存字符串,如下就是,可知这两种对象都是可变的。
char[] value;
②是否多线程安全
String中的对象是不可变的,也就可以理解为常量,显然线程安全。
AbstractStringBuilder是StringBuilder与StringBuffer的公共父类,定义了一些字符串的基本操作,如expandCapacity、append、、indexOf等公共方法。
StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。看如下源码:
public synchronized StringBuffer reverse() { super.reverse(); return this; } public int indexOf(String str) { return indexOf(str, 0); //存在 public synchronized int indexOf(String str, int fromIndex) 方法 }
StringBuilder并没有对方法进行加同步锁,所以是非线程安全的。
③StringBuilder与StringBuffer共同点
StringBuilder与StringBuffer有公共父类AbstractStringBuilder(抽象类)。
抽象类与接口的其中一个区别是:抽象类中可以定义一些子类的公共方法,子类只需要增加新的功能,不需要重复写已经存在的方法;而接口中只是对方法的申明和常量的定义。
StringBuilder、StringBuffer的方法都会调用AbstractStringBuilder中的公共方法,如super.append(...)。只是StringBuffer会在方法上加synchronized关键字,进行同步。
最后,如果程序不是多线程的,那么使用StringBuilder效率高于StringBuffer。
6. 数组和链表的区别
二者都属于一种数据结构
从逻辑结构来看:
① 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费;数组可以根据下标直接存取。
② 链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项,非常繁琐)链表必须根据next指针找到下一个元素。
从内存存储来看:
①(静态)数组从栈中分配空间,对于程序员方便快速,但是自由度小。
②链表从堆中分配空间,自由度大但是申请管理比较麻烦。
从上面的比较可以看出,如果需要快速访问数据,很少或不插入和删除元素,就应该用数组;相反,如果需要经常插入和删除元素就需要用链表数据结构了。
7. ArrayList和LinkedList的区别
①ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
②对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
③对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
《JAVA程序设计》期末考试试题 9
一、选择题:(每题3分,共20题)
1. 下面关于类的说法错误的一项是( )。
A、类属于Java语言中的复合数据类型 中的基本结构单位
C、类是同种对象的集合和抽象
2. 如下所示代码:
public class Test05_01{ }
private float a;
public static void m ( ){ }
D、类就是对象 B、对象是Java语言
如何使成员变量a被方法m( )访问( )。
A、将private float a改为public float a
B、将private float a改为static float a
C、将private float a改为protected float a
D、将private float a改为float a
3. 下面关于类的说法有误的一项是( )。
A、类就是对象 抽象
C、类属于Java语言中的复合数据类型 中的基本结构单位
D、对象是Java语言
B、类是同种对象的集合和
关于Java面向对象的考试题。
4. 下列哪种类成员修饰符修饰的变量只能在本类中被访问( )。
A、protected
B、default
C、private
D、public
5. 下面关于方法的说法不正确的一项是( )。
A、类的私有方法不能被其他类直接访问。
B、Java中的构造方法名必须和类名相同。
C、方法体是对方法的实现,包括变量声明和合法语句。
D、如果一个类定义了构造方法,也可以用该类的默认构造方法。
6. 下列程序的运行结果是( )。
public class Test05_02 extends x{ }
B、编译错误
D、运行成功,但不输出
int ab(){ }
public static void main(String[] args) { }
Test05_02 b = new Test05_02 (); b.ab(); static int a = 10; a++;
System.out.println(a);
A、10 C、11
关于Java面向对象的考试题。
7. 下面关于构造方法的描述有误的一项是( )。
A、构造方法必须要有返回类型的声明。
B、构造方法和类中的方法很相似:有访问修饰符、方法名、参数列表、方法体。
C、构造方法当成是一个特殊的方法,这个方法的作用就是用来产生一个类的实例。
D、构造方法的方法名必须和类名完全相同。
8. 下列关于对象的说法错误的一项是( )。
A、对象成员是指一个对象所拥有的属性或可以调用的方法。
B、由类生成对象,称为类的`实例化过程,一个实例可以是多个对象。
C、在创建类的对象时,需要使用Java的new关键字。
D、在Java中要引用对象的属性和方法,需要使用“.”操作符来实现。
9. 类的方法可以不包含下面哪一项( )。
A、方法的参数 C、方法的名称
B、方法的主体 D、方法的返回值类型
10. 下面关于变量说法错误的一项是( )。
A、对于成员变量,我们可以不需要手动的显式初始化,因为系统在创建一个新的对象的时候,会给这些成员变量赋一个初值。
B、对于引用变量,它的默认初值是null而非相应的引用类型对象,也就是说,它并不是指向任何对象的首地址。
关于Java面向对象的考试题。
C、系统会对全局(成员)变量指定默认的值,也会对局部变量赋值。
D、局部变量在使用之前,必须对其进行显式初始化。
11. 下面的各种数据类型的默认初始化值表示错误的一项是( )。
A、int是0
B、float 是0.0
C、char 是‘u0000’
D、boolean是false
12. 下面哪一项不是Java的访问控制符( )。
A、public
B、private
C、void
D、protected
13. Java语言类间的继承关系和接口间的继承关系分别是( )。
A、单继承、不能继承
C、多重继承、单继承
B、多重继承、不能继承
D、单继承、多重继承
14. 如果局部变量和成员变量同名,如何在局部变量作用域内引用成
员变量( )。
A、不影响,系统可以自己区分
B、不能引用,必须改名,使它们的名称不相同
C、在成员变量前加this,使用this访问该成员变量
D、在成员变量前加super,使用super访问该成员变量
15. 下列关于内部类说法错误的一项是( )。
A、内部类可用private或protected修饰符修饰
B、内部类不能有自己的成员方法和成员变量
C、除static内部类外,不能在类内声明static成员
D、内部类可以作为其他类的成员,而且可访问它所在的类的成员
16. 定义外部类时不能用到的关键字是( )。
A、public
B、abstract
C、protected
D、final
17. 下面说法不正确的一项是( )。
A、abstract和final能同时修饰一个类
B、抽象类既可以做父类,也可以做子类
C、声明为final类型的方法不能在其子类中重新定义
D、抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口
18. 有一个类B,下面为其构造方法的声明,正确的是( )。
A、void b(int x) {} C、B(int x) {}
B、void B(int x) {}
D、b(int x) {}
19. 区分类中重载方法的依据是( )。
A、不同的形参名称
B、返回值的类型不同
D、访问权限不同
C、形参列表的类型和顺序
20. 下面说法错误的一项是( )。
A、在Java中,为了节省创建对象的时间和空间,对于一些常用的方法,会将它在内存中缓存起来。
B、在JDK中针对各种基本数据类型分别定义相应的引用类型,称之为封装类(Wrapper Classes)。
C、JDK5.0中,引入了自动装箱/拆箱功能,可以让我们方便的在简单类型和对应的封装类型数据之间转换。
【《JAVA程序设计》期末考试试题】相关文章:
sun认证:java程序设计考试试题07-25
大学java期末考试试题08-18
2017年java期末考试试题10-20
计算机二级Java语言程序设计试题11-01
2016年java期末考试试题及答案10-11
java试题及答案07-04
2017java期末考试参考试题07-31