第一篇:JAVA应聘笔试题目与答案
1.Java中的异常处理机制的简单原理和应用。
当java程序违反了java的语义规则时,java虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是java类库内置的语义检查。例如数组下标越界,会引发indexoutofboundsexception;访问null的对象时会引发nullpointerexception。另一种情况就是java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.thowable的子类。
2.在java中,程序员能否实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收?
java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
3.error与exception有什么区别?
error表示系统级的错误和程序不必处理的异常,exception表示需要捕捉或者需要程序进行处理的异常。
4.在java中一个类被声明为final类型,表示了什么意思?
表示该类不能被继承,是顶级类。下段脚本是否有错?如有错,请指出;若无错,请说明输出内容。
1)class Something {
2)int i;
3)public void doSomething(){
4)System.out.println(“i = ” + i);
5)}
6)}
正确。输出的是“i = 0”。int i属於instant variable(实例变量,或叫成员变量)。instant variable有default value。int的default value是0。
6谈谈final, finally, finalize的区别。
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使
用,不能重载。
finally—异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
7&和&&的区别。
&是位运算符。&&是布尔逻辑运算符。
8gc是什么? 程序中如何调用gc?。
gc是垃圾收集器。java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
system.gc()
runtime.getruntime().gc()math.round(11.5)等於多少? math.round(-11.5)等於多少?
math.round(11.5)返回(long)12,math.round(-11.5)返回(long)-11;short s1 = 1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错?
short s1 = 1;s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1)。short s1 = 1;s1 += 1正确。
11java有没有goto?
goto—java中的保留字,现在没有在java中使用。数组有没有length()这个方法? string有没有length()这个方法?
数组没有length()这个方法,有length的属性。
string有length()这个方法。overload和override的区别。overloaded的方法是否可以改变返回值的类型?
方法的重写overriding和重载overloading是java多态性的不同表现。重写overriding是父类与子类之间多态性的一种表现,重载overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(overloading)。
overloaded的方法是可以改变返回值的类型。请列举所知道的最常见到的runtime exception。
arithmeticexception, arraystoreexception, bufferoverflowexception, bufferunderflowexception, cannotredoexception, cannotundoexception, classcastexception, cmmexception,concurrentmodificationexception, domexception,emptystackexception, illegalargumentexception, illegalmonitorstateexception, illegalpathstateexception, illegalstateexception,imagingopexception, indexoutofboundsexception, missingresourceexception, negativearraysizeexception, nosuchelementexception, nullpointerexception, profiledataexception, providerexception, rasterformatexception, secur
ityexception, systemexception, undeclaredthrowableexception, unmodifiablesetexception, unsupportedoperationexceptionlist, set, map是否继承自collection接口?
list,set是
map不是接口是否可继承接口? 抽象类是否可实现(implements)接口?
接口可以继承接口。抽象类可以实现(implements)接口。启动一个线程是用run()还是start()?
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由jvm调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。
18是否可以继承string类?
string类是final类故不可以继承。try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行,在return前执行。
20用最有效率的方法算出2乘以8等於几?<< 3两个对象值相同(x.equals(y)== true),但却可有不同的hash code,这句话对不对?
不对,有相同的hash code。
22当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
23swtich是否能作用在byte上,是否能作用在long上,是否能作用在string上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、short、char 或者 byte。long,string 都不能作用于swtich。
24、public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE,-1);
System.out.println(cal.getTime());
}
}
1.创建库表EMP(雇员)、EMP_ADD_INFO(雇员附加信息)脚本如下
create table EMP(DEP_NOVARCHAR2(20)not null,EMP_IDVARCHAR2(20)not null,EMP_NAME VARCHAR2(64),SALARYNUMBER(10,2),EMP_GENDERVARCHAR2(2));
--Add comments to the columns
comment on column EMP.DEP_NO
is '部门代码';
comment on column EMP.EMP_ID
is '雇员代码';
comment on column EMP.EMP_NAME
is '雇员姓名';
comment on column EMP.SALARY
is '薪水';
comment on column EMP.GENDER
is '性别,M男士,F女士';
create table EMP_ADD_INFO(EMP_IDVARCHAR2(20)not null,EMP_WNUMBER(10,2),EMP_HNUMBER(10,2));
--Add comments to the columns
comment on column EMP.EMP_ID
is '雇员代码';
comment on column EMP.EMP_W
is '雇员体重';
comment on column EMP.EMP_H
is '雇员身高';
1)请写一个SQL语句,查询部门’001’中薪水最高的雇员信息;
SELECT E.*
FROM EMP E
WHERE E.DEP_NO = '001'
AND E.SALARY =(SELECT MAX(EE.SALARY)
FROM EMP EE
WHERE EE.DEP_NO = E.DEP_NO);
2)请写一个SQL语句,统计各部门人员数量信息,要求结果按照部门代码降序排列; SELECT E.DEP_NO,COUNT(*)
FROM EMP E
GROUP BY E.DEP_NO
ORDER BY E.DEP_NO DESC;
3)请写一个SQL语句,统计每个部门员工的数目大于一个的记录
SELECT E.DEP_NO
FROM EMP E
GROUP BY E.DEP_NO
HAVING COUNT(*)> 1;
4)若库表 EMP 无主键、无索引,表中存在大量完全相同的记录,请使用sql语句删除重
复记录。
通过建立临时表来实现
SQL>create table temp_emp as(select distinct * from emp)
SQL>truncate table emp;(清空emp表的数据)
SQL>insert into emp select * from temp_emp;(灌入处理后好的数据)
通过使用rowid来实现。
SQL>delete from employee where rowid not in(select max(t1.rowid)from employee t1 group by
t1.emp_id,t1.emp_name,t1.salary);--这里用min(rowid)也可以。
5)请写一个SQL语句,查询身高不小于175公分,体重少于等于85公斤的男雇员信息。SELECT A.*
FROM EMP E,EMP_ADD_INFO A
WHERE E.EMP_ID = A.EMP_ID
AND E.EMP_W <= 85
AND E.EMP_H >= 175
AND A.EMP_ GENDER = ‘M’
第二篇:JAVA程序员笔试题目(模版)
JAVA程序员笔试题目
1、有一个Vector对象,其中每一个元素都是一个String对象,请用For循环或者While循环输出Vector中的元素,要求格式为:“第i个元素为:aaa”
2、答:
3、Iterator it=Vector.iterat();
4、While(it.hasNext()){
5、String temp=(String)it.next();System.out.print(第一个元素为:);System.out.println(temp);6、7、}
8、Jsp有哪些内置对象,作用分别是什么?
9、答:request,response,pageContext,session,application,out.config,page,exception等
10、在try {}里面有一个return语句,那么紧跟在try{}后的finally{}里面的 code是否会被执行,是什么时候执行,在return之前还是之后。答:
11、面向对象的基本特征是什么?
12、答:继承,封装,多态,13、页面之间传递参数的方法有哪些?
14、答:利用request,pageContext,session,application,cookie对象都可以
15、Servlet中什么时候调用doGet()和doPost()?这两种方法有什么不同?
16、答:当表单是用get方法提交时,调用doGet(),反之调用doPost();
17、页面中有一个名称为unitprice的type=text的对象。要求输入的数据不能为空,写一个函数实现该功能,如果为空是给出提示。(用JavaScript语言写出)答: