Java试题A

时间:2019-05-14 19:30:32下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《Java试题A》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《Java试题A》。

第一篇:Java试题A

Java测试题(A卷)

一、单选题(2分/题*20题=40分)

1.下列javaDoc注释正确的是()

A、/*我爱北京天安门*/ B、//我爱北京天安门*/ C、/**我爱北京天安门*/ D、/*我爱北京天安门**/ 2.下列说法正确的是()

A、JAVA程序的main方法必须写在类里面 B、JAVA程序中可以有多个main方法 C、JAVA程序中类名必须与文件名一样

D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来 3.下列语句执行后,变量a、c的值分别是()。

int x=182;int a,c;c=x/100;a=x%10;A、1,2

B、2,1 C、1.82, 2 D、100,82 4.下面哪个表达式可用得到x和y的最大值()?

A、x>y?y:x B、xy?(x+y):(x-y)D、x==y?y:x;5.以下代码的执行结果是:()

a = 6;System.out.print(a);System.out.print(a++);System.out.print(a);A、666 B、667

C、677 D、676 6.下列输出结果是()

int a = 2 while(a < 5){ switch(a){ case 0: case 3 : a = a + 2;case 1 : case 2 : a = a + 3;default : a = a + 5;} } System.out.print(a)A、5 B、7

C、10

D、1

27.下面是func(int m,int n)方法的定义,方法调用func(1,4)的返回结果是()。

int func(int m,int n){

int sum=0;for(int i=1;i<=4;i+=2){ sum+=i;} return sum;} A、1

B、4

C、5

D、10

8.以下定义一维数组的语句中,正确的是()

A、int a[5]

B、int a[] = new.int[5];C、int a[];D、int a[] = {1,2,3,4,5};

9.分析选项中关于Java中this关键字的说法正确的是()

A、this关键字是在对象内部指代自身的引用 B、this关键字可以在类中的任何位置使用

C、this关键字和类关联,而不是和特定的对象关联 D、同一个类的不同对象共用一个this 10.在Java中,关于构造方法,下列说法错误的是()

A、构造方法的名称必须与类名相同 B、构造方法可以带参数 C、构造方法不可以重载 D、构造方法绝对不能有返回值

11.假设类A有构造方法A(int a),则在类A的其它构造方法中调用该构造方法的语句为()

A、A(x)

B、this.A(x)C、this(x)//本类的构造方法都是使用this关键字来调用

法使用的是super 12.下列关于抽象类的说法正确的是()

A、某个抽象类的父类是抽象的,则这个子类必须重载父类的所有抽象方法 B、抽象类中必须存在抽象方法 C、绝对不能用抽象类去创建对象

D、抽象类可以实现接口,并且可以只实现接口的部分接口方法 13.下面代码段

静态的变量只有一个值,常驻内存存在的 class HasStatic{

} 输出的结果是: private static int x = 101;public static void main(String[] args){

} HasStatic hs1 = new HasStatic();hs1.x++;102 HasStatic hs2 = new HasStatic();hs2.x++;102 hs1 = new HasStatic();hs1.x++;103 HasStatic.x--;System.out.println(hs1.x + hs2.x);

D、super(x)调用父类的构造方

A、103102 B、204

C、205

D、206

14.下面()不是String类提供的合法的方法。

A、equals(String)//判断是否内容相同 B、trim()//去空格的函数 C、append()D、indexOf()//对索引进行处理

15.在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列()选项中的方法是LinkedList类有而ArrayList类没有的。A、add(Object o)B、add(int index,Object o)C、remove(Object o)D、removeLast()16.下列哪些说法是正确的?

A、IOException必须被捕获或抛出

B、java语言声明变量的同时必须赋值

C、java 语言不允许同时继承一个类并实现一个接口

D、垃圾收集可被随时强制执行 17.关于线程状态的说法正确的是()

A、使用new刚创建出来的线程是就绪状态 B、调用start()方法线程立即处于运行状态 C、提倡调用stop()方法终止线程

D、线程等待IO输入会处于线程阻塞状态 18.以下代码: class Message{

String mailmessage;}...Message data;Socket toServer=new Socket(“172.17.96.34”,1001);...ObjectOutputStream out=new ObjectOutputStream(toServer.getOutputStream());out.write(data);

在执行上面代码时引发异常NotSerializableException。引发此异常的可能原因是什么? A.没有连上服务器

B.此消息类(Message)声明不充分 C.输出套接字可能被破坏

D.写出到此套接字,不应使用ObjectOutputStream 19.关于JDBC编程,以下说法错误的是()。

A、使用Class.forName()方法加载数据库驱动程序

B、使用DriverManager的getConnection()方法建立与数据库的连接 C、使用Connection的executeQuery(sql)方法执行查询得到ResultSet对象 D、用executeUpdate()执行更新、删除语句不会得到ResultSet对象

20.下面代码段, class Dog {

} class Beagle extends Dog{ } 如果类Beagle继承Dog, 并且Beagle类只有一个构造器,下面哪个是Beagle类合法的构造器? A、Beagle(){ } B、Beagle(){ super();} C、Beagle(){ super(“fido”);}

D、不提供构造器,使用默认的构造器。Dog(String name){ }

二、多选题(错选、漏选不得分,2分/题*10题=20分)

1.下面的说法正确的是()。

A、Java 语言是面向对象的、解释执行的网络编程语言。

B、Java 语言具有可移植性,是与平台无关的编程语言。C、Java 语言可对内存垃圾自动收集。

D、Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。2.在Java接口中,下列选项中有效的方法声明是()。(选择二项)

A、public void aMethod();B、void aMethod();C、protected void aMethod();D、private void aMethod();3.定义变量如下:

char c='w';int i=8;long L=15;float f=8.9f;以下赋值语句正确的是()。

A、i=c+i;B、c=c+i;C、L=f+L;D、f=i+L+f;

4.面向对象程序设计的三大特征是()。

A、抽象 B、封装 C、继承 D、多态

5.下面关于类的说法正确的是()。

A、类是 Java 语言中的一种复合数据类型。B、类中包含数据变量和方法。

C、类是对所有具有一定共性的对象的抽象。D、Java 语言的类只支持单继承。

6.编译并运行下面的程序:

public class A {

} class B extends A { public static void main(String[] args){

} void test(){ } System.out.print(“A”);A a=new B();a.test();

} 以下结论正确的有().A、子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。B、代码可以编译运行,并输出结果:AB。C、代码可以编译运行,并输出结果:A。

D、子类B定义了与父类A中同名的方法test,java中称为方法的重载。7.下面哪些说法正确()?

A、如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。B、如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。C、如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。D、接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。8.关于面向对象的说法正确的是()

A、面向对象编程是类来描述现实世界中的实体 B、有多少个实体就要创建多少个类

C、对象的行为和属性被封装在类中,外界通过发送消息来通知对象执行某个任务 D、现实世界中的某些实体不能用类来描述 9.下面代码:

1.class Over { 2.3.4.5.} 6.7.class Over2 extends Over { 8.9.} 哪两个选项放在第8行会导致不能编译? A、public int doStuff(int x, float y){ return 4;} B、protected int doStuff(int x, float y){return 4;} C、private int doStuff(int x, float y){return 4;} D、String doStuff(int x, float y){ return “4”;} E、int doStuff(float x, int y){ return 4;} // 选择代码添加在此处 int doStuff(int a, float b){ } return 7;void test(){

} super.test();System.out.println(“B”);

10.以下关于布局的说法,正确的是()

A、布局管理是为了能自动适应窗口大小的变化

B、BorderLayout是边框布局,他将窗口分为上、下、左、右四部分

C、FlowLayout是流布局,这种布局将其中的组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列

D、GridLayout是网格布局,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件

三、填空题(2分/题*5题=20分)1.补充下面代码的实现求数组中元素的最小值。

int[] x={122,33,55,678,-987};int min=_____999_________;for(int i=1;i

} System.out.println(“最小值为:”+min);

2.终止循环使用关键字____break______,结束本次循环进入下一次循环使用关键字____continue______。3.子类中调用父类被重写的方法需使用关键字__Super,声明常量使用关键字___final______。4.自定义的异常类通常继承自______Execption____________类,方法声明中抛出异常使用关键字____throw______。

5.内部类的特点是内部类与外部类共享______外部类的成员变量_________;内部类中的实例变量与外部类的实例变量重名时,内部类中通过“_____________.this.外部类实例变量名”来引用外部类实例变量。if(_x[i]

四、问答题(4分/题*5题=20分)1.什么是垃圾,java垃圾回收的工作原理 2.类变量与实例变量的区别

3.Vector与TreeSet在存储结构和存取性能上的区别

4.IO流分为字节流和字符流,说明他们的区别,每一类分别说出两个java类

5.什么是线程安全问题?什么情况下容易产生线程安全问题?线程安全问题如何解决?

五、程序题(5分/题*2题=10分)

1.用循环输出九九乘法口诀表

2.编写TCP服务器端程序,并且每个连接启动一个单独的线程来处理。

第二篇:Java软件工程师试题

姓名:联系电话:电子邮件:学历:专业:毕业时间:

Java软件工程师试题(A卷)

(满分100分,作答时间为120分钟)

一、单选题(每题3分,共45分)

1.以下哪个修饰符可用于定义成员常量?B

A.start B.final C.abstract D.No modifier can be used

2.定义一个Java文件名字为:Sub.java,其代码为:

class Super {

public int i=0;

public Super(){

}

public static void main(){

}

} System.out.println((new Super()).i);i = 1;

这段程序的运行结果是: B

A.Compile will fail

C.Compile success and print 0

3.给出如下代码:

class Test {

private int m;

public static void fun(){

// some code......}

} B.Compile success and print 1D.Compile success and print nothing

如何使成员变量m被函数fun()直接访问?D

A.将private int m改为protected int m

c.将private int m改为int m

4.下面代码段中,执行之后i和j的值是什么? C

int i = 1;

int j;

j = i++;

A.1,1B.1,2C.2,15.已知如下代码:A

boolean m;

if(m == false)

System.out.println(“false”);

else

B.将private int m改为public int m D.将private int m改为static int mD.2,2

System.out.println(“true”);

执行结果是什么?

A.Compile will fail

C.true

B.false D.An error will occur when running

6.下面哪个语句是创建数组的错误语句?C

A.float f[][] = new float [6][6];

C.float f[][] = new float [][6];

E.float [][]f = new float [6][];

B.float []f[] = new float [6][6];D.float [][]f = new float [6][6];

7.给出如下代码:C

String a = new String(“巨匠IT”);

String b = new String(“巨匠IT”);

请问上面的语句在内存中分配了多少个内存区?

A.1B.2C.3D.48.给出如下代码:D

Set set = new HashSet();

set.add(“gjun”);

set.add(“pcschoolchina”);

set.add(“gjun”);

set.add(“it”);

Iterator it = set.iterator();

while(it.hasNext()){

System.out.println(it.next());

}

上面的代码最有可能的输出结果是:

A.gjun pcschoolchina gjun it

C.it gjun pcschoolchina gjun

9.请看下面的代码段:

String a = “gjun”;

String b = new String(“gjun”);

String c = new String(“gjun”);

if(a==b){

System.out.println(“true”);

}else{B.gjun pcschoolchina it gjun D.it gjun pcschoolchina

System.out.println(“false”);

}

if(a.equals(b)){

System.out.println(“true”);

}else{

System.out.println(“false”);

}

if(c==b){

System.out.println(“true”);

}else{

System.out.println(“false”);

}

输出的结果为:C

A.false truetrue B.truefalse true C.false truefalse D.false false true

10.以下哪个方法用于定义线程的执行体?C

A.start()B.init()C.run()

D.main()E.synchronized()

11.给出url地址为“index?page=3&category=tech”,下面哪个描述是正确的:

A.通过request.getAttribute(“page”)可以获取page的值

B.通过request.getParameter(“page”)可以获取page的值

C.通过request.getAttribute(“page&category”)可以获取page和category的值

D.通过request.getParameter(“page&category”)可以获取page和category的值

12.有一个登录的表单,其属性有name=“loginForm”, action=“loginServlet”, method=“post”,下面哪个描述是正确的:

A.在loginServlet中使用doPost的方法来处理表单的请求

B.在loginServlet中使用doGet的方法来返回表单的处理结果

C.在loginServlet中,先调用doPost的方法,然后再调用service的方法来处理表单的请求

D.在loginServlet中,先调用doGet的方法,然后再调用service的方法来处理表单的请求

13.如果需要从一个Servlet中传递参数username到结果的页面,下面哪种方式是可行的:

A.request.setParameter(“username”, username);

B.request.setAttribute(“username”, username);

C.response.setParameter(“username”, username);

D.request.setAttribute(“username”, username);

14.下列哪个描述是正确的:

A.EJB3.0包含Session Bean, Entity Bean和JMS

B.在系统中,我们会使用Entity Bean来保存数据和处理业务流程

C.Session Bean分为有状态和无状态两中,其中有状态的性能更高

D.远程调用EJB组件,可以通过lookup的方式去查找JNDI名称,获取代理接口来调用

15.关于JUnit的描述,哪个是正确的:

A.JUnit其实是一个main函数

B.JUnit可以应用于系统的整体测试

C.如果要测试一个方法的话可以,使用assertEquals来判定结果的正确性

D.JUnit中可以的使用@Test来修饰方法,该方法可以带参数

二、多选题(每题3分,共45分)

16.如下哪些字符串是Java中的标识符?AE

A.fieldnameB.superC.3number

17.如下哪些是Java中有效的关键字?ACDE

A.constB.NULLC.false

D.#numberE.$numberD.thisE.native

18.在switch语句中,以下哪些参数类型是合法的?ABCD

A.intB.ByteC.charD.byte

19.下面哪个赋值语句是合法的?BCD

A.float a = 2.0B.double b = 2.0

E.String C.int c = 2D.long d = 2

20.已知如下的命令执行java MyTest a b c,请问哪个语句是正确的?CD

A.args[0] = “MyTest a b c”;B.args[0] = “MyTest”;

C.args[0] = “a”;D.args[1] = “b”;

21.下面代码执行后的输出是什么?ADC

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

} for(int j=0;j<2;j++){} if(j==1)continue;System.out.println(j+“and”+i);

A.0 and 0

F.1 and 2

b.0 and 1G.2 and 0C.0 and 2H.2 and 1D.1 and 0I.2 and 2 E.1 and 1

22.Java中如下哪个修饰符是正确的?ABE

A.privateB.publicC.default

23.已知如下类的说明:

public class Test {

} private float f = 1.0f;int m = 12;static int n = 1;public static void main(String arg[]){} Test t = new Test();D.friendE.protected

如下哪个代码可以加入到下划线中?AD

A.t.f = 0;B.this.n = 1;

24.已知如下类定义:

class Base {

}

public class Child extends Base { public Base(){} public Base(int m){} protected void fun(int n){}C.Test.m = 2;D.Test.n = 3;

// member methods

}

如下哪句可以正确地加入子类中?CD

A.private void fun(int n){}

C.protected void fun(int n){}

B.void fun(int n){} D.public void fun(int n){}

25.下面哪个方法可用于定义新线程类?AD

A.implement the Runnable interface B.add a run()method in the class

C.create an instance of ThreadD.extend the Thread class

26.下面哪个对象是JSP中内置对象?

A.contextB.request

C.exceptionD.application

27.现在有一个登录页面login.jsp,提交到/LoginServlet来处理,下面哪些描述是正确的。

A.通过request.getParameter(“username”)获取到login.jsp中的用户名值

B.通过request.getAttribute(“username”)获取到login.jsp中的用户名值

C.可以在LoginSerlvet中的doPost方法中处理请求

D.可以在LoginSerlvet中的service方法中处理请求

28.在LoginServlet处理完成后,跳转到要去到index.jsp页面,下面那些描述是正确的。

A.response.sendRedirect(“index.jsp”);

B.response.forward(“index.jsp”);

C.request.getRequestDispatcher(“index.jsp”).forward(request, response);

D.request.sendRedirect(“index.jsp”);

29.在Struts2.0中,Action接口默认的result值有:

A.SUCCESSB.FAILUREC.LOGIND.ERROR

E.OUTPUT

30.在Hibernate3.0中,假设现在有个Student的对象,下面那些HQL的写法是正确的:

A.select * from StudentB.from Student

C.select s from Student sD.select s from Student s where id>10

三、填空题(每题5分,共10分)

31.补充完整Test类的定义,使其能计算下面的数列值:

F(1)= 1(n=1)

F(2)= 2(n=2)

F(n)= F(n-1)*n(n>3)

如: 当n=5时,f(5)=f(4)*5,f(4)=f(3)*4,f(3)=f(2)*3,f(2)=f(1)*1,f(1)=1

结果f(5)= 1*1*3*4*5 = 60

public class Test {

public static int calculate(int n){if(①)return 1;return②;} public static void main(String[] args){System.out.println(calculate(3));

}

}

32.请看TestAnimal类的代码:

public class TestAnimal{

public static void main(String args[]){Animal a1 = new Dog();Animal a2 = new Cat();①②

Dog b1 =③

Cat b2 =④

}⑥}

interface Animal {

}

class Dog implements Animal{

}

class Cat implements Animal{

} public void run(){} public void catchMouse(){} System.out.println(“catching mouse”);System.out.println(“A cat is running now”);public void run(){} public void watch(){} System.out.println(“watching house”);System.out.println(“A dog is running now”);public void run();

请补充完整上面的代码,使其运行的时候得到如下结果:

A dog is running now

A cat is running now

watching house

catching mouse

第三篇:Java程序员笔试题

Java程序员笔试题

说明:该份题目要求在1小时内答完

1、工厂方法模式和抽象工厂模式的区别

2、jsp/servlet 中 forward, include, reDirect 之间的区别

3、JSP中的两种include包含指令的区别与用法

4、ArrayList和Vector的区别,HashMap和Hashtable及HashSet的区别?

5、请说明在实际应用中,java.sql 包中的Statement和PreparedStatement有何区别?

6、如何遍历一个集合(collection),并在屏幕上打印出集合中的每个元素public void printStr

(Collection cols){

}

7、写一个方法,实现字符串的反转,例如:输入abc,输出cba

PublicString reverseStr(String str){

//代码

}

8、输入为整数数组,请写出如下的排序算法,使得数组data里面存储的数字随数组脚标的增大而依

次增大,即越小的数字存储的位置越靠前

Public void sort(int[]data){

}

9、用户在JSP: input.jsp中输入姓名和手机号码,点”Done”按钮来提交请求到一个/ 6

servlet:test.java。test.java将输入的姓名和手机号码存储在文件store.txt里。

请写出input.jsp, test.java的程序源码,并在input.jsp和test.java中分别通过js和java代码对输入进行校验,如果1)姓名项没有填写或者输入的长度超过了20个字符2)手机号码项没有填写,或者输入了非数字的字符或者输入的长度不是13位,则返回input.jsp,并给出相应的错误提示。

10、有若干条有关城市的信息,每条包括如下属性:ID(唯一递增的序列),CITY(城市名称),DESC(城市说明),要求设计一套数据结构及算法使得1)所有登陆系统的用户均能使用这些城市信息2)能够根据城市ID 号或名称获得城市的其他信息3)如果从该数据结构中找不到合适的城市信息,可以往该数据结构中添加新的城市信息,但相同的城市(ID号或名称有任意一个相同均认为是同一城市)在数据结构中只能有一条记录 4)如任一条城市信息,超过两个小时没有被使用(查询)则需自动将其删除

pubic class CityCache{

}

11、读下面一段程序,写出运行结果

----

pubicclassBaseClass{

static{

System.out.println(“aaaaa”);/ 6

}

BaseClass(){

System.out.println(“11111”);

}

}

publicclassDerivedClass

extendsBaseClass{

static{

System.out.println(“bbbbb”);

}

DerivedClass(){

System.out.println(“22222”);

}

}

publicclassStartRun {

public static void main(String[ ] args){

DerivedClasssdc 1 = newDerivedClass();

dc1 = newDerivedClass();

}

}

12、请写出符合要求的sql 语句(假定数据库为Oracle)。/ 6

现有数据表a,建表语句如下:

create table a(bm char(4),——编码

mc varchar2(20)——名称)

表中数据如下

bmmc

11111111

11121111

11131111

11141111

要求1:用一条sql语句实现对表a中数据的复制,即达到如下的结果(2)bmmc

11111111

11121111

11131111

11141111

11111111

11121111

11131111

11141111/ 6

要求2:请删除表中重复的记录(bm和mc都相同的记录为重复记录)

13、classStack {

LinkedListlist = new LinkedList()

public synchronized void push(Objectx){

synchronized(list){

list.addLast(x);

notify();

}

}

public synchronized Object pop(){

synchronized(list){

if(list.size()<=0)

wait();

return list.removeLast();

}

}/ 6

}

请问上面这个类中有什么错误?应该怎么解决?14、15、请写出MSSQL、ServerMysql和ORACE实现分页算法的sql语句。UNIX和网络基础,依次写出完成下列的操作命令,最好有常用参数的简单说明

1)如何显示当前的IP配置信息

2)查看当前目录

3)拷贝文件或目录

4)移动文件或目录

5)删除文件或目录

6)切换用户

7)修改文件或目录的权限

8)查看日志文件的最后1行

9)查看系统内存、CPU的使用状况

10)查看系统正在运行的和apache相关的进程/ 6

第四篇:JAVA程序员笔试题

深圳市九城恩科软件技术有限公司

java程序员笔试题

JAVA 程序员笔试题

时间:30分钟

试题一:

简单描述一下什么是事务管理,事务管理中有哪些语句?

姓名:

试题二:

跳出当前循环的关键词是什么?继续本次循环的关键词是什么?

试题三:

在JSP页面源代码中写 “${flag}”是代表什么意思?

试题四:

请写出最少五种设计模式的名称。

试题五:

请写出Eclipse 中下列功能的快捷键: 删除当前行: 注释当前行:

代码助手完成一些代码的插入: 打开类型: 打开资源:

试题六:

什么情况下Eclipse不编译生成Class文件?

深圳市九城恩科软件技术有限公司

java程序员笔试题

试题七:

public static void main(String[] args){

int i=3,j=16;do{ if(++i>=j--)continue;}while(i<9);System.out.println(“i=”+i+“;j=”+j);} 这段程序运行后输出的结果是什么?

试题八:

public class One {

} public class Two extends One {

} protected void printA(){System.out.println(“two A”);} private void printB(){System.out.println(“two B”);} public static void main(String[] args){ Two t = new Two();t.printAB();} protected void printA(){System.out.println(“one A”);} private void printB(){System.out.println(“one B”);} protected void printAB(){printA();printB();} 这段程序运行后输出的结果是什么?

试题九:

有一个表 “表A” 中包含 “姓名”,“成绩”两个字段,请写一个SQL语句查询出“成绩”大于60分的,“姓名”有重复的人的名字

试题十:

请写一个方法实现:传入的一个大于10位的字符串,把字符串的最后两位移动到字符串的第4位后面。

第五篇:JAVA达内面试题

诚信、创新、开放、合作

JAVA面试题-CORE JAVA部分

--感谢SD0501班毕业学员李晓宾的提供,希望对面试学员和在校学员有所帮助。

1. 在main(String[] args)方法内是否可以调用一个非静态方法?

答案:不能

2. 同一个文件里是否可以有两个public类?

答案:不能

3. 方法名是否可以与构造器的名字相同?答案:可以。

4.初始化了一个没有run()方法的线程类,是否会出错?

答案:不会。

第一种方法:直接继承Thread类。

public class Test

{

public static void main(String[] args)

{

ThreadClass t = new ThreadClass();

t.start();

System.out.println(“end”);//输出“end”

}

}

class ThreadClass extends Thread//Thread类已经实现了空的run()方法。

{

}

第二种方法:实现Runnable接口

public class Test

{

public static void main(String[] args)

{

ThreadClass t = new ThreadClass();

Thread thread = new Thread(t);

thread.start();

System.out.println(“end”);

}

}

class ThreadClass implements Runnable

{

public void run()//必须有此方法否则编译报错。它是Runnable接口中的抽象方法。{

System.out.println(“Threads”);

}

}

4. 局部内部类是否可以访问非final变量?

答案:不能访问局部的,可以访问成员变量(全局的)。

class Out

{

private String name = “out.name”;

void print()

{

final String work = “out.local.work”;//若不是final的则不能被Animal 使用.int age=10;

class Animal

//定义一个局部内部类.只能在print()方法中使用.//局部类中不能使用外部的非final的局部变量.全局的可以.{

public void eat()

{

System.out.println(work);//ok

//age=20;error not final

System.out.println(name);//ok.}

}

Animal local = new Animal();

local.eat();

}

}

5. 选择语句case中,允许使用的值有哪些?答案:int,short,char,byte(都在int范围之内,且是整

数)

6. Math,String是不可继承的。(final类)

Instanceof 后面跟的应该是OBJECT。

构造器可以是私有的。(private)

=与==意义是完全不同的。一个是赋值,一个是等于。

全局变量可以不进行初始化,如果使用一个局部变量,则这个局部变量要被初始化。

7. 下面都是正确的main方法签名。

public static void main(String[] args)

public static final void main(String[] args)

static public void main(String[] args)

static public synchronized void main(String[] args)

static public abstract void main(String[] args)//错误

8. if(-0.0 == 0.0)是相等还是不等?

答案:相等。

10.一个抽象类是否可以没有抽象方法?

答案:可以。

14.数组,无论是当前的,还是类等级的,都会被初始化。

String 是被初始化为 null,不是空字符。

null,““,” “,都是不同的。

“continue”只能在一个循环里(如for,do,while),它不能在case语句中出现。

Primitive(int,char,long等)数组是不能互相赋值的,即使它们本身可以。

一个Constructor可以抛出任何异常。

初始化块是按照声明的顺序执行的。

所有关于 NaN(Not a Number)和 non-NaN 的比较,都返回false.这条很重要。

==会产生编译错误,如果两边类型不匹配的话。

equals()返回 false 如果对象类型不同,但不产生 编译错误。

15. 16.integer和long 操作 /和% 的话,可能会抛出ArithmeticException,比如除0。但是 float与

double不会,即使是除以0。

double a=0;a=a/0;则a等于NaN。

18.面向对象的特征有哪些方面 ?

答案:最基本特征:封装,继承,多态。

其他特征:抽象关联,聚合,组合,内聚,耦合24.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

注:因为这4个线程共享J,所以线程类要写到内部类中。

加线程:每次对j加一。

减线程:每次对j减一。

public class TestThreads

{

private int j=1;

//加线程

private class Inc implements Runnable

{

public void run()

{

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

{

inc();

}

}

}

//减线程

private class Dec implements Runnable

{

public void run()

{

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

{

dec();

}

}

}

//加1

private synchronized void inc()

{

j++;

System.out.println(Thread.currentThread().getName()+“-inc:”+j);

}

//减1

private synchronized void dec()

{

j--;

System.out.println(Thread.currentThread().getName()+“-dec:”+j);

}

//测试程序

public static void main(String[] args)

{

TestThreads test = new TestThreads();

//创建两个线程类

Thread thread = null;

Inc inc = test.new Inc();

Dec dec = test.new Dec();

//启动4个线程

for(int i = 0;i < 2;i++)

{

thread = new Thread(inc);

thread.start();

thread = new Thread(dec);

thread.start();

}

}

}

25.数组转换问题。

Object[] object=new Person[2];

Person [] person=new Person [3];

person=(Person [])object;//可以转换

int[] i = new int[2];

long[] l = new int[3];

i =(long[])l;//不可以转换

26.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。Server.java:源代码

import java.net.*;

import java.io.*;

classServer

{

public Server()

{

BufferedReader br = null;

PrintWriter pw = null;

try

{

ServerSocket server = new ServerSocket(8888);//建立服务器端

Socket socket = server.accept();//监听客户端

//得到该连接的输入流

br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//得到该连接的输出流

pw = new PrintWriter(socket.getOutputStream(),true);

//先读后写

String data = br.readLine();

System.out.println(data);//输出到控制台

pw.println(data);//转发给客户端

}catch(Exception e)

{

e.printStackTrace();

}

finally

{try{//关闭读写流br.close();pw.close();}catch(Exception e){}}}public static void main(String[] args){Server server = new Server();}

}

Client.java:源代码

import java.net.*;

import java.io.*;

classClient

{

public Client()

{

BufferedReader br = null;

PrintWriter pw = null;

try

{

Socket socket = new Socket(“localhost”,8888);//与服务器建立连接,服务器要先启//得到Socket的输入与输出流

br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

pw = new PrintWriter(socket.getOutputStream(),true);

//先写后读

pw.println(“Client:你好!”);

String data = null;

while(true)

{

data = br.readLine();

if(data!=null)break;

}

System.out.println(data);

}catch(Exception e)

{

e.printStackTrace();

}

finally

{

try

{

br.close();

pw.close();

}catch(Exception e)

{}

}

}

public static void main(String[] args)

{

Client c = new Client();

}

}

37.sleep()和 wait()有什么区别?

答案:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间(休息),把执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复,时间到了会继续运行。调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

50.启动一个线程是用run()还是start()?有什么区别?

答案:启动一个线程是调用start()方法,这并不意味着线程就会立即运行,只是进入了可运行状态。直接调用run()方法不会产生线程,而是把它当作普通的方法调用,马上执行。

73.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

答案:不能,一个对象的synchronized方法只能由一个线程访问。但其他线程可以同时访问这个对象的非synchronized方法

下载Java试题Aword格式文档
下载Java试题A.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    java笔试题06

    Using the java.lang.String Class 1. Given the following, 1. public class StringRef { 2. public static void main(String [] args) { 3. String s1 = "abc"; 4. Strin......

    JAVA工程师笔试题

    一、选择题 1.Java中提供了名为( )的包装类来包装原始字符串类型。 A.Integer B.Char C.Double D.String 2.java.lang包的( )方法比较两个对象是否相等,相等返回true。 A.toString() B.equ......

    java web考试试题

    2. Web的工作模式是:B浏览器/服务器 3. 表示:D强制换行 4.一组选项中可以选择多项的表单元素是:A Checkbox 6. 下面那种语言是解释执行的:C JavaScript 2. JSP文件应放在Tomcat......

    JAVA工程师笔试题5篇

    【程序17】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的......

    java程序员笔试题5篇

    姓名:联系方式:考试开始时间: Java程序员笔试题 一、单项选择题(共10题,每题2分,共20分) 1. 下列说法哪一个是正确的。( B ) A.Java程序经编译后会产生machine code B.Java程序经编译后......

    软件开发工程师(JAVA)笔试题A

    JAVA笔试题  软件开发工程师(JAVA)笔试题 请在90分钟以内做答 答案请写在答题纸上 一、选择题 1、下面哪项是不合法的标识符:(c e) A. $persons B. TwoUsers C. *point D. _en......

    Java软件开发工程师笔试题

    Java软件开发工程师笔试题 一、选择题(25 x 2’ = 50’) 1、 一个Java程序运行从上到下的环境次序是() A. 操作系统、Java程序、JRE/JVM、硬件 B. JRE/JVM、Java程序、硬件、操作......

    JAVA程序员笔试题1

    java程序员笔试题 JAVA 程序员笔试题 时间:30分钟 试题一: 简单描述一下什么是事务管理,事务管理中有哪些语句?姓名: 试题二: 跳出当前循环的关键词是什么?继续本次循环的关键词是......