当前位置:文档之家› java笔试题基础知识(二)

java笔试题基础知识(二)

java笔试题基础知识(二)
java笔试题基础知识(二)

1.String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有?

没有。

因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。

s = s + " world!";相当于: (JDK 1.5以上版本)

s = new StringBuilder(String.valueOf(s)).append(" world!").toString();

2、是否可以继承String类?

String类是final类故不可以继承。

3、String s = new String("xyz");创建了几个String Object?二者之间有什么区别?

两个对象。一个是"xyz",为缓冲区对象。另一个是new出来的String对象。

这两个对象的值相同,但不是同一个对象。

补充,新建对象有几种方式?

1). 使用new关键字

2). 使用反射,调用newInstance

3). 使用clone方法

4). 使用序列化与反序列化

5). 动态代理(Proxy类和CGLIB)

4、String和StringBuffer的区别

这两个类都实现了CharSequence接口。

1. 类型不同,因为不是一个类,也没有继承关系,做参数时不能共用

2. String对象是不可变对象,不能修改值。而StringBuffer是可变对象,能修改值。

3. 拼接字符串时,String会产生新对象,而StringBuffer只是增加新字符,不产生新对象,因此效率高。

4. String覆盖了equals方法和hashCode方法,而StringBuffer没有覆盖equals方法和hashCode方法,所以,将StringBuffer对象存储进Java集合类中时会出现问题。

5、如何把一段逗号分割的字符串转换成一个数组?

用正则表达式,代码大概为:String [] result = orgStr.split(“,”, -1);

用 StingTokenizer ,代码为:

StringTokenizer tokener = new StringTokenizer(s, ",");

String[] result = new String[tokener.countTokens()];

Integer i = 0;

while (tokener.hasMoreTokens()) {

result[i++] = tokener.nextToken();

}

1.最笨的办法,用String.indexOf()

int index = -1;

int oldIndex = 0;

List ss = new ArrayList();

while ((index = s.indexOf(',', index + 1)) != -1) {

ss.add(s.substring(oldIndex, index));

oldIndex = index + 1;

}

if (s.charAt(s.length() - 1) == ',') {

ss.add("");

}

String[] array = ss.toArray(new String[ss.size()]);

System.out.println(Arrays.toString(array));

6、数组有没有length()这个方法? String有没有length()这个方法?JS的数组有没有length()方法?JS 的字符串有没有length()方法?

数组没有length()这个方法,有length的属性。String有有length()这个方法。JS中只有length属性,没有length方法。

7、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";

答:产生了一个对象,即"abcd"

对于如下代码:

String s1 = "a";

String s2 = s1 + "b";

String s3 = "a" + "b";

System.out.println(s2 == "ab"); // false

System.out.println(s3 == "ab"); // true

String s = "a" + "b" + "c" + "d";

System.out.println(s == "abcd"); // true s被优化为”abcd”

8、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

也许你的答案是在return之前,但往更细地说,我的答案是在return中间执行,请看下面程序代码的运行结果:

publicclass Test {

publicstatic void main(String[] args) {

System.out.println(test());

}

staticint test() {

int x = 1;

try {

return x;

}

finally {

++x;

}

}

}

---------执行结果 ---------

1

运行结果是1,为什么呢?主函数调用子函数并得到结果的过程,好比主函数准备一个空罐子,当子函数要返回结果时,先把结果放在罐子里,然后再将程序逻辑返回到主函数。所谓返回,就是子函数说,我不运行了,你主函数继续运行吧,这没什么结果可言,结果是在说这话之前放进罐子里的。

9、下面的程序代码输出的结果是多少?

publicclass SmallT {

publicstaticvoid main(String args[]) {

SmallT t = new SmallT();

int b = t.get();

System.out.println(b);

}

publicint get() {

try {

return 1;

} finally {

return 2;

}

}

}

返回的结果是2。

我可以通过下面一个例子程序来帮助我解释这个答案,从下面例子的运行结果中可以发现,try中的return 语句调用的函数先于finally中调用的函数执行,也就是说return语句先执行,finally语句后执行,所以,返回的结果是2。Return并不是让函数马上返回,而是return语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行finally语句后才真正开始返回。

在讲解答案时可以用下面的程序来帮助分析:

publicclass Test {

publicstaticvoid main(String[] args) {

System.out.println(newTest().test());

}

int test() {

try {

return func1();

} finally {

return func2();

}

}

int func1() {

System.out.println("func1");

return 1;

}

int func2() {

System.out.println("func2");

return 2;

}

}

-----------执行结果-----------------

func1

func2

2

结论:finally中的代码比return和break语句后执行

10、final, finally, finalize的区别。

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义成final类型

finalint[] number = { 20 };

new Thread() {

@Override

publicvoid run() {

for (int k = 0; k < 20; k++) {

number[0]++;

}

}

}.start();

Thread.sleep(10);

System.out.println(number[0]);

finally是异常处理语句结构的一部分,表示总是执行,用来释放资源。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用

11、运行时异常(Runtime)与检查异常(Checked)有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

运行时异常为编程时的异常,应该在生产环境正常运行状态下不会发生的异常

检查异常通常为一种设计模式,表示某处执行时可能因为条件不足而出现异常,程序必须对此进行处理,JVM会提示编程人员捕获或重新抛出异常

12、error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出,不可能指望程序能处理这样的情况。exception表示一种设计或实现问题,也就是说,它表示如果程序运行正常,正常情况下从不会发生的情况。

13、Java中的异常处理机制的简单原理和应用。

异常是指java程序运行时(非编译)所发生的非正常情况或错误。

Java使用面向对象的方式来处理异常,它把程序中发生的每个异常也都分别封装到一个对象中,该对象中包含有异常的信息。

Java可以自定义异常类,所有异常的根类为https://www.doczj.com/doc/c31964375.html,ng.Throwable,Throwable下面又派生了两个子类:Error 和Exception。

Error表示应用程序本身无法克服和恢复的一种严重问题,程序只有退的份了,例如说内存溢出和线程死锁等系统问题。

Exception表示程序还能够克服和恢复的问题,其中又分为运行时异常和检查异常,运行时异常是软件本身缺陷所导致的问题,也就是软件开发人员考虑不周所导致的问题,软件使用者无法克服和恢复这种问题,但在这种问题下还可以让软件系统继续运行或者让软件死掉。例如,数组越界(ArrayIndexOutOfBoundsException),空指针异常(NullPointerException)、类转换异常(ClassCastException);检查异常是运行环境的变化或异常所导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够,发生这样的异常后,程序不应该死掉。

Java为运行时异常和检查异常提供了不同的解决方案,编译器强制检查异常必须try..catch处理或用throws声明继续抛给上层调用方法处理,所以检查异常也称为checked异常,而运行异常可以处理也可以不处理,所以编译器不强制用try..catch处理或用throws声明,所以运行异常也称为Runtime异常。

提示答题者:就按照三个级别去思考:虚拟机必须宕机的错误,程序可以死掉也可以不死掉的错误,程序不应该死掉的错误

14、请写出你最常见到的5个RuntimeException。

NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException、IllegelArgumentException、SecurityException。

15、Java语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try 块中可以抛出异常吗?

1.Java语言如何进行异常处理见43题

2.throws为向上抛异常,当前方法无法处理此异常,需要上层方法进行处理

throw程序出错时,手工抛出异常,最好能把异常进行堆栈式抛出

try尝试执行,里面的语句可能出现异常,如出现异常需要处理

catch处理try中出现的异常

finally在try后执行清理操作,用于释放资源

3.在try中可以抛出异常

16、Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?

java5以前,有如下两种:

第一种:

new Thread(){}.start();这表示调用Thread子类对象的run方法,new Thread(){}表示一个Thread的匿名子类的实例对象,子类加上run方法后的代码如下:

new Thread() {

publicvoid run() {

}

}.start();

第二种:

new Thread(new Runnable(){}).start();这表示调用Thread对象接受的Runnable对象的run方法,new Runnable(){}表示一个Runnable的匿名子类的实例对象,runnable的子类加上run方法后的代码如下:

new Thread(new Runnable() {

publicvoid run() {

}

}).start();

从Java5开始,还有如下一些线程池创建多线程的方式:

ExecutorService pool = Executors.newFixedThreadPool(3);

for (int i = 0; i < 10; i++) {

pool.execute(new Runable() {

publicvoid run() {

}

});

}

Executors.newCachedThreadPool().execute(new Runable() {

publicvoid run() {

}

});

Executors.newSingleThreadExecutor().execute(new Runable() {

publicvoid run() {

}

});

有两种实现方法,分别使用new Thread()和new Thread(runnable)形式,第一种直接调用thread的run方法,所以,我们往往使用Thread子类,即new SubThread()。第二种调用runnable的run方法。

有两种实现方法,分别是继承Thread类与实现Runnable接口。可以的话使用线程池

用synchronized关键字修饰同步方法

反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应在自己的Thread 类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。

17、sleep()和 wait()有什么区别?

1. sleep是在Thread类定义的,wait是在Object类定义的

2. sleep有两个重载方法,wait有三个重载方法

3. sleep能自动唤醒,wait有参数的方法能自动唤醒,但无参数的重载方法不能自动唤醒,需要使用

notify/notifyAll进行手动唤醒

4. sleep挂起时,不释放锁资源,wait挂起时,会释放锁资源

5. sleep调用时,不需要放在synchronized内,wait需要放在synchronized内

6. sleep一般不会产生死锁,但是wait可能会产生死锁

18、同步和异步有何异同,在什么情况下分别使用他们?举例说明。

同步是指所有操作串行化执行,顺序不能改变,前一操作未完成,后个操作不执行。

异步是指所有操作可以并行执行,顺序无关。

例如寄信

同步:如果没有寄完,不能吃饭,邮递员10天后送到,发送人被饿死

异步:寄出后可以立即吃饭,邮递员送完后,通知发送人送信结果。

如果强调执行顺序的话,用同步。如果顺序无关,则可以用异步。

异步执行效率比同步高。该用同步时,如果用了异步,结果可能会出现不一致。

19. 下面两个方法同步吗?(自己发明)

class Test {

synchronizedstaticvoid sayHello3() {

}

synchronizedvoid getX() {

}

}

20、多线程有几种实现方法?同步有几种实现方法?

多线程有两种实现方法,分别是继承Thread类与实现Runnable接口

同步的实现方面有五种,分别是synchronized、wait与notify、sleep、suspend、join

synchronized: 一直持有锁,直至执行结束

wait():使一个线程处于等待状态,并且释放所持有的对象的lock,需捕获异常。

sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,需捕获异常,不释放锁。

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

notityAll():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让他们竞争。【更多精彩知识内容,关注华育国际官网及微信公众号】

java单选题库-博学谷

一、单选题 属于以下哪种语言() A. 机器语言 B. 汇编语言 C. 高级语言 D. 以上都不对 答案:C 解析:Java是一门高级编程语言 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 2.下列目录中,哪一个是用来存放JDK核心源代码的 A. lib目录 B. src目录 C. jre目录 D. include目录 答案:B 解析:JDK核心源代码存放在src文件夹下 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 3.下面命令中,可以用来正确执行HelloWorld案例的是() A. java HelloWorld B. java C. javac HelloWorld D. javac

答案:A 解析:java命令负责运行编译后的.class文件,不需要文件后缀名。 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 4.下面关于配置path环境变量作用的说法中,正确的是() A. 在任意目录可以使用javac和java命令 B. 在任意目录下可以使用class文件 C. 在任意目录可以使用记事本 D. 在任意目录下可以使用扫雷游戏 答案:A 解析:path环境变量的作用是在任意目录下都可以使用javac和java命令。 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 5.下列选项中,可以正确配置classpath的命令是() A. set classpath =C:\Program Files\Java\ set classpath : C:\Program Files\Java\ classpath set =C:\Program Files\Java\ classpath set : C:\Program Files\Java\ 答案:A 解析:配置classpath的命令是set classpath=xxx,并且等于号两边不要有空格。 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 6.下面选项中,完全面向对象的编程语言是() A. C B. COBOL C. JAVA D. FORTRAN 答案:C

java基础笔试题(答案已整理)

Java基础试题 一:选择题(1*30=30)(题目写在答题纸上面) 1:Java 提供哪几种运算符多选( abcd )。 A)算术运算符B)位运算符 C)关系运算符D)逻辑运算符E)条件运算符 2:https://www.doczj.com/doc/c31964375.html,ng包的()方法比较二个对象是否相等返回true.。(b) A:toString() B:equals() C:compare D:以上都不正确 3:下列对Java 的变量与函数说法正确的是多选(ace )。 A)变量是用来保存数据的B)变量是用来实现操作过程的C)函数是用来实现操作过程的D)函数是用来保存数据的E)函数的参数是数据的入口 4:已知:int[] a = new int[100];在下列给出的数组元素中,非法的是。(d) A:a[0] B:a[1] C:a[99] D:a[100] 5:在java中,一个类可同时定义许多同名的方法,在这些方法的形式参数个数,类型或顺序各不相同,传值也可以各不相同。这种面向对象程序的特性称为。(c) A:隐藏B:覆盖C:重载D:Java不支持此特性 6:()是一组常量和抽象方法的集合。(d) A:实例B:类C:包D:接口 7:下面关于数组说法正确的是多选(abcde)。 A)一维数组实质上是相同类型变量的列表 B)创建一个数组首先定义数组变量所需的类型 C)char c[]=new char[26];可声明一个含有26 个元素的char型数组 D)当为一个多维数组的时候分配内存时,仅需要为第一指定内存,然后再分配其他维的存E)int twain[][] = new int[4][5];可声明一个二维数组 8:Java源文件和编译后的文件扩展名分别为。(b) A:.class和.java B:.java各.class C:.class和.class D:.java和.java 9:设x=5;则y=x--和y=--x的结果,使y分别为。(c) A:5,5 B:5,6 C:5,4 D:4,4 10:若x是float类变量,x=10/4;则x 的值是。(b) A:2 B:2.0 C:2,5 D:编译错误 11:.下面方法中,用于调度线程使其运行的是?多选(bc ) A. init() B. start() C. run() D. resume() E. sleep() 12.下面哪种情况能实现自动转换多选(ace )。 A)byte 型转换成int 型B)int 型转换成byte 型 C)float 型转换成double型D)double 型转换成int 型E)char型转换成int 型 13:下列那些是正确的JAVA字符串?多选(abd )。 A. "\"\"" B. "Oxzabc" C. "\"\" D. "\t\t\r\n" E. "boolean"5 14:在使用super 和this关键字时,以下描述正确的是。(a) A::在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B:super()和this()不一定要放在构造方法内第一行

Java基础知识笔试题及答案2

1.Java中提供了名为()的包装类来包装原始字符串类型。 A.Integer B.Char C.Double D.String 2.https://www.doczj.com/doc/c31964375.html,ng包的()方法比较两个对象是否相等,相等返回true。 A.toString()B.equals()C.compare()D.以上所有选项都不正确3.使用()方法可以获得Calendar类的实例。 A.get()B.equals()C.getTime()D.getInstance() 4.下面的集合中,()不可以存储重复元素。 A.Set B.Collection C.Map D.List 5.关于Map和List,下面说法正确的是()。 A.Map继承List B.List中可以保存Map或List C.Map和List只能保存从数据库中取出的数据 D.Map的value可以是List或Map 6.给定如下Java代码,编译运行的结果是()。 Import java.util.*; public class Test { public static void main(String[] args) { LinkedList list=new LinkedList(); list.add(“A”); list.add(2,”B”); String s=(String)list.get(1); System.out.println(s); }

A.编译时发生错误B.运行时引发异常C.正确运行,输出:A D.正确运行,输出:B ###############################################################3 3.所有异常的父类是()。 A.Error B.Throwable C.RuntimeException D.Exception 4.下列()操作不会抛出异常。 A.除数为零B.用负数索引访问数组 C.打开不存在的文件D.以上都会抛出异常 5.能单独和finally语句一起使用的块是()。 A.try B.throws C.throw D.catch 6.在多重catch块中同时使用下列类时,()异常类应该最后列出。 A.Exception B.ArrayIndexOutOfBoundsException C.NumberFormatException D.ArithmeticException 7.执行下面的代码会引发()异常。 String str=null; String strTest=new String(str); A.InvalidArgumentException B.IllegalArgumentException C.NullPointerException D.ArithmeticException 8.这段代码的输出结果是()。 try{ System.out.print(“try,“); return; } catch(Exception e){ System.out.print(“catch,“); } finally { System.out.print(“finally”);

java基础笔试测试题与答案

Java 一章至五章考试 一. 填空题(8 分) 1. 面向对象的三大原则是( 封装),( 继承) 和( 多态).2 分 2. 如果想在对象实例化的同时就初始化成员属性,则使用( 构造函数).2 分 3. ( 实体) 方法和( 构造) 方法不能修饰为abstract ?2分 二.选择题(60 分) 1) 在Java 语言中,下列(a,d )是不满足命名规范的变量名。(选择二项) a) 姓名 b) $Name c) _instanceof d) instanceof 2) 下列Java 代码片段的输出结果是( a ) 。 char c='a'; int i=c; float f=i; byte b=(byte)c; System.out.println(c+","+i+","+f+","+b); a) 编译错误 b) a,97,97,97 c) a,97,97.0,97 d) a,97,97.0f,97 3) 下列Java 代码中,空白处的代码是(b,c )。( 选择两项) public interface Fee{ public float calLabFee(float unitPrice, float time); } public class FeeImpl implements Fee { public float calLabFee(float unitPrice, float time){ return unitPrice * time; } } public class FeeInterfaceTest { public static void main(String[] args){ ________________ Float labFee = fee.calLabFee(400.00,5); } }

Java基础笔试机试测试题(带答案)

Java基础考试题 班级:__________ 姓名:___________ 日期:_____________ 一、笔试(45题,每题2分) 1) 分析下面的Java程序段,编译运行后的输出结果是()。 public class Test { public static void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { StringBuffer sb = new StringBuffer("stringbuffer1"); changeString(sb); System.out.println("sb = " + sb.toString()); } } A. sb = stringbuffer2stringbuffer1 B. sb = stringbuffer1 C. sb = stringbuffer2 D. sb = stringbuffer1stringbuffer2 2) 在Java中,包有多种用途,但不包含()。 A. 将类组合成较小的单元,便于使用 B. 有助于避免命名冲突 C. 有助于提高运行效率 D. 允许在更广的范围内保护类、数据和方法 3) 在Java中,如果要在字符串类型s="java"中,得到字母'v' 出现的位置,选()语句。 A)s.matches('v'); B)s.charAt('v'); C)s.indexOf('v'); D)s.substring('v'); 4)下列代码运行后,变量c的值是()。 int a=15,b=10; double c=a/b; a) 1.5 b) 1.0 c) 1 d) 0 5)main方法如下所示,该程序的运行结果是()。 public static void main(String [] args){ int i=0; System.out.print(i++); } a) 输出0 b) 输出1 c) 编译错误d) 运行时出现异常

JAVA基础面试题经典

JAVA基础面试题经典

第一阶段题库 基础知识部分: 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)如果类名使用拉丁字母,那么名字的首写字母 使用大写字母。

Java程序员认证考试题库

第一部分 基础知识练习 目标 本章对应于《学生指南》各章的内容分别提供了练习题集,包括: ●第一章Java入门 ●第二章数据类型和运算符 ●第三章流程控制与数组 ●第四章封装 ●第五章继承 ●第六章抽象类与接口 ●第七章多态 ●第八章异常 ●第九章多线程机制 ●第十章输入输出流 ●第十一章使用泛型和集合框架 ●第十二章基于Swing的图形用户界面(GUI)设计 ●第十三章Java事件驱动编程

第一章练习题(Java入门) (C)1.下列哪项不是JDK所包含的内容?(选一项)A.Java编程语言 B.工具及工具的API C.Java EE扩展API D.Java平台虚拟机 2.下列关于JDK、JRE和JVM的描述。哪项正确?A.JDK中包含了JRE,JVM中包含了JRE B.JRE中包含了JDK,JDK中包含了JVM C.JRE中包含了JDK,JVM中包含了JRE D.JDK中包含了JRE,JRE中包含了JVM 3.下列哪个工具可以编译java源文件? A.javac B.jdb C.javadoc D.junit 4.JDK工具javadoc的作用是哪项? A.生成Java文档 B.编译Java源文件 C.执行Java类文件 D.测试Java代码 5.以下哪些包是Java标准库中常用的包?(选三项)A.java.lang B.javax.servlet .http C.j ava. io D.java.sql

6.使用JDK工具生成的Java文档的文件格式是? A.XML格式 B.自定义格式 c.二进制格式 D.HTML格式 (AC)7.以下关于JVM的叙述,哪项正确?(选两项) A.JVM运行于操作系统之上,它依赖于操作系统 B.JVM运行于操作系统之上,它与操作系统无关 C.JVM支持Java程序运行,它能够直接运行Java字节码文件D.JVM支持Java程序运行,它能够直接运行Java源代码文件 8.以下关于支持Java运行平台的叙述,哪项错误? A.Java可在Solaris平台上运行 B.Java可在Windows平台上运行 C.Java语言与平台无关。Java程序的运行结果依赖于操作系统D.Java语言与平台无关。Java程序的运行结果与操作系统无关 (B)9.以下关于Applet和Java程序之间关系的叙述,哪项错误? A.-个Applet就是一段Java程序 B.Applet是一种特殊的Java程序,它需要运行在Web服务器上C.Applet是一种特殊的Java程序,它需要运行在Web浏览器上D.Applet是一种Java SE平台的应用程序 (AD)10.以下关于Java HotSpot的描述,哪两项错误?(选两项)A.Java HotSpot是一种热编译技术,在编译Java源程序时会被使用B.Java HotSpot是一种热编译技术,在运行Java代码时会被使用C.Java HotSpot是一种热编译技术,它只对程序的部分字节码进行优化D.Java HotSpot是一种热编译技术,它会对程序的全部字节码进行优化

Java基础语法考试题

学士后Java阶段测试-U1单元-笔试试卷1 考试时间 60分钟 选择题(共50题,每题2分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()(多选)。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重 载。(多选) public class Test{ public void cal(int x, int y, int z) {} ________________ } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5) 下面Java代码的运行结果是()。 class Penguin { private String name=null; // 名字 private int health=0; // 健康值 private String sex=null; // 性别 public void Penguin() { health = 10; sex = "雄"; System.out.println("执行构造方法。");

JAVA入门练习50题(含答案)

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count); } }

Java基础笔试题(一)

Java阶段测试笔试题 一、选择题(每题5分) 1.Java程序的源文件扩展名为() A..doc B..txt C..java D..html 2.java程序中,main方法的格式正确是() A.static void main(String[] args) B.public void main(String[] args) C.public static main(String[] args) D.public static void main(String[] args) 3.在java中,下面()命令能够将java源文件编译为类文件 A.java B.javaw C.javac D.jar 4.给定java代码,进行编译运行,结果是() String s; System.out.print(“s=” + s); A.编译错误

B.编译通过,但是运行时出现错误 C.正常输出,输出s = null D.正常输出,输出s = 5.在java中,下列()是合法的变量名【选两项】 A._myString B.$a+b C.myString D.9myString 6.在java中,下列代码运行后的输出结果是() int x = 5 * 3; int y = x + 5 / x + 3; System.out.print(y); A.18 B.21 C.19 D. 4 7.从键盘输入值,第一步所做的是导入包,以下导入包的语句正确 的是()【选两项】 A.import java.util.*; B.import java.until.*; C.import java.util.Scanner; D.import java.until.Scanner;

JAVA技术--Java基础知识常见考试题JAVA技术.doc

一、单选题 1.对类:(B) public class Test( //...do something } 下面那个正确地定义了类Test的构造函数。 A)public void Test() () B)publicTest()(} C ) public static Test() (} D) publicTest(); 2.下面哪个函数是public void example()(...)的重载函数。(A) A)public void example( float f)(...) B)public int example() (...) C)public void example2()(...} D)public int example_overLoad ()(...) 3.下面的代码段中,执行之后i和j的值是_C_。 int i = 1; intj; j = i++; A)1, 1 B) 1,2 C) 2, 1 D) 2,2 4.以下for循环的执行次数是_B o for(int x=0,y=0;(y !=0)&&(x<4) ;x++); A)无限次B) 一次也不执行 C)执行4次D)执行3次 5.下面程序的输出结果是—C o public class People( String name; int id; public People( String str, int n )( name = str; id = n; } public String toString(){ return id + " :” + name; } public String print()(

【优质】Java基础笔试题大全word版本 (16页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == Java基础笔试题大全 还在找JAVA 笔试题吗,下面小编为大家精心搜集了关于Java基础笔试题的大全,欢迎大家参考借鉴,希望可以帮助到大家! 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.doczj.com/doc/c31964375.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(){

java基础知识练习题

1、定义四个变量,a=’A’;b=’B’,c=’C’,d=’D’;现在编程实现a与d变量中的值交换,b与c 中的值交换。最后输出a、b、c、d中的值 class Demo1 { public static void main(String[] args) { char a = 'A',b = 'B',c = 'C',d = 'D'; char i,h; i = a; a = d; d = i; h = b; b = c; c = h; System.out.println("a="+a); System.out.println("b="+b); System.out.println("c="+c); System.out.println("d="+d); } } 2、定义一个空间,保存你的姓名。再定义一个空间保存你的性别。再定义一个空间保存你的生日。再定义一个空间保存你的年龄。最后输出: 姓名性别生日年龄 小样男 1993.8.8 15 String s = “”; class Demo2 { public static void main(String[] args) {

String name = "小样"; String sex = "男"; String birthday = "1993.8.8"; int age = 15; System.out.println("姓名:"+name); System.out.println("性别:"+sex); System.out.println("生日:"+birthday); System.out.println("年龄:"+age); } } 3、小明买了一双鞋,价值58元,买了3件衣服,每件30元,买了5个包,每个包55.8元。小明共交了500元,问还要找回多少元。用程序表达。 class Demo3 { public static void main(String[] args) { int Shoes = 58; double Bag = 55.8; double Cost = 500-Shoes-5*Bag; System.out.println("还要找回"+Cost); } }

《java基础》测试题(笔试)

JAVA基础测试 一、选择题:(3.5分一题,共70分) 1 下面的语句哪一行在编译时没有警告和编译错误 e a) float f=1.3; b) char c="a"; c) byte b=257; d) boolean b=null; e) int i=10; 2 下面的代码编译后会出现什么问题 a public class MyClass { public void amethod(String[] arguments) { System.out.println(arguments); System.out.println(arguments[1]); } public static void main(String arguments[]) { amethod(arguments); } } a) 错误,不能静态引用amethod方法 b) 错误,main方法不正确 c) 错误,数组必须包含参数 d) Amethod必须声明为String类型 3 下面的哪一组代码会出现编译错误 a a) import java.awt.*; package Mypackage; class Myclass {} b) package MyPackage; import java.awt.*; class MyClass{} c) package MyPackage; import java.awt.*; class MyClass{} 4) byte类型的大小是 a a) -128 ~ 127 b) -28-1 ~28 c) -255 ~ 256 d)不同的操作系统Java虚拟机分配不同的大小 5) 下面的代码在输入下面的命令行后会输出什么内容 d 命令行:java myprog good morning 代码: public class myprog{ public static void main(String argv[])

JAVA基础面试题(经典)

基础知识部分: 1. JDK是什么?JRE是什么? a) 答:JDK:java开发工具包。JRE:java运行时环境。 2. 什么是java的平台无关性? a) 答:Java源文件被编译成字节码的形式,无论在什么系统环境下,只要有java虚拟机就能运行这个字节码文件。也就是一处编写,处处运行。这就是java的跨平台性。 3. 在一台电脑上配置java环境,path起什么作用?如何配置? a) 答:path的作用是在DOS环境下,能在任意位置使用JD K目录中bin文件夹中的可执行程序,来编译执行java程序。 b) 在环境变量中找到path变量,把bin文件夹的绝对路径加上即可。

4. 什么样的标识符是合法的? a) 由字母、数字、_和$组成,长度不限。其中字母可以是大写或小写的英文字母,数字为0到9。 b) 标识符的第一个字符不能是数字。 c) 标识符区分大小写。 d) 标识符不能包含空格。 5. Java有几种基本数据类型? a) byte,short,int,long,float,double,char,bool ean 6. 什么是隐式类型转换?什么是显示类型转换? a) 当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换。

b) 当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换运算。 7. &&和&区别,||和|区别? a) &&和||是短路与,短路或,当左边的表达式能判断当前结果,则不判断右边的表达式。 b) 而& 和|则将两边的表达式都运算完毕后,再算结果。 8. break,continue区别? a) break结束所有循环,continue结束当次循环,进入下次循环。 9. 类的命名规则是什么? a) 如果类名使用拉丁字母,那么名字的首写字母使用大写字母。

JAVA基础考试题

1704班基础考试题 1、下列关于java中抽象类的说法正确的有(A) A、含有抽象方法的类必须声明为抽象类 B、抽象类中不可以有非抽象方法 C、抽象类中至少需要包含一个抽象方法 D、抽象类无法实例化 2、下列哪个关键字可以用于实现同步(C) A、native B、static C、synchronized D、finalize 3、下列哪些集合属于Collection的子类(CD)[选两项] A、TreeMap B、Hashtable C、ArrayList D、HashSet 4、下面关于线程的说法错误的是(B) A、线程其实就是进程中的一个控制单元,它负责就是程序的执行。一个进程中至少有一个线程 B、当一个类实现了Runnable接口后,并实现了其run方法,就可以直接调用这个类的start方法开启线程 C、继承Thread类或者实现Runnable接口都可以封装线程要执行的任务 D、Thread类本身就是一个线程类,可以直接创建Thread类对象,开启线程

5、下面关于map集合说法正确的是(A) A、map集合中不能直接使用Iterator进行迭代 B、对map集合使用keySet方法,会得到所有value的值组成一个list集合 C、使用map的append方法可以向map集合中添加元素 D、使用removeAll方法可以将map集合中的元素清空 6、下面的程序执行后count的结果是(B) A、0 B、10 C、9 D、11 7、关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C) A、可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B、可以被两种类访问和引用:该类本身、该类的所有子类 C、只能被该类自身所访问和修改 D、只能被同一个包中的类访问 8、编译并运行以下代码将发生什么(D) A、代码编译时报出错误提示信息“equals()方法未定义” B、编译通过,抛出运行期异常 C、输出Bothareequal D、输出Botharenotequal 9、以下字符串格式中的信息,如果想要使用集合来存储,哪个集合比较适合(D) A、LinkedList B、TreeSet

java入门基础笔试题

笔试题 一、选择题 1)对以下代码,下面说法正确的是() int k=10; while(k==0){ k=k-1; } A.循环将执行10次 B.死循环,将一直执行下去 C. 循环将执行1次 D.循环一次也不执行 2)下面变量名正确的是() A.num1 B.2num C.%num D.num# 3) else if块的选择结构应用于() A.switch选择结构 B.基本if选择结构 C.多重if选择结构 D.while循环 4)下面属于逻辑运算符的是() A.+ - * % B. ++ -- C.>= != <= D.&& || 5)在java中,以下代码的输出结果是()(选择一项)。 int num1=7; int num2=5; System.out.println(num1/num2); 选择一项 A:1.4 B:4 C:1 D:2 6)分析以下java代码程序,运行以下表达式后,变量a的值是()。 int a=5+4*3%2/1; A:1 B:2 C:3 D:4 E:5 7)在java中,如下代码的输出结果是()。 public static void main(String args[]){ double avg=0; int score1=61; int score2=78; avg=(score1+score2)/2; System.out.println(“平均分是:”+avg); A.平均分是69.0 B.平均分是69 C.平均分是69.0000 D.编译错误 8)在java中,以下()能够实现向控制台输出换行符。(选择二项) A.System.out.println(); B.System.out.print(“\n”); C.System.out.print(“\t”); D.System.out.print(“”); 9)Java代码如下所示,编译运行结果是()。 public static void main(string[] args){

Java基础测试题答案

1. 有以下程序片段,下列哪个选项不能插入到行1。( D ) 1. class Interesting{ 3.} (只能有一个public修饰的class) A、import .*; B、package mypackage; C、class OtherClass{ } D、public class MyClass{ } 2. 以下哪项是接口的正确定义?( B D ) A、 interface B { void print(){};} (接口里的方法都是抽象的,不能有方法体) B、 abstract interface B { void print() ;} C、abstract interface B extends A1,A2 口可以声明为public(公共)或默认的访问权限。接口隐含表明是抽象的(abstract)的。 2.接口的方法默认即为public(公共)且是abstract(抽象)的. 3.接口中的变量默认即为public(公共), static(静态) and final(最终的)。

3. 下面哪个函数是public void aMethod(){...}的重载函数?( D ) A、void aMethod( ){...} B、public int aMethod(){...}

C、public void aMethod ( ){...} D、public int aMethod ( int m){...} (重载:定义同名的方法,方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同) 4. A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明: 1. A a0=new A(); 2. A a1 =new B(); 3. A a2=new C(); 问以下哪个说法是正确的?( D ) A、只有第1行能通过编译 B、第1、2行能通过编译,但第3行编译出错 C、第1、2、3行能通过编译,但第2、3行运行时出错 D、第1行、第2行和第3行的声明都是正确的 (A是B的父类,也算是C的父类) 5. 假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C ) A a = new A(); class A { int i;

Java基础试题及其答案

Java试题 1) java程序中,main方法的格式正确的是()。(选择一项) a)static void main(String[] args) b)public void main(String[] args) c)public static void main(String[]s) d)public static void main(String[] args) 2)给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项) a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 3)在Java中,在包com.db下定义一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。(选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 5) 在Java中下列()方法可以把JFrame的布局管理器设为FlowLayout类型(选择一项) a)jFrame.setLayout(new FlowLayout() ); b) jFrame.addLayout(new FlowLayout() ) c)jFrame.setFlowLayout() d)jFrame.addFlowLayout() 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; s.concat(“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 7) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList b) HashSet c) HashMap d) LinkedList

java期末考试题资料讲解

第1章Java开发入门 习题 一、填空题 1.将.java源文件编译为.class文件的是【】命令。 2.在Eclipse窗口中选择菜单【】→New→Java Project创建Java项目。 3.在安装JDK的过程中,有三个功能模块可供选择,它们分别是【】,【】 和【】。 4.将Hello.java文件编译为class文件,需要键入【】命令。 5.JRE是Java程序的【】。 二、判断题 1.Eclipse只是一个框架和一组服务,所有功能都是将插件组件加入到Eclipse框架中 来实现的。() 2.JDK安装成功后,需要将bin目录的路径配置在环境变量path中。() 3.Java配置环境变量path的目的是为了可以查找到.class文件。() 4.JDK安装成功后,classpath环境变量必须配置。() 5.在命令行窗口中,编译Demo.java文件可以输入javac Demo。() 三、选择题 1.如果jdk的安装路径为:c:\jdk,若想在命令窗口中任何当前路径下,都可以直接使 用javac和java命令,需要将环境变量path设置为以下哪个选项() A: c:\jdk B: c:\jdk\bin C: c:\jre\bin D: c:\jre 2.下列关于classpath环境变量的说法中,说法正确的是() A: classpath配置一次后可永久使用 B: 没有classpath环境变量就不能运行Java程序 C: classpath环境变量可以让虚拟机找到class文件的目录 D: 查看当前classpath配置的命令是:classpath 3.下面哪种类型的文件可以在Java虚拟机中运行() A: .java B: .jre C: .exe D: .class 4.Java属于以下哪种语言() A: 机器语言 B: 汇编语言 C: 高级语言 D: 以上都不对 5.下列关于Java特点的描述中,错误的是()。

相关主题
文本预览
相关文档 最新文档