Java基础面试题及答案(在后面)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA基础部分-选择题

(单选)1.在Java语言中,字符串“Java程序员”在内存中所占用的字节数是:()。

A.10

B.7

C.13

D.14

2. (单选)下列表达式中,可以得到精确结果的是()。

A.double d1 = 3.0 - 2.6;

B.double d4 = 2.5 * 1.5;

C.double d2 = 30/300;

D.double d3 = 1/2 + 0.5;

3.(多选)所谓“水仙花”数是一个整数等于各位数字立方的和,例如:153 = 111+555+333,下面的程序用于输出2~1000内的水仙花数:

下列选项中,空白处可以填入的代码是:()。 A.int s = 0, n1 = n; while (n1 > 0) { int t = n1 % 10; s += t * t * t; n1 /= 10; }

B.int s = 0, n1 = n; while (n1 > 0) { int t = n1 / 10; s+= t * t * t; n1 %= 10; }

C.int s = 0; for(int n1 = n; n1>0; n1 /= 10) { int t = n1%10; s += t * t * t; }

D.int s = 0; for(int n1 = n; n1>0; n1 %= 10) { int t = n1 / 10; s += t * t * t; }

4.下列语句序列执行后,k 的值是 ( )

A.60

B.5

C.0

D.54

5.设 a = 8,则表达式 a >>> 2 的值是:(无符号右移动)( )

A.1

B.2

C.3

D.4

6.下列程序

在程序中插入下列哪一行代码可以编译通过: A static void doSomething(int[] args){}

B static void doSomething(int... args){}

C static coid doSomething(int...args,int x){}

D static void doSomething(int x,int...args){}

简答题

1.现有一个长度为20的数组,数组内的数字0-9之间的任意数字,统计出数组中每个元素出现的次数?

现有一个字符串"fdasafdasfdasa",现统计出子串"as"出现的次数.

2.请描述冒泡排序算法的基本思想。

3.一个数组中只有0,1两种数字,进行排序,0全部在前,1全部在后OOP部分

1.(单选)关于下列代码说法正确的是:

A.该类编译失败

B.输出:1

C.输出:3

D.输出:0

2.试图编译和运行以下代码,将获得什么结果(JAVA)

A RType.amethod -1 RType.amethod -1

B RType.amethod 99 RType.amethod -1

C 99 RType.amethod 99

D 编译时错误(Compile time error)

3、下边程序运行的结果是? ( )

A.Base

B.BaseBase

C.程序编译失败.

D.程序运行但没有任何输出

4.指出下列程序运行的结果

A.good and abc

B.good and gbc

C.test ok and abc

D.test ok and gbc

OOP部分-简答题

1.抽象类和接口的区别

2.静态变量和实例变量的区别?

3.String s = new String("xyz");创建了几个String Object ?

4.字符串连接时为什么推荐使用StringBuffer而不是直接用String+String 的方式,请简述原因?

5.final, finally, finalize的区别。

6.线程

继承Thread类如果某个类继承了Thread类,那么此时这个类就是一个线程类,如果要创建此类的线程对象 A extends Thread A a = new A(); a.start()

实现Runnable接口如果某个类实现了Runnable接口,此时这个类不是线程类,这个类中只有将线程要执行的任务写好了

生命周期:5种状态

新建,就绪,运行,阻塞,死亡

多线程并发问题:

脏数据:污染了数据 -前提条件:多个线程访问同一个对象

如何避免脏数据的产生:线程同步 - synchronized

可以用来修饰方法,代码块:本质是给对象加锁

如果修饰方法:给调用方法的对象(this)加锁

如果修饰代码块: sychronized(要加锁的对象){} 一般情况下,加锁的对象都为this

线程间的通信 - 线程间要交流

生产者消费者

Object类下的几个方法来实现了线程间的通信

wait() :一定出现在sychronized的方法中

notify() notifyAll()

线程池:

Excutors.newFixedThreadPool(int nThread) - ExcutorService

execute()

ThreadLocal:将数据绑定到当前线程上,那么在整个线程过程中都可以使用该数据

IO流: RandomAccessFile:随机访问流(任意访问流)

特殊之处:

1.这个流既可以读文件,也可以写文件

2.可以定位到文件的任意位置,而且可以获取当前的偏移量

RandomAccessFile(File dest,String mode)

read() write() - 按照字节

seek(long pos)

getFilePointer() - long

数据库部分-选择题

1.当在执行过程中,如果QUANTITY的值是空的话,哪个语句将显示一个0?

A.SELECT id_number,100/quantity FROM inventory;

B.SELECT id_number,NVL(100/quantity,0) FROM inventory;

C.SELECT id_number,NULL(100/quantity,0) FROM inventory;

D.SELECT id number,TO CHAR(100/quantity,0) FROM inventory;

2.分析下面SQL语句,在什么情况下引起这个语句失败?STUDEN表结构:ID NUMBER(9) FIRST NAME VARCHAR2(25) LAST NAME VARCHAR2(25)

相关文档
最新文档