JAVA面试题(选择题) .详解

JAVA面试题(选择题) .详解
JAVA面试题(选择题) .详解

1.在Java中,负责对字节代码解释执行的是

A. 应用服务器

B.虚拟机

C. 垃圾回收器

D. 编译器

2.一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈得输出序列的是()

A. 5 4 1 3 2

B. 2 3 4 1 5

C. 1 5 4 3 2

D. 2 3 1 4 5

3.LDAP是什么?

A. 是一种开源产品

B. 是一种编程语言

C.是一种访问协议

D. 是一种存储数据的目录

4.要想在你的视图上成功的执行查询需要做什么?

A. 只能在基础表中有select权限

B.在视图中需要有select权限

C. 基础表中必须有数据

D. 基础表必须在同一个用户模式中

5.评估下面的一组SQL语句:

CREATE TABLE dept

(deptno NUMBER(2),

dname VARCNAR2(14),

1oc VARCNAR2 (13));

ROLLBACK;

DESCRIBE DEPT

下面关于该组语句的哪个描述是正确的?

A. DESCRIBE DEPT语句将返回一个错误ORA-04043: object DEPT does not exist.

B. DESCRIBE DEPT语句将显示DEPT表的结构描述内容

C. DESCRIBE DEPT语句将只有在ROLLBACK之前引入一个COMMIT语句时,才会显示DEPT表的结构描述内容

D. ROLLBACK语句将释放DEPT占用的存储空间

6.Oracle中VARCHAR2类型的最大长度是:

A. 4000

B. 3000

C. 1000

D. 2000

7.下列哪一个选项按照顺序包括了OSI模型的七个层次:()

A. 物理层数据链路层传输层网络层会话层表示层应用层

B. 物理层数据链路层会话层网络层传输层表示层应用层

C.物理层数据链路层网络层传输层会话层表示层应用层

D. 网络层传输层物理层数据链路层会话层表示层应用层

8.当客户端关闭一个从连接池中获取的连接, 会发生下面哪一种情况?

A.连接不会关闭,只是简单地还给连接池

B. 连接被关闭,但又被重新打开并还给连接池

C. 连接永久性关闭

9.以下哪些不是javascript的全局函数()

A. eval

B. escape

C. setTimeout

D. parseFloat

10.你使用mkdir命令创建一个临时文件夹/tmp/aaa,并将一些文件复制其中。你使用完后要删除/mnt/tmp文件夹及其中的所有文件,应该使用命令

A. rm /tmp/aaa

B. rm -r /tmp/aaa

C. rmdir -r /tmp/aaa

D. rmdir /tmp/aaa

11.操作系统具有进程管理、存储管理、文件管理和设备管理的功能,在以下有关的描述中,哪一个是不正确的

A. 设备管理是指计算机系统中除了CPU和内存以外的所有输入、输出设备的管理

B.存储管理主要是管理内存资源

C. 进程管理主要是对程序进行管理

D. 文件管理可以有效地支持对文件的操作,解决文件共享、保密和保护问题

12.在UML提供的图中,()用于按时间顺序描述对象间的交互。

A. 协作图

B. 网络图

C.序列图

D. 状态图

13.下面有关系统并发访问数估算数据那个最有效:

A. 高峰时段日处理业务量100000

B.高峰时段平均每秒请求数80

C. 同时在线用户数100

D. 平均每秒用户请求数50

14.不同级别的用户对同一对象拥有不同的访问权利或某个客户端不能直接操作到某个对象,但又必须和那个对象有所互动,这种情况最好使用什么设计模式。

A. Bridge模式

B. Fa?ade模式

C. Adapter模式

D. Proxy模式

15.PL/SQL中用来判断FETCH语句是否成功,并且在FETCH语句失败时返回逻辑真的属性是:

%ISOPEN

%NOTFOUND

%ROWCOUNT

%FOUND

16.关于以下程序代码的说明正确的是:

1. public class HasStatic{

2. private static int x=100;

3. public static void main(String args[]){

4. HasStatic hs1=new HasStatic();

5. hs1.x++;

6. HasStatic hs2=new HasStatic();

7. hs2.x++;

8. hs1=new HasStatic();

9. hs1.x++;

10. HasStatic.x--;

11. System.out.println("x="+x);

12. }

13. }

A. 程序通过编译,输出结果为:x=103

B. 10行不能通过编译,因为x是私有静态变量

C. 5行不能通过编译,因为引用了私有静态变量

D.程序通过编译,输出结果为:x=102

17.定义字符串:String s1="hello";对下面程序描述正确的是:if(s1=="hello"){

System.out.println("s1 = "hello"");

}else{

System.out.println("s1 !=hello");

}

A. 输出 s1 !=hello

B. 编译正确,运行错误

C. 产生编译错误

D.输出s1="hello"

18.在实现DAO设计模式时,下面哪种模式经常被采用:

A. Proxy模式

B. Factory模式

C. Prototype模式

D. Observer模式

19.关于MVC,下面说法正确的是:

A. Servlet实现MVC的Model部分

B. EJB实现MVC的Model部分

C. Http实现MVC的View部分

D. JSP实现MVC的Control部分

20.下列关于PC机软件的叙述中,错误的是:

A. C++语言编译器是一种系统软件,它需要操作系统的支持

B. PC机除了使用Windows操作系统外,还可使用Linux等操作系统

C. 软件是计算机系统不可缺少的组成部分,它包括各种程序、数据和有关文档资料

D. Windows操作系统中的画图、计算器、游戏等是Windows的组成部分,它们都属于系统软件

21.在ORACLE中执行下面SQL的结果为:

Select instr('Mississippi','i',3,3) from dual

7

10

8

11

22.在ORACLE中,下面哪个符号可以放到一个文件中的一行前面来标示注释。

A. !

B. $

C. &

D. #

23.以下代码段将创建几个对象?

String s1="bc";

String s2="bc";

A. 2

B. 3

C. 0

D. 1

24.关于垃圾收集的哪些叙述是对的。

A. 垃圾收集能够在期望的时间释放被java对象使用的内存。

B.垃圾收集将检查并释放不再使用的内存。

C. 垃圾收集允许程序开发者明确指定并立即释放该内存。

D. 程序开发者必须自己创建一个线程进行内存释放的工作。

25. 设x为int型变量,则执行以下语句段后,x的值为:

x=10;

x+=x-=x-x;

A. 30

B. 20

C. 40

D. 10

26.对于下面几种常见的CMT事务属性,下面?号处从?1 到 ?4依次应为:

A. T2, None, None, T2

B. None, T2, None, T2

C. T1, T2, T2, None

D. None, None, None, T1

E. T2, T2, None, T2

F. T1, None, T2, T2

27.如果配置一个Servlet需要使用的参数,最好在哪个方法中加载?

A. init

B. doGet

C. destory

D. doPost

E. service

28. 下面哪个Set是排序的?

A. LinkedHashSet

B. HashSet

C. AbstractSet

D. TreeSet

29.假设test类运行于多线程环境下,那么关于A处的同步下面描述正确的是?public class Test {

List list= new java.util.ArrayList();

public void test() {

synchronized ( list) { // --A

list.add( String.valueOf(System.currentTimeMillis()));

}

}

}

A. test方法中必须增加synchronized

B. Test类为singleton时有必要增加synchronized

C. test方法中没有必要增加synchronized

D. Test类为singleton时也没有必要增加synchronized

30.下面哪个对类的声明是错误的?

A. class MyClass extends MySuperClass1, MySupperClass2 {}

B. public class MyClass{}

C. abstract class MyClass implements YourInterface1, Youriterface2 {}

D. private class MyClass {}

E. class MyClass extends MySuperClass implements YourInterface {}

31.类的实例方法表示的是什么?()

A. 父类对象的行为

B. 类的属性

C.类对象的行为

D. 类的行为

32.下面说法正确的是()

A. JAVA中线程是非抢占式的

B. JAVA中的线程不可以共享数据

C.每个JAVA程序都至少有一个线程,即主线程

D. JAVA中的线程不可以共享代码

1.Applet可以做下列那些操作

A. 读取客户端文件

B. 在客户端主机上创建新文件

C. 在客户端装载程序库

D.读取客户端部分系统变量

2.在面向对象数据模型中,子类不但可以从其超类中继承所有的属性和方法,而且还可以定义自己的属性和方法,这有利于实现

A. 可移植性

B.可扩充性

C. 可靠性

D. 安全性

3.下面两段代码打印的结果是:

System.out.println(5.00-4.90);

System.out.println(300-210);

A. 0.8999999999999999和90

B. 0.8999999999999999和89.99999999999999

C. 0.9和90

D. 0.9和89.99999999999999

4.下面关于数据库系统基于日志的恢复的叙述中,哪一个是正确的

A. 利用更新日志记录中的改前值可以进行UNDO,利用更新日志记录中的改前值可以进行REDO

B.利用更新日志记录中的改后值可以进行UNDO,利用更新日志记录中的改后值可以进行REDO

C. 利用更新日志记录中的改前值可以进行UNDO,利用更新日志记录中的改后值可以进行REDO

D. 利用更新日志记录中的改后值可以进行UNDO,利用更新日志记录中的改前值可以进行REDO

5.评估下面的一组SQL语句:

CREATE TABLE dept

(deptno NUMBER(2),

dname VARCNAR2(14),

1oc VARCNAR2 (13));

ROLLBACK;

DESCRIBE DEPT

下面关于该组语句的哪个描述是正确的?

A. DESCRIBE DEPT语句将显示DEPT表的结构描述内容

B. DESCRIBE DEPT语句将只有在ROLLBACK之前引入一个COMMIT语句时,才会显示DEPT表的结构描述内容

C. ROLLBACK语句将释放DEPT占用的存储空间

D. DESCRIBE DEPT语句将返回一个错误ORA-04043: object DEPT does not exist.

6.下面哪个语句用于打开一个已经存在的约束?

A. ALTER TABLE table_name ENABLE constraint_name;

B. ALTER TABLE table_name STATUS = ENABLE CONSTRAINT constraint _ name;

C. ALTER TABLE table_name STATUS = ENABLE CONSTRAINT constraint _ name;

D. ALTER TABLE table_name ENABLE CONSTRAINT constraint _ name;

E. ALTER TABLE table_name TURN ON CONSTRAINT constraint _ name;

F. ALTER TABLE table_name TURN ON CONSTRAINT constraint _ name;

7.TCP协议在每次建立或拆除连接时,都要在收发双方之间交换_________ 报文。

A. 一个

B. 四个

C.三个

D. 两个

8.网络操作系统和分布式操作系统的主要区别是()

A. 是否连接多台计算机

B. 计算机之间能否通信

C.网上资源能否共享

D. 各台计算机有没有主次之分

9.关于IE的window对象表述不正确的有()

A. window.opener属性本身就是指向window对象

B. window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面

C.定义了全局变量g;可以用window.g的方式来存取该变量

D. window.reload()方法可以用来刷新当前页面

10.在操作系统中,Wait(s)和Signal(s)操作是一种

A. 机器指令

B. 作业控制命令

C. 系统调用命令

D.低级进程通信原语

11.文件的存取方式是由文件的性质和用户使用文件的情况而确定的,一般有两种存取方式,它们是

A. 直接存取和间接存取

B. 顺序存取和链接存取

C. 顺序存取和随机存取

D.只读存取和读写存取

12.下列描述中正确的是()

A. 软件工程只是解决软件项目的管理问题

B. 软件工程只是解决软件开发中的技术问题。

C.软件工程的主要思想是强调在软件开发过程中需要应用工程化的原则。

D. 软件工程主要解决软件产品的生产率问题。

13.项目中的技术风险是通常是通过()方法来缓解的

A. 技术文档

B. 架构原型验证

C.代码复审

D. 单元测试

14.CMM定义了几个不同的成熟度等级。

A. 3

B. 6

C. 5

D. 4

15.PL/SQL中以下表达式的结果非空的是:

A. NULL||NULL

B. NULL'||NULL

C. (5>NULL)

D. 3+NULL

16.你怎样强制对一个对象立即进行垃圾收集?

A. 调用 System.gc()

B. 调用System.gc(), 同时传递要进行垃圾收集对象的引用

C. 调用 Runtime.gc()

D. 给这个对象的所有引用设置一个新的值(例如null)

E.垃圾收集是不能被强迫立即执行

17.以下()方法不能被浏览器自动调用。

A. init()

B. stop()

C. start()

D. paint()

18.要创建一个新目录,可以用下面( )类实现。

A. FileInputStream

B. FileOutputStream

C. RandomAccessFile

D. File

19.执行下面代码,下面描述正确的是:

public class Person{

static int arr[] = new int[10];

public static void main(String a[]){

System.out.println(arr[1]);

}

}

A. 产生编译错误

B. 输出空

C. 编译正确,运行错误

D.输出0

20.关于CMM说法错误的是:

A. CMM是一个软件生命周期模型

B. CMM是一种软件过程的策略,与实际使用的模型无关

C. CMM有助于组织建立一个有规律的、成熟的软件过程

D. CMM定义了5个成熟度等级

21.执行下面PL/SQL,emp表中存在编号为1234的雇员,说法正确的是:declare

v_name VARCHAR2(10);

begin

SELECT ename INTO v_name FROM emp WHERE empno='1234';

dbms_output.put_line('found');

EXCEPTION

WHEN no_data_found THEN

dbms_output.put_line('not found!');

dbms_output.put_line('others');

end;

A. 程序编译错误

B.输出结果为:found

C. 输出结果为: not found others

D. 输出结果为: found others

22.在ORACLE中,关于同义词说法错误的是:

A.同义词只能由创建同义词的用户使用

B. 同义词可以和表重名

C. 共有同义词和私有同义词创建的权限不同

D. 可以为存储过程创建同义词

23.在ORACLE中Date日期类型,存贮日期和时间信息,占用几个字节

A. 6

B. 10

C. 8

D. 7

24.有关线程的哪些叙述是对的。

A. 一旦一个线程被创建,它就立即开始运行。

B. 当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

C. 一个线程可能因为不同的原因停止(cease)并进入就绪状态。

D.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

25.下列程序段执行后,t5的结果是:

int t1=5,t2=6,t3=7,t4,t5;

t4=t1

t5=t4

A. 7

B. 5

C. 6

26.下面哪一个参数不是存储过程接受的参数

A. INPUT

B. INOUT

C. IN

D. OUT

27. 54.执行如下两个查询,结果为:

SELECT ename name, sal salary FROM emp order by salary; SELECT ename name, sal "SALARY" FROM emp order by sal ASC;

A. 两个查询结果完全相同

B. 第二个查询正确,第一个查询错误

C.第一个查询正确,第二个查询错误

D. 两个查询结果不同

28.EJB实例通过下面哪个接口与容器进行交互?

A. Handle

B. EJBContext

C. EJBHome

D. EJBObject

E. HomeHandle

29.下面哪个Map是排序的?

A. TreeMap

B. HashMap

C. Hashtable

D. WeakHashMap

E. LinkedHashMap

30.transient 变量和下面哪一项有关?

A. Cloneable

B. Serializable

C. Runnable

D. Throwable

E. Comparable

31.执行下列语句后,i 和n的值为()int i=10;int n= i++%5;

A. 10,0

B. 11,0

C. 10,1

D. 11,1

32.随着Java技术的不断发展,Sun公司根据市场进一步将Java细分,其中针对普通PC 应用的是()

A. J2EE

B. JDK

C. J2ME

D. J2SE

1.以下创建了几个对象

String A,B,C

A="a";

B="b":

A=A+B;

StringBuffer D=new StringBuffer("abc");

D=D.append("567");

A. 6

B. 4

C. 3

D. 5

2.J2EE的三层结构包括表示层、中间层、()。

A. 保存层

B. 服务层

C. 中间层

D.数据层

3.下面那种服务不是JNDI应用范围。

A. JMS

B. JDBC

C. Servlet

D. EJB

4.要想在你的视图上成功的执行查询需要做什么?

A. 基础表必须在同一个用户模式中

B. 只能在基础表中有select权限

C. 基础表中必须有数据

D.在视图中需要有select权限

5.在数据库中,产生数据不一致的根本原因是

A. 数据冗余

B. 数据存储量太大

C. 没有严格保护数据

D.未对数据进行完整性控制

6.评估下面的一组SQL语句:

CREATE TABLE dept

(deptno NUMBER(2),

dname VARCNAR2(14),

1oc VARCNAR2 (13));

ROLLBACK;

DESCRIBE DEPT

下面关于该组语句的哪个描述是正确的?

A. DESCRIBE DEPT语句将返回一个错误ORA-04043: object DEPT does not exist.

B. DESCRIBE DEPT语句将显示DEPT表的结构描述内容

C. ROLLBACK语句将释放DEPT占用的存储空间

D. DESCRIBE DEPT语句将只有在ROLLBACK之前引入一个COMMIT语句时,才会显示DEPT表的结构描述内容

7.下列哪一个选项按照顺序包括了OSI模型的七个层次:()

A. 网络层传输层物理层数据链路层会话层表示层应用层

B.物理层数据链路层网络层传输层会话层表示层应用层

C. 物理层数据链路层会话层网络层传输层表示层应用层

D. 物理层数据链路层传输层网络层会话层表示层应用层

8.TCP协议在每次建立或拆除连接时,都要在收发双方之间交换____报文。

A. 四个

B. 一个

C. 两个

D.三个

9.下列关于描述XML和HTML的差异不正确的是

A. XML的语法比HTML严格

B. XML扩展性比HTML强

C.解析XML的性能优于HTML

D. XML与HTML互补

10.文件系统与()密切相关,它们共同为用户使用文件提供方便

A. 作业管理

B.存储管理

C. 设备管理

D. 处理器管理

11.以下哪一项不是进程和程序的区别?

A. 程序可以长期保存,进程是暂时的

B.程序只能在前台运行,而进程可以在前台或后台运行

C. 程序没有状态,而进程是有状态的

D. 程序是一组有序的静态指令。进程是一次程序的执行过程

12.在UML提供的图中,()用于按时间顺序描述对象间的交互。

A.序列图

B. 状态图

C. 协作图

D. 网络图

13.黑盒测试也称为功能测试。黑盒测试不能发现

A. 界面是否有错误

B. 终止性错误

C. 输入是否正确接收

D.是否存在冗余代码

14.不同级别的用户对同一对象拥有不同的访问权利或某个客户端不能直接操作到某个对象,

但又必须和那个对象有所互动,这种情况最好使用什么设计模式。

A. Fa?ade模式

B. Proxy模式

C. Adapter模式

D. Bridge模式

15.下面哪项不是web容器的部署描述符的作用。

A. 映射到Servlet/JSP的请求

B. 定义欢迎和错误页面

C. 定义MIME参数

D.定义远程接口

E. 初始化参数

F. 安全授权和认证

16.表的主键特点中,说法错误的是:

A. 主键的每一列都必须非空

B. 主键的每一列都必须唯一

C. 一个表只能定义一个住键

D.主键可以定义在表级或列级

17.Oracle中可变长度的字符串类型用以下的哪个关键字表示:

A. NUMBER

B. VARCHAR2

C. CHAR

D. BOOLEAN

18.以下代码完成画线功能,所画线的颜色是:

g.setColor(Color.red.green.yello.cyan);

g.drawLine(0,0,100,100);

A. yello

B. red

C. cyan

D. green

19.创建一个标识有“关闭”按钮的语句是:

A. Button b=new Button("关闭");

B. TextField b=new TextField("关闭");

C. Checkbox b=new Checkbox("关闭");

D. Label b=new Label("关闭");

20.为了提高测试的效率,应该:

A. 在完成编码以后制定软件的测试计划

B.集中对付那些错误群集的程序

C. 随机选取测试数据

D. 取一切可能的输入数据作为测试数据

21.软件生命周期中所花费用最多的阶段是:

A.软件维护

B. 软件测试

C. 详细设计

D. 软件编码

22.在ORACLE中,删除emp表的全部数据,但不提交,以下正确的语句是:

A. TRUNCATE TABLE EMP

B. DELETE TABLE EMP

C. DELETE FROM EMP

D. DELETE * FROM EMP

23.在ORACLE中,下面哪个符号可以放到一个文件中的一行前面来标示注释。

A. !

B. &

C. $

D. #

24.下面这些方法中()方法不是Applet的基本方法。

A. stop()

B. run()

C. init()

D. start()

25.类Teacher和Student是类Person的子类:

Person p;

Teacher t;

Student s;

//p,t and s are all non-null.

if(t instanceof Person) {s=(Student)t;}

最后一句语句的结果是:

A. 编译时正确,但运行时错误

B. 将构造一个Student对象

C.表达式是错误的

D. 表达式是合法的

26.软件设计中划分模块的一个准则是

A. 低内聚高耦合

B. 低内聚低耦合

C.高内聚低耦合

D. 高内聚高耦合

27.下面哪个Set是排序的? TreeSet

A. LinkedHashSet

B. HashSet

C. TreeSet

D. AbstractSet

28.哪个类或者接口不包括在JDK Collection Framework中?

A. Iterator

B. Arrays

C. TreeMap

D. Enumeration

E. Collections

29.如果你被要求写一段代码读取一个文本文件,那么一般使用哪种Stream?

A. DataInputStream

B. ObjectInputStream

C. FileReader

D. FileInputStream

30.java程序运行入口的main方法的返回类型是什么?

A. static

B. void

C. boolean

D. int

31.在下面的代码中:public class AyeAye{ int i = 40; int j;

public AyeAye(){ setValue(i++); }

void setValue(int inputValue){ int i = 20; j = i + 1;

System.out.println(“j = ” + j); }}当setValue()方法显示变量j时,该变量的值为多少?

A. 21

B. 42

C. 40

D. 20

32.下面关于缺省构造方法的描述中正确的是()

A.当类中没有定义任何构造方法时,Java编译器将为这个类创建缺省构造方法

B. 缺省构造方法可以初始化其他方法中定义的变量

C. Java编译器会为所有的类创建缺省构造方法。

D. 如果在一个类中定义的构造方法都声明了参数,Java编译器将为这个类创建一个缺省构造方法

1.有关线程的哪些叙述是对的。

A.一旦一个线程被创建,它就立即开始运行。

B. 当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

C. 使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

D. 一个线程可能因为不同的原因停止(cease)并进入就绪状态。

2.关于finally块中的代码描述正确的是:

A. 关于finally块中的代码描述正确的是:

B. 异常没有发生时才被执行

C. 如果try块后没有catch块时,finally块中的代码才会执行

D. 异常发生时才被执行

3.下列代码编译和执行后的结果是

public class Test {

public void myMethod(Object o) {

System.out.println("My Object");

}

public void myMethod(String s) {

System.out.println("My String");

}

public static void main(String args[]) {

Test t = new Test();

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 详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。 package net.study; public class TestConStructor { public TestConStructor() {

} public void TestConStructor() { } public static void main(String[] args) { TestConStructor testConStructor = new TestConStructor(); testConStructor.TestConStructor(); } } 4.提供Java存取数据库能力的包是() 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 详解: java 中没有<> := 这种运算符,if else不算运算符 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是()

java多线程面试题

java多线程面试题 1.什么是多线程编程?什么时候使用? 多线程一般用于当一个程序需要同时做一个以上的任务。多线程通常用于GUI交互程序。一个新的线程被创建做一些耗时的工作,当主线程保持界面与用户的交互。 2.为什么wait(),notify()和notifyall()函数定义在Object类里面? 因为所有类都是继承于Object类,这样所有类就可以简单的进行多线程编程了。 3.wait()方法和sleep()方法有什么不同? sleep()方法执行后仍然拥有线程,只是延时。而wait方法放弃了线程控制,其它线程可以运行,想要再次运行是要重新开始。 4.Thread和Runnable有什么不同? JA V A线程控制着程序执行的主路径。当你用java命令调用JVM时,JVM创建了一个隐式线程来执行main方法。Thread类提供了主线程调用其它线程并行运行的机制。 Runnable接口定义了一个能被Thread运行的类。实现Runnable的类只需要实行run方法。可以很灵活的扩展现在的已经继承自其它父类的类。而thread则不可以,因为java 只允许继承一个父类。 Runnable可以共享数据,Thread是一个类,而Runnable是一个接口 5.我可以重载start()方法么? 可以重载,重载后还要重载run()方法, 9.编译运行下面的代码会发生什么? 1.public class Bground extends Thread{ 2.public static void main(String argv[]) 3.{ 4. Bground b = new Bground(); 5. b.run(); 6.} 7.public void start()

java经典面试题汇总

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

Java工程师面试题(含答案)

1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗 基本数据类型包括byte、int、char、long、float、double、boolean和short。 类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 6、int 和Integer 有什么区别 Java提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int 提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。 7、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String 类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。 8、运行时异常与一般异常有何异同 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 9、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求

JAVA 面试题总览(书签完整版)

JAVA面试题总览 JAVA基础 1.JAVA中的几种基本数据类型是什么,各自占用多少字节。 2.String类能被继承吗,为什么。 3.String,Stringbuffer,StringBuilder的区别。 4.ArrayList和LinkedList有什么区别。 5.讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数, 字段,当new的时候,他们的执行顺序。 6.用过哪些Map类,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么, 他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。 7.JAVA8的ConcurrentHashMap为什么放弃了分段锁,有什么问题吗,如果你来设计, 你如何设计。 8.有没有有顺序的Map实现类,如果有,他们是怎么保证有序的。 9.抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多个接 口么。 10.继承和聚合的区别在哪。 11.IO模型有哪些,讲讲你理解的nio,他和bio,aio的区别是啥,谈谈reactor模型。 12.反射的原理,反射创建类实例的三种方式是什么。 13.反射中,Class.forName和ClassLoader区别。 14.描述动态代理的几种实现方式,分别说出相应的优缺点。 15.动态代理与cglib实现的区别。 16.为什么CGlib方式可以对接口实现代理。 17.final的用途。 18.写出三种单例模式实现。 19.如何在父类中为子类自动完成所有的hashcode和equals实现?这么做有何优劣。 20.请结合OO设计理念,谈谈访问修饰符public、private、protected、default在应 用设计中的作用。 21.深拷贝和浅拷贝区别。 22.数组和链表数据结构描述,各自的时间复杂度。 23.error和exception的区别,CheckedException,RuntimeException的区别。 24.请列出5个运行时异常。 25.在自己的代码中,如果创建一个https://www.360docs.net/doc/d15864100.html,ng.String类,这个类是否可以被类加载器加 载?为什么。

JAVA框架面试题汇总

1.SpringMVC Framework的理解: 1、它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是java组件。并且和Spring提供的其他基础结构紧密集成 2、不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet的) 3、可以任意使用各种视图技术,而不仅仅局限于JSP 4、支持各种请求资源的映射策略 5、它应是易于扩展的 2.简单的谈一下SpringMVC的工作流程? 流程? 1、用户发送请求至前端控制器DispatcherServlet? 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。? 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。? 4、DispatcherServlet调用HandlerAdapter处理器适配器? 5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。? 6、Controller执行完成返回ModelAndView? 7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet? 8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器? 9、ViewReslover解析后返回具体View? 10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。? 11、DispatcherServlet响应用户 3.如何解决POST请求中文乱码问题,GET的又如何处理呢? 在web.xml中加入: . .CharacterEncodingFilter . .???? .????????encoding .?????? utf-8

Java面试题带答案

J a v a面试题带答案 Document number:BGCG-0857-BTDO-0089-2022

湖南世杰Java工程师面试题 选择题: 单选题 1,以下java程序代码,执行后的结果是( ) map= ("name",null); ("name","Jack"); 0 B: null C: 1 D: 2 答案:C 2,执行以下程序后的输出结果是( ) Public class Test { Public static void main(String[] args) { StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); operator(a, b);

+","+ b); } Public static void operator(StringBuffer x, StringBuffer y) { (y); y = x; } } A: A,A B: A,B C: B,B D: AB,B 答案:D 3,关于依赖注入,下列选项中说法错误的是( ) A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装 B:依赖注入使组件之间相互依赖,相互制约 C:依赖注入提供使用接口编程 D:依赖注入指对象在使用时动态注入 答案:B

4,关于spring说法错误的是( ) A: spring是一个轻量级JAVA EE的框架集合 B: spring是“依赖注入”模式的实现 C: 使用spring可以实现声明事务 D: spring提供了AOP方式的日志系统 答案:D 5,要在session对象中保存属性,可以使用以下哪个语句( ) A: (“key”,”value”) B: (“key”,”value”) C: (“key”) D: (“key”) 答案:B 6,关于以下程序代码的说明正确的是( ) Public class HasStatic{ Private static int x = 100; Public static void main(String args[]){

多线程常见面试题

1)现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完 后执行? T1.start(); T1.join(); T2.start(); T2.join(); T3.start() 2)11) 为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run() 方法? start()方法最本质的功能是从CPU中申请另一个线程空间来执行run()方法中的代码,它和当前的线程是两条线,在相对独立的线程空间运行 ,也就是说,如果你直接调用线程对象的run()方法,当然也会执行,但那是在当前线程中执行,run()方法执行完成后继续执行下面的代码.而调用start()方法后,run()方法的代码会和当前线程并发(单CPU)或并行(多CPU)执行。 调用线程对象的run方法不会产生一个新的线程 3)在java中wait和sleep方法的不同? sleep()睡眠时,保持对象锁,仍然占有该锁; 而wait()睡眠时,释放对象锁。 sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会; sleep()是Thread类的Static(静态)的方法;因此他不能改变对象的机锁,所以当在一个Synchronized块中调用Sleep()方法是,线程虽然休眠了,但是对象的机锁并木有被释放,其他线程无法访问这个对象(即使睡着也持有对象锁)。 在sleep()休眠时间期满后,该线程不一定会立即执行,这是因为其它线程可能正在运行而且没有被调度为放弃执行,除非此线程具有更高的优先级。 wait()方法是Object类里的方法;当一个线程执行到wait()方法时,它就进入到一个和该对象相关的等待池中,同时失去(释放)了对象的机锁(暂时失去机锁,wait(long timeout)超时时间到后还需要返还对象锁);其他线程可以访问; wait()使用notify或者notifyAlll或者指定睡眠时间来唤醒当前等待池中的线程。 wiat()必须放在synchronized block中,否则会在program runtime时扔出”https://www.360docs.net/doc/d15864100.html,ng.IllegalMonitorStateException“异常。 4)为什么wait, notify 和notifyAll这些方法不在thread类里面? 因为这些是关于锁的 而锁是针对对象的 锁用于线程的同步应用 决定当前对象的锁的方法就应该在对象中吧 我是这么理解的希望对你有帮助

2019最新Java面试题,常见面试题及答案汇总

ava最新常见面试题+ 答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和JVM 模块的知识,读者朋友们可根据自己的情况,选择对应的模块进行阅读。 适宜阅读人群 需要面试的初/中/高级java 程序员 想要查漏补缺的人 想要不断完善和扩充自己java 技术栈的人 java 面试官 具体面试题 下面一起来看208 道面试题,具体的内容。 一、Java 基础 1.JDK 和JRE 有什么区别? 2.== 和equals 的区别是什么? 3.两个对象的hashCode()相同,则equals()也一定为true,对吗? 4.final 在java 中有什么作用? 5.java 中的Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们之间有什么区别? 8.String str="i"与String str=new String(“i”)一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用final 修饰吗?

14.接口和抽象类有什么区别? 15.java 中IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有哪些? 19.Collection 和Collections 有什么区别? 20.List、Set、Map 之间的区别是什么? 21.HashMap 和Hashtable 有什么区别? 22.如何决定使用HashMap 还是TreeMap? 23.说一下HashMap 的实现原理? 24.说一下HashSet 的实现原理? 25.ArrayList 和LinkedList 的区别是什么? 26.如何实现数组和List 之间的转换? 27.ArrayList 和Vector 的区别是什么? 28.Array 和ArrayList 有何区别? 29.在Queue 中poll()和remove()有什么区别? 30.哪些集合类是线程安全的? 31.迭代器Iterator 是什么? 32.Iterator 怎么使用?有什么特点? 33.Iterator 和ListIterator 有什么区别? 34.怎么确保一个集合不能被修改?

java笔试题及答案

java笔试题及答案(必背) 来源:黄德洋的日志 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√× friendly √√ × × private √××× 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实 现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static 内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的

百一测评——Java经典面试题 带答案

职业技能题库&在线云笔试平台https://www.360docs.net/doc/d15864100.html, 试卷名称:Java经典面试题带答案 试卷描述:java笔试题目、招聘笔试、微信考试、在线考试 试卷链接:https://www.360docs.net/doc/d15864100.html,/store/open/paperInfo/41651 试卷限时:50分 一.单项选择题 每题分值:2.5分 是否题目乱序:是 是否选项乱序:是 是否可回溯:是 难度:中 1.[单选]Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.[单选]下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确

职业技能题库&在线云笔试平台https://www.360docs.net/doc/d15864100.html, 答案: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.360docs.net/doc/d15864100.html,ng D.java.swing 答案:A 5.[单选]下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.[单选]执行如下程序代码 a=0;c=0;

职业技能题库&在线云笔试平台https://www.360docs.net/doc/d15864100.html, do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C 7.[单选]下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.[单选]下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象

javaWeb面试题(含答案)

1、jsp和servlet的区别、共同点、各自应用的围?? JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层. 2、cookie和session的作用、区别、应用围,session的工作原理??? Cookie:主要用在保存客户端,其值在客户端与服务端之间传送,不安全,存储的数据量有限。 Session:保存在服务端,每一个session在服务端有一个sessionID作一个标识。存储的数据量大,安全性高。占用服务端的存资源。 3、jstl是什么?优点有哪些?? JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。优点有: 1、在应用程序服务器之间提供了一致的接口,最大程序地提高了WEB应用在各应用服务器之间的移植。 2、简化了JSP和WEB应用程序的开发。 3、以一种统一的方式减少了JSP中的scriptlet代码数量,可以达到没有任何scriptlet 代码的程序。在我们公司的项目中是不允许有任何的scriptlet代码出现在JSP中。 4、允许JSP设计工具与WEB应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE 开发工具出现。 4、j2ee的优越性主要表现在哪些方面?MVC模式 a、 J2EE基于JAVA 技术,与平台无关 b、 J2EE拥有开放标准,许多大型公司实现了对该规支持的应用服务器。如BEA ,IBM,ORACLE

精选大厂java多线程面试题50题

Java多线程50题 1)什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。 2)线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。更多详细信息请点击这里。 3)如何在Java中实现线程? https://www.360docs.net/doc/d15864100.html,ng.Thread类的实例就是一个线程但是它需要调用https://www.360docs.net/doc/d15864100.html,ng.Runnable接口来执行,由于线程类本身就是调用的 Runnable接口所以你可以继承https://www.360docs.net/doc/d15864100.html,ng.Thread类或者直接调用Runnable接口来重写run()方法实现线程。 4)Thread类中的start()和run()方法有什么区别? 这个问题经常被问到,但还是能从此区分出面试者对Java线程模型的理解程度。start()方法被用来启动新创建的线程,而且start()内部调用了run()方法,这和直接调用run()方法的效果不一样。当你

调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启动,start()方法才会启动新线程。 5)Java中Runnable和Callable有什么不同? Runnable和Callable都代表那些要在不同的线程中执行的任务。Runnable从JDK1.0开始就有了,Callable是在JDK1.5增加的。它们的主要区别是Callable的call()方法可以返回值和抛出异常,而Runnable的run()方法没有这些功能。Callable可以返回装载有计算结果的Future对象。 6)Java内存模型是什么? Java内存模型规定和指引Java程序在不同的内存架构、CPU 和操作系统间有确定性地行为。它在多线程的情况下尤其重要。 Java内存模型对一个线程所做的变动能被其它线程可见提供了保证,它们之间是先行发生关系。 ●线程内的代码能够按先后顺序执行,这被称为程序次序 规则。 ●对于同一个锁,一个解锁操作一定要发生在时间上后发 生的另一个锁定操作之前,也叫做管程锁定规则。 ●前一个对Volatile的写操作在后一个volatile的读操作之 前,也叫volatile变量规则。 ●一个线程内的任何操作必需在这个线程的start()调用之 后,也叫作线程启动规则。 ●一个线程的所有操作都会在线程终止之前,线程终止规

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

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

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

Java面试题大全(答案版)

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以,但是只能有一个类用public修饰,并且用public修饰的类名与文件名要一致 2、&和&&的区别。 &和&&都可以用作逻辑与; &&还具有短路功能,即如果第一个表达式的结果为false,则不再计算第二个表达式; &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。 3、Java有没有goto? java中的保留字,现在没有在java中使用。 4、在JAVA中,如何跳出当前的多重嵌套循环? break+变量控制与return 5、switch是否能作用在byte(拜特)上,是否能作用在long上,是否能作用在String上? Switch可以作用在int上,而byte可以隐式转换为int 所以能作用在byte上 不能作用在long上,也不能作用在String上 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 1在java中为int数据类型,short+int=int,大类型转为小类型,编译时,会报告需要强制转换类型的错误。s1+=1不会报,因为JVM会对它特殊处理(自动强转) 7、char型变量中能不能存贮一个中文汉字?为什么? 可以,char型变量是用来存储unicode(依妮Q特)编码的,而unicode编码包含了中文,所以是可以保存的 8、编程题: 用最有效率的方法算出2乘以8等於几? 2<<3,表示将2左移3位;一个数左移几位就表示这个数乘以了2的几次方,左移运算,CPU直接支持,所以是最有效率的 9、请设计一个一百亿的计算器 思路:用两个数组分别保存两个操作数,再新建一个数组保存结果。 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 引用变量不能变 11、"=="和equals方法究竟有什么区别? ==和equals方法都可以用来比较两个对象是否是同一个对象。 ==还可以比较两个变量的值是否相等。 equals是Object类中的方法,可以由子类重写此方法,实现内容相等。 12、静态变量和实例变量的区别? 语法上不同: 静态变量前要加static关键字,实例变量不需要 程序运行时不同: 实例变量是属于某个对象的,只有创建了对象,才会为这个对象的实例变量分配空间。静态变量是属于类的,当程序加载了这个类的字节码文件,就会为静态变量分配空间,并且所有对象共享这个变量 13、是否可以从一个static方法内部发出对非static方法的调用? 不可以,非static方法需要与对象关联在一起的,而static方法调用时不需要对象,可以直接调用,也就是说调用static方法时,可能还没有创建任何实例 14、Integer与int的区别 int是java中的8种基本数据类型之一,默认值是0,Integer是int的包装类,默认值是null,即Integer可以表示未赋值和赋值为0 15、(麦死)Math.round(乱的)(11.5)等於多少? Math.round(-11.5)等於多少?

java面试题大全(整理版)

2018年(整理版) 1、面向对象的特征有哪些方面? - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承的类叫父类(超类、基类)、得到继承的类叫子类(派生类)。 - 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。 - 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。实现多态需要做两件事:1). 方法重写(子类继承父类并重写父类中的方法);2). 对象造型(用父类型引用引用子类型对象,

这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为) 2、访问修饰符public,private,protected,以及不写(默认)时的区别? 3、String 是最基本的数据类型吗? 答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。 4、float f=3.4;是否正确? 答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。

华为java笔试面试题

华为Java笔试题+数据库题 一、单项选择题 1.Java是从( B)语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确(B ) A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 3.下列说法正确的有(C ) A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 4.提供Java存取数据库能力的包是( A) A.java.sql B.java.awt C.https://www.360docs.net/doc/d15864100.html,ng D.java.swing 5.下列运算符合法的是( A) A.&& B.<> C.if D.:= 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是(C ) A.0 B.1 C.-1 D.死循环 7.下列哪一种叙述是正确的( D) A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 8.下列语句正确的是( C) A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 9.下列哪种说法是正确的(A ) A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 二、多项选择题 1.Java程序的种类有(BCD ) A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有( BCD) A.环境变量可在编译source code时指定

15个Java多线程面试题及答案

15个Java多线程面试题及答案 1)现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用join方法实现。 2)在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它? lock接口在多线程和并发编程中最大的优势是它们为读和写分别提 供了锁,它能满足你写像ConcurrentHashMap这样的高性能数据结构和有条件的阻塞。Java线程面试的问题越来越会根据面试者的回答来提问。芯学苑老师强烈建议在你在面试之前认真读一下Locks,因为当前其大量用于构建电子交易终统的客户端缓存和交易连接空间。 3)在java中wait和sleep方法的不同?

通常会在电话面试中经常被问到的Java线程面试问题。最大的不同是在等待时wait会释放锁,而sleep一直持有锁。Wait通常被用于线程间交互,sleep通常被用于暂停执行。 4)用Java实现阻塞队列。 这是一个相对艰难的多线程面试问题,它能达到很多的目的。第一,它可以检测侯选者是否能实际的用Java线程写程序;第二,可以检测侯选者对并发场景的理解,并且你可以根据这个问很多问题。如果他用wait()和notify()方法来实现阻塞队列,你可以要求他用最新的Java 5中的并发类来再写一次。 5)用Java写代码来解决生产者——消费者问题。 与上面的问题很类似,但这个问题更经典,有些时候面试都会问下面的问题。在Java中怎么解决生产者——消费者问题,当然有很多解决方法,我已经分享了一种用阻塞队列实现的方法。有些时候他们甚至会问怎么实现哲学家进餐问题。 6)用Java编程一个会导致死锁的程序,你将怎么解决?

相关文档
最新文档