文档库 最新最全的文档下载
当前位置:文档库 › 整理好的java复习资料

整理好的java复习资料

整理好的java复习资料
整理好的java复习资料

简答题:

1.说出一些常用的类,包,接口,请各举5个

常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integer

常用的包:https://www.wendangku.net/doc/708250195.html,ng java.awt java.io java.util java.sql

常用的接口:Remote List Map Document NodeList

2.线程的基本概念、线程的基本状态以及状态之间的关系

线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有

一个线程,也就是程序本身。

Java中的线程有四种状态分别是:运行、就绪、挂起、结束。

3.多线程有几种实现方法?同步有几种实现方法?

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

同步的实现方面有两种,分别是synchronized,wait与notify

4、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?

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

用synchronized关键字修饰同步方法

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

当JA V A程序违反了JA V A的语义规则时,JA V A虚拟机就会将发生的错误表示为

一个异常。违反语义规则包括2种情况。一种是JA V A类库内置的语义检查。例如

数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发

NullPointerException。另一种情况就是JA V A允许程序员扩展这种语义检查,程序

员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常

都是https://www.wendangku.net/doc/708250195.html,ng.Thowable的子类。

5.error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。

不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

6.abstract class和interface有什么区别?

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一

个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。

不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让

它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的

子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,

在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。

接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能

从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这

种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。

由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。

引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对

象的类是否实现了接口。

7.Overload和Override的区别?

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写

Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多

态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说

该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,

对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

Overloaded的方法是可以改变返回值的类型。

8.请说出作用域public,private,protected,以及不写时的区别

作用域当前类同一package 子孙类其他package Public √ √√ √

protected √ √ √ ×

friendly √√ ××

private √ ×××

不写时默认为friendly

选择题:

1.下面哪条语句把方法声明为抽象的公共方法?(B)

A.public abstract method();

B.public abstract void method();

C.public abstract void method(){}

D.public void method() extends abstract;

2.若在某一个类定义中定义有如下的方法:final void aFinalFunction();

则该方法属于(C)。

A、本地方法

B、静态方法

C、最终方法

D、抽象方法

3.main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项

是合法的(B)。

A、 public static void main()

B、 public static void main(String[ ] args)

C、 public static int main(String[ ] args)

D、public void main(String arg[ ])

4.下列关于构造方法的叙述中,错误的是(C)

A.Java语言规定构造方法名与类名必须相同

B.Java语言规定构造方法没有返回值,但不用void声明

C.Java语言规定构造方法不可以重载

D.Java语言规定构造方法只能通过new自动调用

5.关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C)

A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、

在其他包中的该类的子类

B.可以被两种类访问和引用:该类本身、该类的所有子类

C.只能被该类自身所访问和修改

D.只能被同一个包中的类访问

6.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺

序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C)。

A、隐藏

B、覆盖

C、重载

D、Java不支持此特性

7.在Java applet程序中,用户自定义的Applet子类常常覆盖父类的( D )方法来完成

applet界面的初始化工作。

A、start( )

B、stop( )

C、init( )

D、paint( )

8.下述概念中不属于面向对象方法的是(D)。

A.对象、消息 B.继承、多态

C.类、封装 D.过程调用

9.假设Foo类有如下定义,设f是Foo类的一个实例,下列语句调用哪个

是错误的?(A)

public class Foo

{ int i;

static String s;

void imethod() { }

static void smethod() { }

}

A、Foo.imethod();

B、f.imethod();

C、System.out.println(f.i);

D、Foo.smethod()

10.关于以下程序段,正确的说法是(C)

1. String s1=“a”+“b”;

2. String s2=new String(s1);

3. if(s1==s2)

4.System.out.println(“= =is succeeded”);

5. if (s1.equals(s2))

6.System.out.println(“.equals() is succeeded”);

A.行4与行6都将执行 B.行4执行,行6不执行

C.行6执行,行4不执行 D.行4、行6都不执行

11.对数组的定义及初始化不正确的方法是:( B )

A.int array[]; B.int array[8];

C.int[] array=new int[8]; D.int array[]=new int[8];

12.下面关于继承的哪些叙述是正确的? (D)

A.在java中允许多继承。

B.在java中一个类只能实现一个接口。

C.在java中一个类不能同时继承一个类和实现一个接口。

D. java的单一继承使代码更可靠。

13.关于length()这个方法的表述正确的是哪个? (C)

A.数组有length()这个方法,string也有length()这个方法。

B.数组有length()有这个方法,string没有length()这个方法。

C.数组没有length()这个方法,string有length()这个方法。

D.数组没有length()这个方法,string也没有length()这个方法。

14.下列关于修饰符混用的说法,错误的是(B)

A. abstract不能与final并列修饰同一个类

B. abstract类中不可以有private的成员

C. abstract方法必须在abstract类中

D. static方法中能处理非static的属性

15.下面是有关子类继承父类构造函数的描述,其中正确的是(D)。

A.创建子类的对象时, 先调用子类自己的构造函数,然后调用父类的构造函数。B.子类无条件地继承父类不含参数的构造函数。

C.子类必须通过super关键字调用父类的构造函数。

D.子类无法继承父类的构造函数。

16.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行的声明都是正确的

17.以下哪个接口的定义是正确的?(A)

A、 interface B

{ void print() { } ;}

B、 abstract interface B

{ void print() ;}

C、 abstract interface B extends A1,A2 //A1、A2为已定义的接口

{ abstract void print(){ };}

D、 interface B

{ void print();}

18.下面哪个不是Thread类的方法?(C)

A、yield()

B、sleep(long msec)

C、go()

D、stop()

19.哪个布局管理器使用的是组件的最佳尺寸? ( B )

A. FlowLayout

B. BorderLayout

C. GridLayout

D. CardLayout

62、包含可单击按钮的类的Java类库是哪个?

A.AWT

B.Swing

C.二者都有

D.二者都没有

63、下面的哪个用户界面组件不是容器? ( A )

A.JScrollPane

B.JFrame

C.JWindows

D.JScrollBar

66.paint()方法使用哪种类型的参数? (A)

A、 Graphics

B、 Graphics2D

C、 String

D、 Color

73.哪个关键字可以对对象加互斥锁? (B)

A、 transient

B、 synchronized

C、 serialize

D、 static

(13)Java中所有类的父类是 (D)

A)Father

B)Lang

C)Exception

D)Object

13.D。[解析] ObJeot是所有类的根。

(18)下列包中,包含JOptionPane类的是(A)

A)javax.swing

B)https://www.wendangku.net/doc/708250195.html,ng

C)java.util

D)java.applet

18.A。[解析] Swing中提供了JOptionPane类来实现类似Windows平台下的

MessageBox的功能,利用JOptionPane类中的各个staUc方法来生成各种标准

的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能。且这些

对话框都是模式对话框。

(20)下列程序的功能是将一个整数数组写入二进制文件。在程序的下划线处应填入的是

import java.io.*;

public class XieShuzu{

public static void main(String[] a){

int [] myArray={10,20,30,40};

try{

DataOutputStream dos=

new DataOutputStream(new FileOutputStream("ints.dat"));

for(int i=0;i

dos. _____(myArray[i]);

dos.close();

System.out.println("已经将整数数组写入二进制文件:ints.dat");

}catch(IOException ioe)

{System.out.println("IO Exception");}

}

}

A)writeArray

B)writeByte

C)writeInt

D)writeDouble

20.C。[解析] 向流中写入整数数组,用WrinteInt方法。

92.下面关于Applet的说法正确的是 (B)

A、 Applet也需要main方法

B、 Applet必须继承自java.awt.Applet

C、 Applet能访问本地文件

D、 Applet程序不需要编译

94.下列关于Java线程的说法那些是正确的(C)

A、每一个Java线程可以看成由代码、一个真实的CPU以及数据三部份组成。

B、创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。

C、 Thread类属于java.util程序包。

D、以上说法无一正确。

(21)Java中的抽象类Reader和Writer所处理的流是

A)图像流

B)对象流

C)字节流

D)字符流

21.D。[解析] Reader/Writer所处理的流是字符流,InputStream/OutputStream的

处理对象是字节流。

(22)下列叙述中,错误的是

A)内部类的名称与定义它的类的名称可以相同

B)内部类可用abstract修饰

C)内部类可作为其他类的成员

D)内部类可访问它所在类的成员

22.A。[解析] 内部类与外部类的名称不能相同。

(23)用于在子类中调用被重写父类方法的关键字是

A)this

B)super

C)This

D)Super

23.B。[解析] super可用于调用被重写的父类方法,注意Java的大小写敏感。

(26)下列为窗口事件的是

A)MouseEvent

B)WindowEvent

C)ActionEvent

D)KeyEvent

26.B。[解析] MouseEvent鼠标事件,AcfionEvent组件事件,KeyEvent键盘

事件。

(27)用鼠标点击菜单项(MenuItem)产生的事件是

A)MenuEvent

B)ActionEvent

C)KeyEvent

D)MouseEvent

27.B。[解析] ActionEvent组件事件,当特定于组件的动作(比如被按下)发生时,

由组件(比如Button)生成此高级别事件。事件被传递给每一个ActionListener对象,这些对象是使用组件的addActionListener方法注册的,用以接收这类事件。

(29)当使用SomeThread t=new SomeThread()创建一个线程时,下列叙述中正确的是

A)SomeThread类是包含run()方法的任意java类

B)SomeThread类一定要实现Runnable接口

C)SomeThread类是Thread类的子类

D)SomeThread类是Thread类的子类并且要实现Runnable接口

29.C。[解析] 由SomeThreadtead=newSomeThread()可知此题是通过继承

Thread类来创建线程的。

(30)在程序的下划线处应填入的选项是

public class Test_____{

public static void main(String args[]){

Test t = new Test();

Thread tt = new Thread(t);

tt.start();

}

public void run(){

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

system.out.println("i="+i);

}

}

}

A)implements Runnable

B)extends Thread

C)implements Thread

D)extends Runnable

30.A。[解析] Test类实现了Runnable接口。

(32)如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是

A)sleep()方法的时间到

B)获得了对象的锁

C)线程在调用t.join()方法后,线程t结束

D)wait()方法结束

32.D。[解析] walt()会使线程放弃对象锁,进入等待此对象的等待锁定池。

(33)当一个Applet被加载,后续对Applet生命周期方法的调用中,可能存在的次序是

A)start(),stop(),destroy()

B)init(),start(),stop(),start(),stop(),destroy()

C)start(),init(),stop(),destroy()

D)init(),start(),destroy()

33.B。[解析] init()一般用来完成所有必需的初始化操作,start()是在初始化之

后Applet被加载时调用,stop()在APplet停止执行时调用,destory()是Applet从

系统中撤出时调用。

(19)下列程序片段中,能通过编译的是

A)public abstract class Animal{

public void speak();}

B)public abstract class Animal{

public void speak(){}}

C)public class Animal{

public abstract void speak();}

D)public abstract class Animal{

public abstract void speak(){}}

(24)Java程序默认引用的包是

A)java.text包

B)java.awt包

C)https://www.wendangku.net/doc/708250195.html,ng包

D)java .util包

(27)为使下列代码正常运行,应该在下划线处填入的选项是

int〔〕numbers=new int[n];

for(Int i=0;i

numbers「i〕=i+1;

A)size

B)length

C)dimension

D)measurement

(29)下列能够正确创建线程的方法是

I.继承https://www.wendangku.net/doc/708250195.html,ng.Thread类,并重写run()方法

II.继承https://www.wendangku.net/doc/708250195.html,ng.Runnable类,并重写start()方法

III.实现https://www.wendangku.net/doc/708250195.html,ng.Thread接口,并实现run()方法

IV.实现https://www.wendangku.net/doc/708250195.html,ng.Runnable接口,并实现run()方法

A)I,III B)II,IV C)II,III D)I,IV

(30)下列线程状态转换序列,在线程实际运行中可能出现的序列是

A)新建→运行→阻塞→终止

B)……运行→阻塞→可运行→终止

C)……可运行→运行→阻塞→运行……

D)新建→可运行→运行→阻塞→可运行……

(33)下列关于Applet的叙述中,正确的是

A)Applet不仅可以嵌入到浏览器中运行,还可以独立运行

B)Applet的主类要定义为Applet类或JApplet类的子类

C)同一个页面中的Applet之间不能通信

D)Applet不支持多线程

(6)JVM指的是Java【虚拟机】。

(10)抽象类中含有没有实现的方法,该类不能【被实例化】。

(6)C语言是面向过程的语言,Java语言是面向【对象】的语言。

(7)Java字节码文件的扩展名是【.class】。

(8)JDBC是Java程序与【数据库】连接的一种机制。

8.数据库。[解析] JDBC(JavaDataBaseCormectivi,java数据库连接)是用于执

行SQL语句的JavaAPl,可以为多种关系数据库提供统一访问,它由一组用

Java语言编写的类和接口组成。

(9)能够用于创建可变字符串对象的类是【StxingBuffer】。

9.StxingBuffer。[解析] 它能提供长度可变字符串对象的表示。

(14)线程由于调用sleep()方法进入阻塞状态,当睡眠结束时,该线程将进入【可运行状

态(Runnable)】状态。

14.可运行状态(Runnable)。[解析] sleep()方法结束后,线程将进入可运行状态。

(15)在下列Java Applet程序的下划线处填入代码,使程序完整并能够正确运行。

import java.applet.*;

import java.awt.*;

public class HelloWorld 【extendsApplet】 {

public void paint(Graphics g){

g.drawString("Hello World!",25,25);

}

}

15.extendsApplet。[解析] 继承Applet类。

Java基础测试题(答案)

1. 有以下程序片段,下列哪个选项不能插入到行1。( D ) 1. 2.public class Interesting{ 3.//do sth 4. } (只能有一个public修饰的class) A、import java.awt.*; 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 //A1、A2为已定义的接口 { abstract void print(){ };} (同上) D、interface B { void print();} 1.接口可以声明为public(公共)或默认的访问权限。接口隐含表明是抽象的(abstract)的。 2.接口的方法默认即为public(公共)且是abstract(抽象)的. 3.接口中的变量默认即为public(公共), static(静态) and final(最终的)。 接口声明编译器如何解释呢 public interface Searchable {}public abstract interface Searchable {} abstract interface Searchable {}abstract interface Searchable {} interface Searchable {}abstract interface Searchable {}

java基础测试题及答案

一、选择题(每题2分,共40分) 1、下面哪个是Java语言中正确的标识符( C ) A、3com B、import C、that D、this 2、下面哪个语句(初始化数组)是不正确的:(B) A.int x[] = {1,2,3}; B.int x[3] = {1,2,3}; C.int[] x = {1,2,3}; D.int x[] = new int[]{1,2,3}; 3、下述概念中不属于面向对象方法的是( D )。 A.对象、消息 B.继承、多态 C.类、封装 D.过程调用 4、下面的代码段中,执行之后i 和j 的值是什么? ( B ) int i = 1; int j; j = i++*2+3*--i; A.1, 2 B.1, 5 C.2, 1 D.2, 2 5、下面哪条语句把方法声明为抽象的公共方法?(B ) A.public abstract method(); B.public abstract void method(); C.public abstract void method(){} D.public void method() extends abstract; 6、下面关于java中类的说法哪个是不正确的?( C ) A.类体中只能有变量定义和成员方法的定义,不能有其他语句。 B.构造函数是类中的特殊方法。 C.类一定要声明为public的,才可以执行。 D.一个java文件中可以有多个class定义。 7、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C ) class A { int i; static String s; void method1() { } static void method2() { } } A、System.out.println(a.i); B、a.method1(); C、A.method1(); D、A.method2() 8、容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小 的变化而改变? ( B ) A、CardLayout B、FlowLayout C、BorderLayout D、GridLayout 9、下列哪个用户图形界面组件在软件安装程序中是常见的? ( C ) A.滑块 B.进度条 C.按钮 D.标签

Java 8新特性探究(4)-类型注解 复杂还是便捷

Java 8新特性探究(4):类型注解复杂还是便捷 注解大家都知道,从java5开始加入这一特性,发展到现在已然是遍地开花,在很多框架中得到了广泛的使用,用来简化程序中的配置。那充满争议的类型注解究竟是什么?复杂还是便捷? AD: 注解大家都知道,从java5开始加入这一特性,发展到现在已然是遍地开花,在很多框架中得到了广泛的使用,用来简化程序中的配置。那充满争议的类型注解究竟是什么?复杂还是便捷? 什么是类型注解 在java 8之前,注解只能是在声明的地方所使用,比如类,方法,属性;java 8里面,注解可以应用在任何地方,比如: 创建类实例 new @Interned MyObject(); 类型映射 myString = (@NonNull String) str; implements 语句中 class UnmodifiableList T implements @Readonly List @Readonly T { ... } throw exception声明 void monitorTemperature() throws @Critical TemperatureException { ... } 需要注意的是,类型注解只是语法而不是语义,并不会影响java的编译时间,加载时间,以及运行时间,也就是说,编译成class文件的时候并不包含类型注解。 类型注解的作用 先看看下面代码 Collections.emptyList().add( One );inti=Integer.parseInt( hello );System.console ().readLine(); 上面的代码编译是通过的,但运行是会分别报UnsupportedOperationException;NumberFormatException;NullPointerException异常,这些都是runtime error; 类型注解被用来支持在Java的程序中做强类型检查。配合插件式的check framework,可以在编译的时候检测出runtime error,以提高代码质量。这就是类型注解的作用了。 check framework check framework是第三方工具,配合Java的类型注解效果就是1+1 2。它可以嵌入到javac 编译器里面,可以配合ant和maven使用,也可以作为eclipse插件。地址是checker-framework。 check framework可以找到类型注解出现的地方并检查,举个简单的例子: importcheckers.nullness.quals.*;publicclassGetStarted{voidsample(){@NonNullObjec tref=newObject();}} 使用javac编译上面的类 javac-processorcheckers.nullness.NullnessCheckerGetStarted.java 编译是通过,但如果修改成 @NonNullObjectref=null; 再次编译,则出现 GetStarted.java:5:incompatibletypes.found:@Nullable nulltype

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基础笔试测试题与答案

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基础考试题及答案

新员工考试 一、选择题(共30题,每题 2 分) 1. 下面哪些是合法的标识符?(多选题) A. $persons B. TwoUsers C. *point D. this E. _endline 答案A,B,E 分析Java 的标识符可以以一个Unicode 字符,下滑线(_),美元符($)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字(this 保留字)。 2. 哪些是将一个十六进制值赋值给一个long 型变量?(单选题) A. long number = 345L; B. long number = 0345; C. long number = 0345L; D. long number = 0x345L 答案D 分析十六进制数以Ox开头,Io ng型数以L (大小写均可,一般使用大写,因为小写的 l 和数字1 不易区分)。 3. 下面的哪些程序片断可能导致错误? (多选题) A. String s = "Gone with the wind"; String t = " good "; String k = s + t; B. String s = "Gone with the wind"; String t; t = s[3] + "one"; C. String s = "Gone with the wind"; String standard = s.toUpperCase(); D. String s = "home directory"; String t = s - "directory"; 答案B,D 分析 A:String 类型可以直接使用+进行连接运算。 B:String 是一种Object ,而不是简单的字符数组,不能使用下标运算符取其值的某个元 素,错误。 C:toUpperCase()方法是String 对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(String 类型)。 D:String 类型不能进行减(- )运算,错误。 4. point x 处的哪些声明是句法上合法的? (多选题) cIass Person { private int a; pubIic int change(int m){ return m; } } pubIic cIass Teacher extends Person { public int b;

Java 1.7的新特性

内容如下: 下面是Java 1.7里新出现的功能的一些用法例子: 对集合的支持 创建List / Set / Map 时写法更简单了。 1.Listlist = ["item"]; 2.String item = list[0]; 3.Setset = {"item"}; 4.Mapmap = {"key" : 1}; 5.int value = map["key"]; 对资源的自动回收管理 下面的代码看起来有点麻烦… 不是吗 1.BufferedReader br = new BufferedReader(new FileReader(p ath)); 2.try { 3. return br.readLine(); 4.} finally { 5. br.close(); 6.} 相信你一定会喜欢下面这种写法 1.try (BufferedReader br = new BufferedReader(new FileRea der(path)) { 2. return br.readLine(); 3.} 泛型实例创建过程中类型引用的简化当声明你的对象的接口是,你肯定是不想重复指明泛型类型 看看下面的这种写法多好呀… 1. 2.Maphello = new Map<>(); 在数字中使用下划线

1.int billion = 1_000_000_000; 我不知道这个能有多少用处 对字符串进行switch case 1.String availability = "available"; 2.switch(availability) { 3. case "available": 4. //code 5. break; 6. 7. case "unavailable": 8. //code 9. break; 10. 11. case "merged": 12. //code 13. 14. default: 15. //code 16. break; 17.} 注意:在把字符串传进Switch case之前,别忘了检查字符串是否为Null。 二进制符号 你可用作二进制字符前加上0b 来创建一个二进制类型。 1.int binary = 0b1001_1001; 一个catch里捕捉多个异常类型 1.try { 2.Here comes your code.... 3.} 4.catch(IOException | NullPointerException | ..........) { 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面向对象程序设计》 姓名: 一、判断题(15’) 1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。错 finalize()方法 2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。错方法赋值采用相应的方法 3.有的类定义时可以不定义构造函数,所以构造函数不是必需要写的。对4.类及其属性、方法可以同时有一个以上的修饰符来修饰。对 5.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点错6.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。错7.Final类中的属性和方法都必须被final修饰符修饰。错 8.最终类不能派生子类,最终方法不能被覆盖。对 9.子类要调用父类的方法,必须使用super关键字。错 10.一个Java类可以有多个父类。错 二、选择题(30’) 1、关于被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是(C) A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问 2、关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C)A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问 3、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(D)A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问 4、下列关于修饰符混用的说法,错误的是(D) A.abstract不能与final并列修饰同一个类 B. abstract类中不可以有private的成员 C.abstract方法必须在abstract类中

史上最全Java基础知识点归纳

史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资

深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。

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中,在包下定义一个类,要让包下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。 (选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; “”+new Person() toString() c) int a= 3+5 d) float f=5+; double float 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; (“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 已到文件尾,再读取抛出 7) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList List 有序可重复 b) HashSet Set 无序不可重复同一对象是重复 的 c) HashMap Map(key/value)重复定义:hashCode、 equals(业务) d) LinkedList List 8)给定如下java代码,编译运行之后,将会输出()。 public class Test{ public static void main(String args[]){ int a=5;

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)在Java中,在包com.db下定义一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。() a)protected b)private c)public d)friendly 2)在Java中,下列()语句不能通过编译。(选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 3)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; s.concat(“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 4) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList b) HashSet c) HashMap d) LinkedList 5)给定如下java代码,编译运行之后,将会输出()。 public class Test{ public staticvoid main(String args[]){ int a=5; System.out.println(a%2==1) ?(a+1) /2:a/2) ; } } (选择一项) a)1 b)2 c)2.5 d)3 6)以下Java语句中,String str = “123456789”;str =str.subString(1,3);执行后str中的值为。(选择一项) a) “23” b)“123”

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模拟试题(带答案)

判断题 1.Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 (√)2.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一 个各属性与赋值对象相同的新对象。(×) 3.所谓抽象类就是包含有抽象方法的类。(×) 4.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准 输出System.out和标准错误输出System.err。(√)5.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是 正确的。(×)6.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序 不一定终止运行。(√) 7.用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。 (×) 8.一个容器中可以混合使用多种布局策略。(×) 9.Java中,并非每个事件类都只对应一个事件。(√) 10.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节 码文件。(√) 11.Java Applet是由独立的解释器程序来运行的。(×) 12.Java的字符类型采用的是ASCII编码。(×) 13.Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。(√) 14.System类不能实例化,即不能创建System类的对象。(×) 15.用户自定义的图形界面元素也可以响应用户的动作,具有交互功能。(√)填空题 1 java 源程序编译命令是 javac 2 java 应用程序中有一个main()方法,它前面有三个修饰符是 public , static , void 3 java语言数据类型可分为两大类,一类称为基本数据类型 ,另一类称为引用数据类型 4 在转向语句中, continue 语句使得程序结束本次循环,回到循环的条件测试部分继续执行。 5设x为float型变量, y为 double型变量, a为 int型变量,已知 x=2.5f,a=7 ,y=4.22 则表达式x+a%3*(int)x%(int)y的值为 4.5 6设x为float型变量, y为 double型变量, a为 int型变量,b 为long 型变量,c为char 型,则表达式x+y*a/x+b/y+c 的值为 double 类型 7设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 120 。 int s = 0 ;

java基础测试题_含答案

姓名 一、选择题(每题2分,共30分) 1.请写出标识符的命名规则描述正确的是[多选]( ABCD ) A、由英文字母、数字、_和$组成,长度不限。 B、标识符的第一个字符不能是数字 C、标识符区分大小写。 D、标识符不能包含空格。 2. 下列属于正确标识符的选项有[多选](BDGH) A. int B. $_Count C. 3M D. Hello E. b-7 F. ms#d G. bool H. D9658 3、下列哪一个不属于java的基本类型( B ) A、int B、String C、float D、byte 4、下列那条语句能编译通过( A ) A、String String=”String”; B、float float=””; C、int int = 11; D、int i= ; 5、下列代码的执行结果是: ( D ) public class Test1{ public static void main(String args[]){ float t=; int q=5; }

} A、 40 B、 C、36 D、 6、int长度描述正确的是( A ) A、-2^31到2^31 - 1 B、-2^32到2^32 - 1 C、-2^7到2^7 - 1 D、-2^8到2^8 - 1 7、关于==和equals方法描述不正确的是( D ) A、==是运算符、equals是方法 B、==只比较对象,equals会先比较对象,如果不是一个对象,会对对象的值进行比较。 C、String a= "1"; String b= "1"; 输出结果为:true D、String a=new String("1");String b=new String("1"); 输出结果为:true 8、下列关于哪个不属于java的特性( D ) A、封装 B、继承 C、多态 D、重载 9、某一个子类要继承一个父类,要使用关键字( B ) A、import B、extends C、implements D、java 10、某一个子类要实现一个父接口,要使用关键字( C ) A、import B、extends C、implements D、java 11、以下关于接口和类的说法正确的是( C ) A、接口和类都可以实现多重继承 B、子类可以继承多个父类 C、子类可以实现多个接口 D、一个子类不能同时继承某一个父类和实现某一个接口 12、一个非抽象子类,如果要实现某个接口,则( A ) A、必须实现该接口中的所有抽象方法 B、可以实现部分抽象方法 C、可以不实现任何抽象方法

相关文档