10-11第一学期JAVA试题(十)

10-11第一学期JAVA试题(十)
10-11第一学期JAVA试题(十)

JAVA期末考试试题

( 2010 至 2011 学年第 1 学期)课程名称:JAVA 考试对象:08计科本、08信管本试卷类型 10卷考试时间: 120 分钟

单项选择题(每小题2分,共40分)

.已知如下定义:String s = "story";下面哪个表达式是合法的( )。

A. s += "books"; B.char c = s[1];

C.int len = s.length; D.String t =s+’abc’

.如下哪些是Java中有效的关键字( )。

A.i B.hello

C.false D.good

.不允许作为类及类成员的访问控制符的是( )。

A. public

B. private

C. static

D. protected

.JAVA对象主要属性有: ( )。

A. 状态与行为

B. 抽象和封装

C. 继承与多态

D. 可重用和可扩展

.如下哪些字串是Java中的标识符( )。

A.fieldname B.super

C.3number D.#number

.下面的是关于类及其修饰符的一些描述,不正确的是:()。

A.abstract类只能用来派生子类,不能用来创建abstract类的对象。

B.final类不但可以用来派生子类,也可以用来创建final类的对象。

C.abstract不能与final同时修饰一个类。

D.abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法。.若在某一个类定义中定义有如下的方法: abstract void performDial( );该方法属于()。

A.本地方法 B.最终方法 C.解态方法 D.抽象方法

.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为()。

A.隐藏 B.覆盖 C.重载 D.Java不支持此特性

.设有下面两个赋值语句:

a = Integer.parseInt(“1024”);

b = Integer.valueOf(“1024”).intValue();

下述说法正确的是()。

A.a是整数类型变量,b是整数类对象。

B.a是整数类对象,b是整数类型变量。

C.a和b都是整数类对象并且它们的值相等。

D.a和b都是整数类型变量并且它们的值相等。

10.在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是()包。

A.java.io B.java.awt

C.java.applet D.java.awt.event

11.在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用()类的对象来实现。

A.Label B.Button

C.TextArea D.TextField

12.下列关于Java程序结构的描述中,不正确的一项是( )。

A.一个Java源文件中可以包括一个package语句

B.一个Java源文件中可以包括多个类定义,但是只能有一个public类

C.一个Java源文件中可以有多个public类

D.源文件名与public程序类名必须一致

13.下列说法正确的一项是( )。

A.java.1ang.Integer是接口B.java.1ang.Runnable是类

C.Double类在iava.1ang包中D.Double类在java.1ang.Object包中

14.下列关于类、包和源文件的说法中,错误的一项是( )。

A.一个文件可以属于一个包B.一个包可包含多个文件

C.一个类可以属于一个包D.一个包只能含有一个类

15.对于构造函数,下列叙述不正确的是()。

A.构造函数是类的一种特殊函数,它的方法名必须与类名相同。

B.构造函数的返回类型只能是void型。

C.构造函数的主要作用是完成对类的对象的初始化工作。

D.一般在创建新对象时,系统会自动调用构造函数。

16.执行如下程序代码

a=0;c=0;

do{

--c;

a=a-1;

}while(a>0);

后,C的值是()

A.0 B.1 C.-1 D.死循环

17.对于构造函数,下列叙述不正确的是()。

A.构造函数也允许重载。

B.子类无条件地继承父类的无参构造函数。

C.子类不允许调用父类的构造函数。

D.在同一个类中定义的重载构造函数可以相互调用。

18.在使用interface声明一个接口时,只可以使用()修饰符修饰该接口。

A.private B.protected C.private protected D.public

19.在JAVA编程中,实现Runnable接口时必须实现的方法是()。

A.wait() B.run() C.stop() D.start()

20.JAVA线程编程中,如果让线程睡眠,可以用()方法实现。

A.start(); B.close(); C.setDaemon(); D.sleep();

二、填空题(每空1分,共10分)

1.JDBC是Java程序与连接的一种机制。

2.Java中有两种多态,一种是使用方法的,另一种是使用方法的。

3.方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。

________方法是不能被当前类的子类重新定义的方法。

4.在Java程序中,通过类的定义只能实现重继承,但通过接口的定义可以实现重继承关系。

5.可以通过_____语句将异常抛出向上级调用方法。

6.String s = “我们学习Java!”; System.out.println(s.length( ));的输出结果为_____。 7.操作数据库常抛出_______类。 。

三、程序填空(每个空2分,共18分)

.下列程序的功能是在监控台上每隔一秒钟显示一个字符串“Hello”。

class Test implements ____①______ { public static void main(String args[]){ Test t=new Test(); Thread tt=new Thread(t);

tt.start();

}

public void run(){ for (;;){ try {

___②_____;

}catch (___③_____ e){}

System.out .println("Hello");

} }

.有两个矩阵分别为????????

??98

7

654

321

和 ???

?

?

??

???33

3

111222,编程实现矩阵的×运算。 java.util.Scanner;

class Person {

public static void main(String args[ ]){ int a[][]={{1,2,3},{4,5,6},{7,8,9}}; int b[][]={{2,2,2},{1,1,1},{3,3,3}};

int c[][]=new int__④_____; int i,j,k;

for (i=0;i

for (j=0;j

for (k=0;k<3;k++){

c[i][j]=c[i][j]+___⑤_____; }

System.out .print(__⑥_____+" ");

}

System.out .println();

} }

3.执行下面程序时从键盘上输入10个数字1到10,并倒序输出。 import java.io.* ; public class Reverse{

public static void main(String args[ ]) { int i , n =10 ; int a[ ] = new int[10];

for ( i = 0 ; i < n ; i ++ ) try { BufferedReader br = new BufferedReader( new ____⑦______);

a[i] = Integer.parseInt(_____⑧______)); // 输入一个整数

} catch ( IOException e ) { } ; for ( i = ___⑨_____; i >= 0 ; i ―― ) System.out.print(a[i]+" "); System.out.println( );

} }

四、编程题(共30分)

1.从键盘上输入一个正整数n ,然后计算1到n 的和,并输出。(8分)

2.使用选择法对数组a 中的数据进行升序排序,然后输出排序后的结果。

3.设计一个时间类MyTime ,其中的属性包括hour 、minute 、second ,其构造方法可以初始化其三个属性。并为其设计一个方法public int compare(MyTime t){},用以比较两个时间对象。并创建测试类来测试MyTime 类的各个属性及方法。

java模拟试题附答案(一)

scjp模拟试题(一) Question No: 1 1.public class test ( 2. public static void main (String args[]) { 3. int i = 0xFFFFFFF1; 4. int j = ~i; 5. 6. } 7. ) What is the decimal value of j at line 5? A. 0 B. 1 C. 14 D. –15 E. An error at line 3 causes compilation to fail. F. An error at line 4 causes compilation to fail. 答案: C Question No: 2 Given: Integer i = new Integer (42); Long 1 = new Long (42); Double d = new Double (42.0); Which two expressions evaluate to True? (Choose Two) A. (i ==1) B. (i == d) C. (d == 1) D. (i.equals (d))

E. (d.equals (i)) F. (i.equals (42)) 答案: D, E Question No: 3 Exhibit : 1. public class test ( 2. private static int j = 0; 3. 4. private static boolean methodB(int k) ( 5. j += k; 6. return true; 6. ) 7. 8. public static void methodA(int i) { 9. boolean b: 10. b = i < 10 | methodB (4); 11. b = i < 10 || methodB (8); 12. } 13. 14. public static void main (String args[] ) ( 15. methodA (0); 16. system.out.printIn(j); 17. ) 18. ) What is the result? A. The program prints “0” B. The program prints “4” C. The program prints “8”

java模拟试卷3与答案

复习题 3 一、选择题 1. JDK 提供的编译器是(B)。 (A ) java.exe(B ) javac.exe (C) javap.exe( D) javaw.exe 2.以下作为 Java 程序入口的 main 方法声明正确的( C)。 (A ) public void main(String args[]) (B ) public int main(String args[]) (C) public static void main(String args[]) (D ) public static int main(String args[]) 3.以下标识符错误的是( C )。 (A )Public( B)张三( C) class(D ) main 4.java 中定义字符串 String s= ”pzhu”,下面操作可以取得字符串长度的是( A )。 (A ) s.length()( B) s.length( C)s.size()( D) length(s) 5.如下定义数组,操作正确的是(D)。 int a[]={1,2,3}; (A ) a[3]=100(B ) a[0].length( C)a++( D) a.length 6.如下定义二维数组操作错误的是()。 int a[][]={{1,2},{3}}; (A ) a[0][1]=200( B) a[0].length( C) a[1][1]=100( D) a.length 7. 以下数据类型存储空间最大的是(B)。 (A ) byte( B) long(C) float(D ) char 8. 面向对象的三大特性,不包括如下( A)。 (A )异常( B)封装(C)继承(D )多态 9、关于类的定义以下说法错误(B)。 (A )类定义使用class 关键字( B)每个类中必须有一个main 方法 (C)一个包可以包含多个类( D) java 中所有类都是Object 类的子类 10. 关于构造方法以下说法错误的是(D)。 (A)构造方法名必须与类名一致(B)构造方法可以重载 (C)构造方法是通过new 来调用(D)每个类都必须编写构造方法代码 11.关于继承如下说法错误的是(C)。 (A) Java 是单继承的(B)通过extends 来定义继承 (C)所有父类方法都可以被override的(D)继承呈现的是 is a 的关系 12.以下代码执行的结果是 ( C )。 System.out.println(" 攀枝花学院 pzhu".length()); (A)编译错误(B)运行错误(C) 9(D) 14 13. 用来存储键值对的容器是 ()。 (A )ArrayList( B ) LinkedList(C) HashSet( D) HashMap 14、 java 中用来抛出异常的关键字是( C )。 (A) try(B) catch(C) throw(D) throws 15.关于 finally块中的代码,以下说法不正确的是(A)。 (A ) try 块中的 return 语句会中断finally 块中语句的执行 (B )无论 finally 块前的语句运行是否产生异常,其中的语句都会执行 (C) finally 块中的语句通常中用作资源的清理 - 1 -

java经典面试题汇总

Java基础方面: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√ × friendly √√ × × private √ × × × 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和 Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JA V A的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的 7、String s = new String("xyz");创建了几个String Object 答:两个,一个字符对象,一个字符对象引用对象 8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少 答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回与参数最接近的长整数,参数加1/2后求其floor 9、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;(可以正确编译) 10、Java有没有goto 答:java中的保留字,现在没有在java中使用 11、数组有没有length()这个方法? String有没有length()这个方法 答:数组没有length()这个方法,有length的属性。String有有length()这个方法 12、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型

JAVA笔试题--基础很全有答案

第一组 1.下列不可作为java语言修饰符的是(D) A) a1 B) $1 C) _1 D) 11 2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5.在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6.在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用

10.以下声明合法的是( D ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final double hyperbolicCosine( ) 11.关于以下application的说明,正确的是( C ) 1.class StaticStuff 2.{ 3.static int x=10; 4.static { x+=5;} 5.public static void main(String args[ ]) 6.{ 7.System.out.println(“x=”+ x); 8.} 9.static { x/=3;} 10. } A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=5 D、编译通过,执行结果为:x=3 12.关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2.private static int x=100; 3.public static void main(String args[ ]){ 4.HasStatic hs1=new HasStatic( ); 5.hs1.x++; 6.HasStatic hs2=new HasStatic( ); 7.hs2.x++; 8.hs1=new HasStatic( ); 9.hs1.x++; 10.HasStatic.x- -; 11.System.out.println(“x=”+x); 12.} 13.} A、5行不能通过编译,因为引用了私有静态变量 B、10行不能通过编译,因为x是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102 13.以下选项中循环结构合法的是( C ) A、while (int i<7) { i++;

JAVA模拟试题(含答案)

一、请分别写出下面程序的运行结果,将答案添在每道题后的空格处 1. public class Test1 { public static void main(String[] args) { int x=10,y=20; System.out.print("x="+(x++)+" y="+(++y)+" sum="+(x+y)); } } 运行结果:x=10 y=21 sum=32 2. public class Test2 { public static void main(String[] args) { boolean end; for(int i=2;i<20;i++){ end=true; for(int j=2;j<=i;j++){ if(i%j==0&&j

JAVA笔试题--Java选择题100道

1.下列不可作为java语言修饰符的是(D) A) a1 B) $1 C) _1 D) 11 2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5.在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6.在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用 10.以下声明合法的是( D ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final double hyperbolicCosine( ) 11.关于以下application的说明,正确的是( C ) 1.class StaticStuff 2.{ 3.static int x=10; 4.static { x+=5;} 5.public static void main(String args[ ]) 6.{ 7.System.out.println(“x=”+ x); 8.} 9.static { x/=3;}

蓝桥杯java模拟试题

本试卷包含两种题型:“代码填空”与“程序设计”。 填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不多于一条语句(即不能出现分号)。 编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。1.代码填空(满分3分) 以下程序打印出0~9的数字,请补充缺少的代码。 public class MyTest { public static void f(int begin, int end) { __________________; System.out.println(begin); f(begin+1, end); } public static void main(String[] args) { f(0,9); } } if(begin>end) return;//相当于退出循环的条件。return 无返回值根据void 2.代码填空(满分4分) 如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡,但也可以在不借助任何其它变量的情况下完成。试填写缺失的代码。 a = a ^ b; b = _________; a = _________; a^b a^b 3.代码填空(满分3分) 许多人都曾经玩过“拍七”游戏。规则是:大家依次从1开始顺序数数,数到含有7或7的倍数的要拍手或其它规定的方式表示越过(比如:7,14,17,71等都不能数出),下一人继续数下面的数字。违反规则者受罚。下面的程序模拟这个过程,拍7的情况输出“*”,请完善之。 for(int i=1; i<100; i++) { if(i % 7 == 0) System.out.println("*"); else if(___________________) System.out.println("*"); else System.out.println(i); } (i-7)%10==0||i/10==7 // i/10==7||i%10==7 4.代码填空(满分5分)

java模拟试卷及答案及解析4

复习题4 一、选择题 1.在面向对象的方法中,一个对象请求另一个对象为其服务的方式是通过发送( D ) A、调用语句 B、命令 C、口令 D、消息 2.Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点:( B ) A、安全性 B、多线程 C、跨平台 D、可移值 3.编写和运行Java applet程序与编写和运行Java application程序不同的步骤是:( B ) A、编写源代码 B、编写HTML文件调用该小程序,以.html为扩展名存入相同文件夹 C、编译过程 D、解释执行

4.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用____个比特位。( B ) A、8 B、16 C、32 D、64 5.关于下列程序段的输出结果,说法正确的是:( D ) public class MyClass{ static int i; public static void main(String argv[]){ System.out.println(i); } } A、有错误,变量i没有初始化。 B、null C、1 D、0 6.下列代码的执行结果是:( B ) public class Test3{ public static void main(String args[]){ System.out.print(100%3);

. System.out.print(","); System.out.println(100%3.0); } } A、1,1 B、1,

C、1.0,1 D、1.0,1.0 7.下列程序段的输出结果是:( B ) void complicatedexpression_r(){ int x=20, y=30; boolean b; b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b); } A、true B、false C、1 D、0 8.给出下列代码片段:( D ) if(x>0){System.out.println("first");} else if(x>-3){ System.out.println("second");} else {System.out.println("third");} 请问x处于什么范围时将打印字符串“second”? A、x>0 B、x>

Java经典面试题大全_带答案

Java经典面试题带答案一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code(字节码) C.Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行(构造器) D.一个class只能定义一个constructor 答案:C 4.提供Java存取数据库能力的包是() A.Java.sql /sql/数据库还有Oracle 也是一种数据库 B.java.awt C.https://www.360docs.net/doc/e310265265.html,ng D.java.swing 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环

答案:C 7.下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 答案:A 9.下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 答案:D 二、多项选择题 1.Java程序的种类有() A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有() A.环境变量可在编译sourcecode时指定 B.在编译程序时,所能指定的环境变量不包括class path C.javac一次可同时编译数个Java源文件 D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD 3.下列标识符不合法的有() A.new B.$Usdollars C.1234 D.car.taxi 答案:ACD 4.下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类 C.intnumber=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 答案:BCD 5.不能用来修饰interface的有()

JAVA模拟面试题库

JAVA基础部分 1. 我们能不能声明main()方法为非静态? 不能,main()方法必须声明为静态的,这样JVM才可以调用main()方法而无需实例化它的类。 如果从main()方法去掉“static”这个声明,虽然编译依然可以成功,但在运行时会导致程序失败。 2.不用main方法如何定义一个类? 不行,没有main方法我们不能运行Java类。 在Java 7之前,你可以通过使用静态初始化运行Java类。但是,从Java 7开始就行不通了。 3. String类为什么是final的。 主要是为了“效率”和“安全性”的缘故。若String允许被继承,由于它的高度被使用率,可能会降低程序的性能,所以String被定义成final; 4.使用final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 使用final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的容还是可以改变的。 5. string、stringbuilder、stringbuffer区别 a.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。 private final char value[];

StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在AbstractStringBuilder 中也是使用字符数组保存字符串,如下就是,可知这两种对象都是可变的。 char[] value; b.是否多线程安全 String中的对象是不可变的,也就可以理解为常量,显然线程安全。 AbstractStringBuilder是StringBuilder与StringBuffer的公共父类,定义了一些字符串的基本操作,如expandCapacity、append、insert、indexOf等公共方法。 StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的StringBuilder并没有对方法进行加同步锁,所以是非线程安全的 c.StringBuilder与StringBuffer共同点 StringBuilder与StringBuffer有公共父类AbstractStringBuilder(抽象类)。 抽象类与接口的其中一个区别是:抽象类中可以定义一些子类的公共方法,子类只需要增加新的功能,不需要重复写已经存在的方法;而接口中只是对方法的申明和常量的定义。 StringBuilder、StringBuffer的方法都会调用AbstractStringBuilder中的公共方法,如super.append(...)。只是StringBuffer会在方法上加synchronized关键字,进行同步。 最后,如果程序不是多线程的,那么使用StringBuilder效率高于StringBuffer。 6. 抽象类和接口的区别 1).抽象类可以有构造方法,接口中不能有构造方法。 2).抽象类中可以有普通成员变量,接口中没有普通成员变量 3).抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的 普通方法。 4). 抽象类中的抽象方法的访问类型可以是public,protected 和(默认类型,虽然 eclipse 下不报错,但应该也不行),但接口中的抽象方法只能是public 类型的,并且默认即为 public abstract 类型。 5). 抽象类中可以包含静态方法,接口中不能包含静态方法

2017年最新Java经典笔试面试题笔试题目及答案

2017年最新Java经典笔试面试题 2017年最新Java经典笔试面试题 想要成为java程序员可不是容易的事情,下面YJBYS小编为大家精心搜集了关于Java 经典笔试的面试题,欢迎大家参考借鉴,希望可以帮助到大家! 一.选择题(共50题,每题1.5分,共75分。多选题选不全或选错都不得分。) 1. 以下属于面向对象的特征的是(C,D)。(两项) A) 重载 B) 重写 C) 封装 D) 继承 2. 以下代码运行输出是(C) public class Person{ private String name=”Person”; int age=0; } public class Child extends Person{

public String grade; public static void main(String[] args){ Person p = new Child(); System.out.println(https://www.360docs.net/doc/e310265265.html,); } } A) 输出:Person B) 没有输出 C) 编译出错 D) 运行出错 3. 在使用super 和this关键字时,以下描述正确的是(A) A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B) super()和this()不一定要放在构造方法内第一行 C) this()和super()可以同时出现在一个构造函数中

D) this()和super()可以在static环境中使用,包括static方法和static语句块 4. 以下对封装的描述正确的是(D) A) 只能对一个类中的方法进行封装,不能对属性进行封装 B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用 C) 封装的意义不大,因此在编码时尽量不要使用 D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性 5. 以下对继承的描述错误的是(A) A) Java中的继承允许一个子类继承多个父类 B) 父类更具有通用性,子类更具体 C) Java中的继承存在着传递性 D) 当实例化子类时会递归调用父类中的构造方法 6. 以下程序的运行结果是(D) class Person{ public Person(){ System.out.println(“this is a Person”);

Java面向对象模拟试题1

一、判断题(正确的描述打钩,错误的打叉,每题1分,共10分) 1 抽象类中不可以有非抽象的方法。(错) 2 如果将一个对象强制类型转换为一个不兼容的类型,将引发NullPointerException 异常。(错) 3 Java中Object类是最顶层的类。(对) 4 程序在编译通过以后,仍然可能出现运行时错误和逻辑错误。(对) 5 可以通过javac来运行一个Java Application。(错) 6 可以在子类构造函数中通过this关键字调用基类的构造函数。(错) 7 Java语言是IBM公司设计的一种面向对象程序设计语言。(错) 8 一个Unicode字符占4个字节。(错) 9 在循环语句中,使用continue;语句可以跳出循环。(错) 10 在Java Application中如果没有定义main()方法,则程序不能编译。(错) 二、简答题(请将答案写到答题纸上,注明题号。每题3分,共30分) 1 请看以下代码: package mytest; public class Main { public static void main(String[] args) { System.out.println(new A()); } } class A {

} Java在运行上述代码时输出一个很奇异的结果: mytest.A@60aeb0 尝试解释一下可能的原因. 点评: 本题的关键在于虽然类A没有定义任何方法,但它隐含着从基类Object中继承了toString()方法。答案必须点出这一结果是执行toString()方法得到的。 2 什么叫多态?你是如何理解多态的?请设计一个简单的示例,展示多态的用法。 点评: 几乎所有的Java教材都要介绍多态的概念,但只有能用自己的语言说清楚,并能自己设计一个典型实例展示多态特性的,才算是真正弄明白了。 从试卷中发现,不少同学弄混了方法重载与方法覆盖,认为“方法重载”就是多态。 3 在Java GUI程序中,布局管理器是一个很重要的概念。谈谈你对这个概念的理解,并进而回答以下问题: 如果要你开发出一个Windows资源管理器(图 1),你将如何应用合适的“布局管理器”来实现其界面? 图 1 Windows 7中的资源管理器 请指明你在图 1中的哪部分应用哪种布局管理器。 4 int和Integer都可以代表一个整数,这两者在使用上有什么区别吗?为什么JDK中要设计两个数据类型来表示同一种数据? 5 Java Application的程序入口点为main()函数,其声明如下: public static void main (String[] args) 请解释一下为何main()函数是公有的和静态的?

Java面试经典试题和答案

Java面试经典试题和答案 Java面试经典试题和答案 常见的Java问题 1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。 2.JDK和JRE的区别是什么? Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。它同时也包含了执行applet需要的浏览器插件。Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。 3.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。 Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。 4.是否可以在static环境中访问非static变量?

static变量在Java中是属于类的,它在所有的实例中的值是一 样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会 报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。 5.Java支持的数据类型有哪些?什么是自动拆装箱? Java语言支持的8中基本数据类型是: byte short int long float double boolean char 自动装箱是Java编译器在基本数据类型和对应的对象包装类型 之间做的一个转化。比如:把int转化成Integer,double转化成double,等等。反之就是自动拆箱。 6.Java中的方法覆盖(Overriding)和方法重载(Overloading)是 什么意思? Java中的方法重载发生在同一个类里面两个或者是多个方法的 方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重 新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和 返回类型。覆盖者可能不会限制它所覆盖的方法的访问。 7.Java中,什么是构造函数?什么是构造函数重载?什么是复制 构造函数?

java面试题集(面霸必备)

Java选择题测试 试题1 指出下面语句没有编译错误的是()。 A. long n = 999999999999; B.int n = 999999999999L; C. long n = 999999999999L; D. double n = 999999999999; 试题2 完成代码计算10的阶乘并输出,应该填入的代码是()long result = 1; for(int i = 2; i <= 10; i++) { < 填入代码> } System.out.println(“result= ” + result); ……… A. result = result * i; B. result = i*i; C. result = i*(i+1); D. reslut = i*(i-1); 试题3 下列关于数组的声明错误的是( ) A.int[] arry = new int[100]; B. int[3] arry = {1,2,3} C. int[] arry = new int[]{1,2,3} D. int[][] arry = new int[3][] 试题4 实现对数组arry的冒泡排序,应填入的代码是( )

public static void bubbleSort(int[] arry) { int len = arry.length; for (int i = 1; i < len; i++) { boolean asc = true; < 填入代码> if (asc) return; } } private static void swap(int[] arry, int i, int j) { int temp = arry[i]; arry[i] = arry[j]; arry[j] = temp; } A. for (int j = len-1; j > i; j–) { if (arry[j] < arry[j - 1]) { swap(arry, j, j – 1); asc = false; } } B. for (int j = len – 1; j >= i; j–) { if (arry[j] < arry[j - 1]) { swap(arry, j, j – 1); asc = false; } } C. for (int j = len – 1; j >= i; j–) {

相关文档
最新文档