当前位置:文档之家› java复习资料1

java复习资料1

java复习资料1
java复习资料1

1.面向对象和面向过程的语言

面向对象语言: java,c++,c#

核心:

封装

继承

多态

面向过程语言:C

面向过程的核心:

数据

数据结构

算法

2.类

1)什么是类:

类是一个抽象的概念,定义了某一些事物具有的共同的特征(包括静态和动态特征---状态和行为(属性和操作)---数据(变量)和方法)

2)如何定义类:

使用class关键词来定义JA V A类,一般一个类就单独的放在一个文件(后缀名为.java)

3)类里边包含数据和方法:

public class Circle {

//数据(属性)

int radiu;//半径----成员变量

int posX,posY;//圆中心坐标----成员变量

//方法(操作)

double getArea(){//获取面积----成员方法

return 3.14 * radiu * radiu ;

}

public static void changeV alue1(int i){ //成员方法(基本数据类型作为参数)

i +=5; //c = 8

}

public static void changeValue2(Circle c){//成员方法(引用型作为参数)

c.radiu = 100;

}

}

3.对象(实例)

1)使用new关键词产生对象(实例):

Circle c1 = new Circle(); //产生对象

c1.radiu = 2; //访问成员变量,给成员变量赋值

c1.posX = 1;

c1.posY = 1;

Circle c2 = new Circle();//产生对象

c2.radiu = 3;

c2.posX = 10;

c2.posY = 10;

2) 类是抽象的,不占用内存,而对象是具体的,占用存储空间.

对象类型(引用型)变量和基本数据类型的内存状态:(见图对象型内存空间分配)

3)引用类型和基本数据作为方法形参进行传值的不同:

Circle c = new Circle();

c.radiu = 2;

int i = 200;

changeValue1(i);

System.out.println(i);//输出为200---方法内改变基本数据类型的形参,不改变外边实参的值

changeVaule2(c)

System.out.println(c.radiu);//输出为100---方法内通过对象引用实际改变了对象的值

数组是引用类型,使用数组作为参数传递时,在方法内改变形参数组里边的值,实际上改变的就是实参的数组,如:

public class Test {

public static void changArray(int[] a3){//a3= a1

a3[1] = 4;

}

public static void main(String[] args) {

int[] a1={1,2,3};

changArray(a1);

//此时数组a1里的值为{1,4,3}

System.out.println(a1[0]+a1[1]+a1[2]);//8

}

}

4)对象的比较”相等“:

在比较对象是否“相等”时,要清楚想具体比较的什么是一样?

如果用==去比较对象,比较的是“引用“(是否是同一对象即为同一块内存空间)

Circle c1 = new Circle();

Circle c2 = new Circle();

if(c1 == c2) //结果为false,因为c1,c2是不同的对象

System.out.println("true");

else

System.out.println("false");

Circle c3 = c1;

if(c3 == c1) //结果为true,因为c1,c3是指向同一对象

System.out.println("true");

else

System.out.println("false");

if(c3 == c2) //结果为false

System.out.println("true");

else

System.out.println("false");

如果我们赋予”相等“这样的一个含义:如果圆半径一样,则认为这两个圆”相等“,这样赋予了特殊含义的”相等“,

在比较时不能使用”==“去比较,需要我们自定义方法去实现这个比较。

按照惯例这种比较通常是改写equals方法(留待学继承的时候再改写,如果不改写equals,从Object继承下来的equals效果同==)

5)对象型的数组:

可以定义一个对象型的数组来存放一组同一类型的对象:

Circle arr[];

arr = new Circle[5];

for(int i = 0; i < arr.length; i++){

arr[i] = new Circle();//产生Circle对象放到数组下标为i的位置}

//访问数组下标为2这个位置的Circle对象

arr[2].radiu = 100;

arr[2].posX = 100;

arr[2].posY = 100;

注意对象型数组内存的状态(见图“对象型数组内存”)

4.类的数据

成员变量:

定义的位置:类的里边,方法的外边。

访问方式:

作用范围:类本身里边都可以访问。类外边受访问控制符的影响。

成员变量与局部变量可以同名,如果使用这个变量时,

如果是在这个局部变量的作用范围内,则这个变量是局部变量。

如果能定义局部。。。。

成员变量会自动有默认初始值:

数值类型————》0或0.0

布尔类型————》false

引用类型————》null

public class StartApp {

int i;

boolean flag;

double d;

Rect rect;

public static void main(String[] args) {

new StartApp().func();

}

public void func(){

System.out.println(i);//0

System.out.println(flag);

System.out.println(d);

System.out.println(rect);

rect.id = 100;

rect.length = 10;

rect.width = 20;

System.out.println(rect.getArea());

}

}

5.类的方法

1)一般方法(成员方法)

a.从作用上讲是完成某个操作(功能),实现代码的重用;

b.方法只能定义在类中,不能定义在类外;

c.定义方法时,注意定义格式:

修饰符返回值类型方法名(形参){方法体};

其中:返回值类型(可为void,基本数据类型,引用型),方法名(见名知意,驼峰标识)是必须要有的。

形参可以没有,可以有(没有或一个或多个),注意形参为基本数据类型和引用型传值的不同。

方法体即为方法要完成操作的具体代码实现

d.方法的调用

在类外,通过具体对象来调用。

在类本身其他方法里边直接调用

在类本身方法里调用方法本身(递归法)

调用时,实参和形参相对于进行传值

理解调用方式的代码执行次序。

f.方法的覆盖:同一个类中,定义多个方法,只是参数不一样,其他均一样,则形成覆盖

参数的不一样可以是参数个数不一样,类型不一样,次序不一样。

在方法的调用时,根据实参的个数和类型来决定具体调用哪个方法

public class Circle {

//数据--属性

int radiu;//半径

String color;//颜色

//方法--操作

double getArea(){

return 3.14 * radiu * radiu ; //类的方法里去访问成员变量

}

double getArea(int i,double d){

return 1.0;

}

double getArea(double d,int i){

return 1.0;

}

void setColor(String color1){ //返回类型

color = color1;

}

}

2)构造方法

定义:没有返回值,方法名必须和类名一样

调用:不像一般方法那样去调用。而是在创建对象的时候,自动调用

作用:一般都是做初始化

构造方法可以定义多个(类似方法的覆盖):

构造方法是否必须:

只要能创建对象,一定有构造方法。

如果我们没有定义任何构造方法,系统会自动的帮添加一个无参的构造方法。

如果我们自定义了任何带参数的构造方法,系统就不再自动添加无参的构造方法

6. this

当前对象(对象本身)

构造方法相互调用的时候,不能直接写构造方法的名,要用this;

this调用构造方法一定放在第一句。

构造方法不能在本类中的成员方法里直接调用

public class Circle {

//数据--属性

int radiu;//半径

int posX;

int posY;//中心坐标

String color;

//构造方法

Circle(){//无参构造方法

System.out.println("Circle().......");

}

Circle(int radiu ){

this();

this.radiu = radiu;

}

Circle(int radiu, int posX, int posY ){//3,10,10

//this.radiu = radiu;

this(radiu);

this.posX = posX;

this.posY = posY;

System.out.println("Circle(int r, int x, int y ).......");

}

//成员方法--操作

double getArea(){

this.setColor("red");

return 3.14 *this.radiu * this.radiu ; //类的方法里去访问成员变量}

void setColor(String color1){ //返回类型

color = color1;

}

}

public class Test {

public static void main(String[] args){

Circle c1 = new Circle(2,1,1); // 类的外边访问成员变量

Circle c2 = new Circle(3,10,10);

double area1 = c1.getArea();

double area2 = c2.getArea();

System.out.println("area1="+ area1);

System.out.println("area2="+ area2);

}

}

1.设计一个矩形类和矩形管理类:

矩形类:

1)每个矩形可以有编号和边长

2)可以获取该矩形的周长和面积。

矩形管理类:

1)管理生成的n干个矩形(编号从1--n,边长随机产生10-20米之间)

2)可以获取某个编号的矩形的周长或面积。

3)也可以获取所有矩形周长或面积的和。

4)也可以比较两个矩形的面积是否相等

public class Rect {//矩形类

int id;//编号

int length;//长

int width;//宽

Rect(int id){

this.id = id;

length = 0;

width = 0;

}

Rect(int id, int length, int width){

this.id = id;

this.length = length;

this.width = width;

}

void setId(int id){//设置编号

this.id = id;

}

void setLength(int length){//设置length

this.length = length;

}

void setWidth(int width){//设置length

this.width = width;

}

int getArea(){

return length * width;

}

int getPerimeter(){

return (length+width)*2;

}

}

public class RectManager {

int n;

Rect rectArray[];

RectManager(int n){

this.n = n;

rectArray = new Rect[n];

for(int i = 1; i <= n; i++){

int length = 10 +(int)(Math.random()*10);

int width = 10 +(int)(Math.random()*10);

Rect rect = new Rect(i,length,width);

rectArray[i-1] = rect;

}

}

int getArea(int id){

return rectArray[id-1].getArea();

}

int getAllArea(){

int area = 0;

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

area +=rectArray[i].getArea();

}

return area;

}

}

public class StartApp {

public static void main(String[] args) {

RectManager rectManger = new RectManager(10);

int area = rectManger.getArea(3);

System.out.println(area);

int allArea = rectManger.getAllArea();

System.out.println(allArea);

}

}

2.猴子选大王

一群猴子围成一个圈,从某一只猴子开始顺时针数,数到第三只猴子的时候,这只猴子退出猴圈.

之后接着从这只猴子的下一只猴子开始这样数,数到第三只猴子退出,一直这样数直到最后剩下的

猴子为大王.大王是谁?

3.把大象装进冰箱

封装性:

类设计原则:高内聚,低耦合

封装的含义

类的设计者把类设计为一个黑匣子,使用者只能调用类中定义的公共方法

(外部接口),而看不到方法的实施细节,不能对类的数据直接操作。

封装的目的:

隐藏类的实施细节,

保护数据

增加代码的可维护性

通过访问控制符实现封装

包:

1)作用:避免类的重名,管理类

2) 包的命名:一般都是域名倒过来,如https://www.doczj.com/doc/c05411840.html,.gxut

https://www.doczj.com/doc/c05411840.html,.gxut.sm.Circle 包名+类名== 系统识别的“类名”

3)把类打包:package cn.gxut.sm;

4)打包后类的使用:

在本包的类里边使用这个类,直接使用类名即可。

在其他包的类里使用这个类,需要导入,导入方法两种:

(1)https://www.doczj.com/doc/c05411840.html,.gxut.sm.Circle c = new https://www.doczj.com/doc/c05411840.html,.gxut.sm.Circle();

(2)一般先import导入:

import https://www.doczj.com/doc/c05411840.html,.gxut.sm.*;//导入这个包里所有的类

或import https://www.doczj.com/doc/c05411840.html,.gxut.sm.Circle; //具体导入使用的类

5)将包生成.jar的格式(类在提供给外边使用时,一般生成jar格式)

6)sun公司提供的常见包和默认导入包(https://www.doczj.com/doc/c05411840.html,ng)

https://www.doczj.com/doc/c05411840.html,ng

java.util

java.sql

https://www.doczj.com/doc/c05411840.html,

https://www.doczj.com/doc/c05411840.html,ng包中的类不手工导入,系统会自动导入

访问控制符(访问权限)

public(公有)、默认、protected (保护) 、private (私有)

Private: 只能当前类自身可以访问。

默认: 无访问修饰符的成员,只有相同包中的代码可以访问。

Protected: 子类、同一包中的类可以访问。

Public: 所有其它类都可以访问。

1)可以修饰成员方法和成员变量

修饰成员方法:

修饰成员变量:

为了保护数据,一般成员变量都声明为private,如需要,则专门为提供设置器和获

取器

(即通常为私有(private)成员变量提供Getter和Setter方法。)package https://www.doczj.com/doc/c05411840.html,.gxut.sm;

public class Circle {

//数据--属性

private int radiu;//半径

private int posX;

private int posY;//中心坐标

private String color;

public void setColor(String color){//设置器--设置变量的值if(color.equals("red")||color.equals("black"))

this.color = color;

}

public String getColor(){//获取器--获取变量的值

return color;

}

//分别用这四种访问控制符修饰的方法

private void func1(){};

void func2(){};

protected void func3(){};

public void func4(){}

void func(){

this.setColor("red");

this.func1();

this.func2();

this.func3();

this.func4();

}

}

访问控制是在类级别而不是对象级别:

public class Foo{

private boolean x;

public void m(){

Foo foo = new Foo();

//因为对象foo在Foo类内使用,所以可以访问私有成员x

boolean b = foo.x //ok

}

}

public class Test{

public static void main(String[] args){

Foo foo = new Foo();

//因为对象foo在Foo类外使用,所以不可以访问foo的私有成员x

boolean b = foo.x //error

}

}

2)访问控制符修饰构造方法

(访问控制效果同修饰成员变量和方法)

3)访问控制符可以修饰static 静态变量,方法

(访问控制效果同修饰成员变量和方法)

4)访问控制符修饰类

如果使用public修饰的类,那这个类所在的文件必须以这个类的名字来命名。如果java源文件里边无public的类,则文件名可以与类名不一致。

一个java源文件最多只能有一个类是用public来修饰的。

static 静态

修饰方法和变量--》静态方法和变量(类变量和类方法)

内存中的状态:

修饰变量:变量放在内存data区,这个类的所有对象共用这个变量。

引用方式:

可以通过对象名来访问静态变量和方法(不推荐使用)

一般使用类名来引用静态变量和方法

成员与static方法的相互访问:

static方法里边不能访问成员变量(方法),只能访问静态的数据和方法

成员方法里边可以访问static 数据和方法

public class Circle {

static int count = 1;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

Circle.count = Circle.count+ 1;

System.out.println(Circle.count);//2

Circle.count = Circle.count + 1; //一般使用类名来引用静态变量(方法)

System.out.println(Circle.count);//3

Circle c1 = new Circle();

c1.count = c1.count + 1; //使用对象来引用静态变量(方法),不推荐使用

Circle c2 = new Circle();

c2.count = c2.count + 2; //使用对象来引用静态变量(方法),不推荐使用

System.out.println(Circle.count);

}

package https://www.doczj.com/doc/c05411840.html,.gxut.sm;

public class Circle {

//数据--属性

public int radiu;//半径

private int posX;

private int posY;//中心坐标

private String color;

static int count = 1;

static int getCount(){

radiu = radiu +1 ; //static方法里边不能访问成员变量(方法),只能访问静态的数据和方法

setColor("red");

return count;

}

static void setCount(int i){

this.count = i; //error 只有成员变量和方法才能用this引用

count = i;

}

private void func1(){//成员方法里边可以访问static 数据和方法

count = count +1;

getCount();

};

}

应用例子:

1.统计产生了多少个实例

public class Circle {

static int num = 0;

Circle(){

num++;

}

public static int getNum(){

return num;

}

}

public class Rect {

public void fun(){

new Circle();

new Circle();

}

}

public class Test {

public static void main(String[] args) {

// TODO Auto-generated method stub

Circle c = new Circle();

Circle c1 = new Circle();

new Rect().fun();

new Rect().fun();

System.out.println("目前产生circle 实例个数:"+Circle.getNum());

}

}

2.运行过程中只能保证系统中有一个实例(单例模式)

package https://www.doczj.com/doc/c05411840.html,.gxut.sm;

public class Circle {

private static Circle circle = new Circle();//饿汉式

private Circle(){

}

public static Circle getInstance(){

// if(circle == null){ //第一次调用这个方法的时候产生这个对象,并保存

// circle = new Circle(); //懒汉式

// }

return circle;

}

public void getInfo(){

System.out.println(this);

}

}

public class Test {

public static void main(String[] args) {

// TODO Auto-generated method stub

Circle c = new Circle();//错误,Circle的无参构造方式为使用,在类外无法再new出对象Circle c1 = Circle.getInstance();//通过类方法可以获取Circle的一个实例

c1.getInfo();//使用这个实例

Circle c2 = Circle.getInstance();

c2.getInfo();

}

}

JAVA第一阶段测试题及答案

初级部分阶段测试卷 选择题 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代码如下所示,在横线处新增下列()方法,是对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){ } 3) 下面Java代码的运行结果是()。 class Penguin { private String name=null; // 名字 private int health=0; // 健康值 private String sex=null; // 性别 public void Penguin() { health = 10; sex = "雄"; System.out.println("执行构造方法。"); } public void print() { System.out.println("企鹅的名字是" + name + ",健康值是" + health + ",性别是" + sex+ "。"); } public static void main(String[] args) { Penguin pgn = new Penguin(); pgn.print(); } } A. 企鹅的名字是null,健康值是10,性别是雄。 B. 执行构造方法。 企鹅的名字是null,健康值是0,性别是null。

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 B.java.awt C.https://www.doczj.com/doc/c05411840.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.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 答案:A 详解:

java笔试题1

following program. public class Base{ private void test() { System.out.println(6 + 6 + "(Result)"); } static public void main(String[] a) { new Base().test(); } } Select most appropriate answer. A 66(Result) B 12(Result) C Runtime Error.Incompatible type for +. Can't convert an int to a string. D Compilation Error.Incompatible type for +. Can't add a string to an int. 解答:B 考点:字符串与基本数据的链接 1.如果第一个是字符串那么后续都按字符串进行处理 2.如果第一个到第n个是基本数据,第n+1个是字符串,那么前n个数据都按加法计算,再与字符串链接

following program. The symbol ’?’ means space. 1:public class Base{ 2: 3: private void test() { 4: 5: String aStr = "? One? "; 6: String bStr = aStr; 7: aStr.toUpperCase(); 8: aStr.trim(); 9: System.out.println("[" + aStr + "," + bStr + "]"); 7: } 8: 9: static public void main(String[] a) { 10: new Base().test(); 11: } 12: } Select most appropriate answer. A [ONE,? One? ] B [? One? ,One] C [ONE,One] D [ONE,ONE]

JAVA考试试题(一)

Java考试试题(一) 一、选择题(25×2=50): 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在括号内 1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为()。 A..java B..class C..html D..exe 2、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的()方法来完成一些画图操作。 A.start() B.stop() C.init() D.paint() 3、不允许作为类及类成员的访问控制符的是()。 A.public B.private C.static D.protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。 A.static void method() B.public void method() C.final void method() D.abstract void method() 5、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的()。 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[]) 6、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为()。 A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 7、在Java中,关键字()使类不能派生出子类。 A.final B.public C.private D.protected 8、以下标识符中哪项是不合法的() A、BigMeaninglessName B、myint C、1st D、ab$1 9、以下代码段执行后的输出结果为() int x=3;int y=10; System.out.println(y%x); A、0B、1C、2D、3 10、下列选项中,用于定义接口的关键字是()。 A、interface B、implements C、import D、protected 11、下列选项中,用于在定义类时声明父类名的关键字是()。 A、return B、interface C、class D、extends

Java Web 复习题集(1)期末考试题库含答案

Java Web 复习题集(1) 一、单项选择题(请将所选择的答案号码填写在每小题中的圆括号内) 1、下列()不属于JSP动作指令标记。 A.B. C.D. 2、JSP的()指令允许页面使用者自定义标记库。 A.include指令B.taglib指令 C.lib指令D.plugin指令 3、下面变量声明在()范围内有效。 <%! Date dateTime; int countNum; %> A. 从定义开始处有效,客户之间不共享 B.在整个页面内有效,客户之间不共享 C.在整个页面内有效,被多个客户共享 D.从定义开始处有效,被多个客户共享 4、include指令用于在JSP页面静态插入一个文件,插入文件可以是JSP页面、HTML页面、文本文件或一段Java代码,但必须保证插入后形成的文件是()。 A.一个完整的HTML文件B.一个完整的JSP文件 C.一个完整的TXT文件D.一个完整的Java源文件 5、JSP页面可以在“<%=”和“%>”标记之间放置Java表达式,直接输出Java表达式的值。组 成“<%=”>”标记的各字符之间()。 A.可以有空格B.不可以有空格 C.必须有空格D.不确定 6、关于page指令的一些属性,说法错误的是()。 A.contentType属性用于设置传回网页的文件格式和编码方式 B.pageEncoding属性用于指定本页面编码的字符集 C.在JSP标准语法中,如果contentType属性存在,则由其决定JSP页面的字符编码方式 D.JSP页面的默认字符编码方式为ISO8859-1 7、使用response对象进行重定向时,使用的方法是()。 A.getAttribute() B.setContentType() C.sendRedirect()D.setAttribute() 8、不能在不同用户之间共享数据的方法是()。 A.通过Cookie B.利用文件系统 C.利用数据库D.通过ServletContext对象 9、在JSP中作用域由小到大的组合是() A.request page session application B.page request session application C.pageContext request session application D.pageScope request sessionScope applicationScope 10、以下关于session对象说法错误的是()。 A.session对象是用户首次访问服务器时由服务器自动为其创建的 B.在JSP中可以通过pageContext对象获得session对象

Java考试题1

Part 1: Single-choice questions(15 points) 1.The constructor of a class that adheres to the Singleton design pattern must have _____ visibility. A. private B. protected C. package D. public 2.Which method is used to define the execution body of a thread? A. start() B. init() C. run() D. main() 3.Which modifier should be applied to a method for the lock of the object this to be obtained prior to executing any of the method body? A. final B. static C. abstract D. protected E. synchronized 4. A Button is positioned in a Frame. Its size is not affected when the Frame is resized. Which layout manager should be used? A. FlowLayout B. North and South of BorderLayout C. East and West of BorderLayout D. GridLayout 5.Given the following code: 1) class Example{ 2) String str; 3) public Example(){ 4) str= "example";

Java SE考试题1

Java SE阶段测试 一:基本语法 1.下列哪些数据类型不属于基本数据类型:(多选) A. Boolean B. int C. String D. Short E. char 2.下列哪些写法是错误的: A. boolean b = (boolean)3; B. int a = (int)true; C. int a = false; D. long b = (long)3.14 3.写出下列程序的输出结果: int a = 10, b = 4; System.out.println(a / b); System.out.println(a % b); System.out.println(a = b); System.out.println(a++); 4.请写代码实现将字符串变量s转换为int型,将int型变量i转换为字符串型。 5.设计一个方法,传入整形数字,不用取余运算符“%”判断该数字是奇数还是偶数。 6.写出下列程序的输出结果: int a = Integer.MAX_VALUE, b = Integer.MIN_VALUE; System.out.println(a + b); System.out.println(a>>28); System.out.println(b>>28); System.out.println(b>>>28); byte c = (byte) 128; System.out.println(c); 7.写出下列程序的输出结果: public class Test { public static void main(String[] args) { int a = test(3); System.out.println(a); } private static int test(int i) { int r = 0; try { if (i > 3) return r = i; throw new NumberFormatException(); } catch (NumberFormatException e) { r = 1; return r; } catch (RuntimeException e) {

【黑马基础班考试题】1.Java基础知识测试_答案

考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下面说法正确的是() A. JVM就是Java虚拟机,包含java核心类库// JRE: JVM+Java library。 B. JRE就是java运行环境,包含java程序编译运行的工具环境// JDK:JRE+Tools C. JDK就是java开发环境,javac是其中的一个工具 D. 功能范围:JDK > JVM > JRE 2.下面的说法正确的是( ) A. Java 语言是面向对象的、解释执行的网络编程语言。 B. Java 语言具有可移植性,是与平台无关的编程语言。 C. Java 语言可对内存垃圾自动收集。 D. Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。 3.给定java代码,如下: public byte count(byte b1, byte b2){ return ____; } 要使这段代码能够编译成功,横线处可以填入 A. (byte)(b1-b2) //返回值类型为byte,要求选项结果为byte B. b1-b2 C. (byte)b1+b2

D. (byte)b1/b2 4.关于类的命名,正确说法是() A. 可以由数字和英文拉丁字母组成,且可以任意排序//数字不能开头 B. 命名要做到见名知意 C. 如果是由多个单词组成,每个单词首字母大写 D. 可以是Java已经定义过的关键字//囧 5.关于main方法说法错误的是() A.main方法是java程序执行的入口 B.main方法的方法体至少要有一行代码//可以没有代码 C.main必须定义在一个类中 D. main方法的定义格式为:public static void main(String[] args){} 6.类中某方法定义如下: double fun(int a,int b){ return a*1.0/b; } 同一类内其它方法调用该方法的正确方式是: A. double a = fun(1,2); B. double a = fun(1.0,2.0); C. int x = fun(1,2); D. int x = fun(1.0,2.0); 7.给定java代码,如下,编译运行,结果是() public static void main(String[] args){ boolean flag; System.out.println(“flag”+flag);//局部变量需要先初始化再使用 } A. 编译错误 B. 编译通过,单出现运行时错误 C. 正常运行,输出flag=false D. 正常运行,输出flag= 8.下面哪个关键字可以定义一个类() A. interface B. class //查看下面解释 C. extends D. implements 在Oracle官网java英文原版教程,链接地址: https://https://www.doczj.com/doc/c05411840.html,/javase/tutorial/java/IandI/createinterface.html上有如下解释:In the Java programming language, an interface is a reference type,similar to a class, that can contain only constants,

Java试题1(带答案)

姓名电话 第一部分:java基础(100分) 一、单项选择题(每题3分,共30分): 1、类实现一个接口使用下面那个关键字( ) A A、implements B、implement C、extends D、extend 2、下列哪一项不属于java数据类型()C A、short B、float C、String D、byte 3、下列哪些不属于java关键字()A A、goto B、native C、interface D、class 4、能构成多分支的语句是() C A 、for语句 B、while语句 C、switch 语句 D、do-while语句 5、Java中,以下( )接口以键_值对的方式存储对象。B A、java.util.Collection B、java.util.Map C、java.util.List D、java.util.Set 6、在Java中,( )类提供定位本地文件系统,对文件或目录及其属性进行基本操作。 D A、FileInputStream B、FileReader C、FileWriter

D、File 7、在Java中,关于HashMap类的描述,以下描述错误的是( )。 B A、HashMap使用键/值得形式保存数据 B、HashMap 能够保证其中元素的顺序 C、HashMap允许将null用作键 D、HashMap允许将null用作值 8、下列运算符合法的是()。 A A、&& B、< > C、if D、:= 9、下列哪个是Runnable接口的方法?()A A、run(); B、start(); C、yield(); D、stop(); 10、这个方法的返回值是()。 C public int count() { try{ return 5/0; } catch(Exception e){ return 2*3; } finally { return 3; } } A.0 B.6 C.3 D.程序错误 二、多选题(每题6分,共30分) 11、String s = null;根据下面的代码, 会抛出NullPointerException异常的有()。A,C

Java程序设计试题及答案(1)

Java程序设计试题及答案(一) 一、判断题。判断下列各题是否正确,若正确,在()内打“√”,否则打“×”。 1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√ 2、Java语言的源程序不是编译型的,而是编译解释型的。√ 3、Java语言使用的是Unicode字符集,每个字符在内存中占8位。× 4、Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。√ 6、一个类可以实现多个接口,接口可以实现“多重继承”。√ 7、实现接口的类不能是抽象类。× 二、不定项选择题。 1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。 A、java B、class C、html D、exe 2、main方法是Java Application程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。 A、public static void main() B、public static void main(String args[]) C、public static int main(String[] arg) D、public void main(String arg[]) 3、关于下面代码的说法(C)是正确的? public class Example{ public static void main(String[] args){ int[] arr= new int[10]; System.out.println(arr[1]); } } A、编译时产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空(null) 4、不正确的表达式是(AB)。 A、float a=1.0d; B、Double a=new Double(1.0) C、byte a = (byte)340; D、Byte a = 120;

java考试题

1.试题1java语言提供处理流类型的包是[3分] A. java.sql B. java.util C. java.math D. java.io 考生答案:D 2.试题2题目代码的功能为: 在d:创建一个文件“test.txt”,并向文件输入“HelloWorld”,然后删除文件。 public static void main(String[] args) { File file = new File("d:\\", "file.txt"); try { <填入代码> }catch (Exception e) { e.printStackTrace();} } [3分] A. BufferedWriter bw = new BufferedWriter(new FileWriter(file)); bw.write("HelloWorld");bw.close(); if (file.exists()) {file.delete(); } B. BufferedWriter bw = new BufferedWriter(new FileWriter(file));bw.w rite("HelloWorld");bw.close(); if (file.exists()) { file.deleteFile(); } C. BufferedWriter bw = new BufferedWriter(file); bw.write("HelloWorld");bw.close(); if (file.exists()) { file.delete(); } D. BufferedWriter bw = new BufferedWriter(file); bw.write("HelloWorld"); bw.close();if (file.exists()) { file.deleteFile(); } 考生答案:A 3.试题3下列代码实现的功能是: FileOutputStream fos = new FileOutputStream("system.txt",true); PrintStream ps = new PrintStream(fos); System.setOut(ps); System.out.println("writer"); FileOutputStream fos = new FileOu

JAVA期末考试试卷及答案[1]

《JA V A语言程序设计》期末考试模拟试题 ( 适用对象:06级计算机类专业)2008年6月 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题(每空格1分,共20分) 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、 编译生成字节码和解释运行字节码。 2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet 类的子类并且存储该源程序文件的文件名为MyApplet 。 3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译 器javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为. class 的字节码文件。 4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占 用 2 字节内存空间。 5、设x = 2 ,则表达式( x + + )/3 的值是 1 。 6、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true 和false 。 7、抽象(abstract)方法方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final)方法方法是不能被当前类的子类重新定义的方法。 8、创建一个名为MyPackage 的包的语句是package MyPackag , 该语句应该放在程序的位置为:应该在程序第一句。 9、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是120 。 int s = 0 ; for ( int i = 0 ; i < MyIntArray.length ; i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] ; System.out.println( s );

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

分析十六进制数以0x开头,long型数以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,而不是简单的字符数组,不能使用下标运算符取其值的某

Java-笔试题(1)答案

班级:_______________ 学号:______________ 姓名:___________ Java 笔试题 (可多选) 1. 下面哪些是Thread类的方法(ABD) A start() B run() C exit() D getPriority() 2. 下面关于https://www.doczj.com/doc/c05411840.html,ng.Exception类的说法正确的是(A) A 继承自Throwable B Serialable C 该类实现了Throwable 接口 D 该类是一个公共类 3. 下面程序的运行结果是(false ) String str1 = "hello"; String str2 = "he" + new String("llo"); System.err.println(str1 == str2); 4. 下列说法正确的有(C) A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名

C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 5. 指针在任何情况下都可进行>, <, >=, <=, ==运算?(true ) 6. 下面程序的运行结果:(B) 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"); } A pingpong B pongping

JAVA试题

1. 要从文件"file.dat"中读出第10个字节到变量c中,下列哪个方法适合?(D) A、FileInputStream in=new FileInputStream("file.dat"); in.skip(9); int c=in.read(); B、FileInputStream in=new FileInputStream("file.dat"); in.skip(10); int c=in.read(); C、FileInputStream in=new FileInputStream("file.dat"); int c=in.read(); D、RandomAccessFile in=new RandomAccessFile("file.dat"); in.skip(9); int c=in.readByte(); 2. Java编程所必须的默认引用包为( B ) A. java.sys包 B. https://www.doczj.com/doc/c05411840.html,ng包 C. java.util包 D.以上都不是 3. 下面语句在编译时不会出现警告或错误的是( C ) A. float f=3.14; B. char c=”c”; C. Boolean b=null; D. int i=10.0; 4. 下面不是合法标识符的是( A ) A. 2ofUS B. giveMes C. whataQuiz D. $d2000_ 5. 下面哪一个是合法的数组声明和构造语句( C ) A. int[] ages = [100]; B. int ages = new int[100]; C. int[] ages = new int[100]; D. int() ages = new int(100); 6. 下面说法不正确的是( C ) A. 一个子类的对象可以接收父类对象能接收的消息; B. 当子类对象和父类对象能接收同样的消息时,它们针对消息产生的行为可能不同; C. 父类比它的子类的方法更多; D. 子类在构造函数中可以使用super( )来调用父类的构造函数; 7. 给出下面代码段, 哪行将引起一个编译时错误?( D ) 1) public class Test { 2) int n = 0; 3) int m = 0; 4) public Test(int a) { m=a; } 5) public static void main(String arg[]) { 6) Test t1,t2; 7) int j,k; 8) j=3; k=5; 9) t1=new Test(); 10) t2=new Test(k); 11) }

Java基础试题及其答案 (1)

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; “”+new Person() toString() c) int a= 3+5 d) float f=5+5.5; 5.5 double 5.5f float 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; s.concat(“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;

1JavaSE考试题参考答案

JavaSE考试题(时间150分钟) 一.选择题(75分) 1.在Java中负责对字节码解释执行的是( B ) A. 垃圾回收器 B. 虚拟机 C. 编译器 D. 多线程机制 2.BufferedReader的父类是( B ) A.FileReader B.Reader C.PipedReader D.InputStreamReader 3.在读字符文件Post.dat时,使用该文件作为参数的类( A ) A. BufferedReader B. DataInputStream C. DataOutputStream D. FileInputStream 4.下列不是InputStream子类的是( C ) A. FileInputStream B. ObjectInputStream C. CharInputStream D. ZipInputStream 5.下列方法中可以用来创建一个新线程的是( D ) A. 实现https://www.doczj.com/doc/c05411840.html,ng.Runnable接口并重写start()方法 B. 实现https://www.doczj.com/doc/c05411840.html,ng.Runnable接口并重写run()方法 C. 继承https://www.doczj.com/doc/c05411840.html,ng.Thread类并重写start()方法 D. 继承https://www.doczj.com/doc/c05411840.html,ng.Thread类并重写run()方法 6.当启动Applet程序时,首先调用的方法是( B ) A. stop() B. init() C. start() D. destroy() 7.序列化一个类时,如果要隐藏某个成员,使之在反序列化时不能看到搞成员的真实数据,应当使用的关键字是( C ) A. hiddern B. private C. transient D. destroy 8.将键值对(key--value)保存到映射(Map)对象中的方法是( B )。 A.add(Object key,Object value) B.put(Object key,Object value)

Java笔试题(一)答案

Java笔试题 面试岗位:高级中级初级笔试时间:姓名: 一、jQuery 1、Java如果需要匹配包含文本的元素,用下面哪种来实现?(单选) A、text() B、contains() C、input() D、attr(name) 考点:jquery的选择器(B) 2、在jquey中,如果想要从DOM中删除所有匹配的元素,下面哪一个是正确的?(单选) A、delete() B、empty() C、remove() D、removeAll() 考点:jquery的文档处理(C) 3、为每一个指定元素的指定事件(像click)绑定一个事件处理器函数,下面哪个是用来实现该功能的?(单选) A、trigger (type) B、bind(type) C、one(type) D、bind 考点:jquery的事件操作(B) 4、当一个文本框中的内容被选中时,想要执行指定的方法时,可以使用下面哪个事件来实现?(单选) A、click(fn) B、change(fn) C、select(fn) D、bind(fn) 考点:jquery的事件处理(C) 5、在jquery中,想让一个元素隐藏,用________实现,显示隐藏的元素用_________实现。 考点:jquery的页面效果(hide(),show())

6、在jquery中想要实现通过远程http get请求载入信息功能的是下面的哪一下事件?(单选) A、$.ajax() B、load(url) C、$.get(url) D、$. getScript(url) 考点:jquery的ajax (C) 7、在一个表单中,如果想要给输入框添加一个输入验证,可以用下面的哪个事件实现?(单选) A、hover(over ,out) B、keypress(fn) C、change() D、change(fn) 考点:jquery的事件处理(D) 8、如果想在一个指定的元素后添加内容,下面哪个是实现该功能的?(单选) A、append(content) B、appendTo(content) C、insertAfter(content) D、after(content) 考点:jquery的文档处理(D) 二、Java 1、JAVA的基本数据类型有哪些?String 是不是基本数据类型? 数值型:——整型:byte(字节型)、short(短整型)、int(整型)、long(长整型)——浮点型:float(单精度浮点数)、double(双精度浮点数)字符型:char布尔类型:boolean String不是基本数据类型,它属于引用数据类型当中的class类型。 2、数组有没有length()这个方法? String有没有length()这个方法? 数组没有length()这个方法,只有length的属性。String有有length()这个方法。 3、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

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