JAVA面试题( - 华为)(答案) 联系客服

发布时间 : 星期一 文章JAVA面试题( - 华为)(答案)更新完毕开始阅读100155a85727a5e9856a61e1

2、 实现java.lang.Runnable接口,实现它的run()方法,并将线程的执行主体放入其中。 如何实现线程同步:

给一个方法增加synchronized修饰符之后就可以使它成为同步方法,这个方法 可以是静态方法和非静态方法,但是不能是抽象类的抽象方法,也不能是接口中的接口方法

12:中的异常处理机制的简单和应用。

当Java程序违反了Java的语义规则时,Java虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是Java类库内置的语义。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是Java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类

13:线程同步的方法(类里有哪些方法来支持线程同步)。

wait():使一个线程处于等待状态,并且释放所持有的对象的lock。

sleep():使一个正在运行的线程处于睡眠状态,是静态方法,调用此方法要捕捉InterruptedException异常。 notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切地唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

14. Error与Exception有什么区别

Error表示系统级的错误和程序不必处理的异常, Exception表示需要捕捉或者需要程序进行处理的异常。

15.谈谈final, finally, finalize的区别。

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

finally—异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的

二、 Javascript相关

1. 如何弹出带确认取消按钮的提示框,如”确定保存吗?”,以及如何实现带输入框的提示框?

confirm(“确定保存吗?”) prompt(“输入意见”)

2. Javascript有哪些打开一个页面的方式?

window.open(sURL [, vArguments] [,sFeatures]) 新页面

window.showmodaldialog(sURL [, vArguments] [,sFeatures]) 模态对话框 window.showModelessDialog(sURL [, vArguments] [,sFeatures]) 非模态对话框 3. 页面加载完后调用js方法如何实现?

body标签加onload事件,如

4. Javascript如何做到在子页面中调用父页面的js函数或全局变量(如test()函数,test变量)?

window.opener.test(); Window.opener.test = “abc”; 5. Javascript中定时执行如何实现?

setTimeout();定时执行,执行一次。clearTimeout(定时器对象名)结束 setInterval();定时执行,一直执行。clearInterval(定时器对象名)结束 两种区别:

setTimeout();定时执行,执行一次。clearTimeout(定时器对象名)结束; setInterval();定时执行,一直执行。clearInterval(定时器对象名)结束 6. innerHTML和outerHTML的区别是什么?

innerHTML取页面元素标签内部的内容,outerHTML取包含元素标签的内容,如test,innerHTML取到test,outerHTML取到test. 7. javascript如何做到页面局部刷新?

使用AJAX。原理:获取一个请求对象,向指定url发送请求,当请求完成时(状态4),获取到请求返回内容,并将内容填充到页面局部。

8. 有如下表格,如何通过这个按钮取到该格所在的表,以及如何取到该表格的第二行中的hello值?

通过按钮取到表格:table = button.parentElement.parentElement.parentElement; (主要看是否掌握元素的parentElement方法)。

通过表格取到hello值:str = table.childNodes[1].childNodes[0].innerHTML;(主要看是否掌握元素的childNodes方法)。

hello    

三 数据库相关

1. 存储过程和函数的区别?

存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。

2. oracle中truncate和delete命令有何区别?

delete将在回滚段中产生回滚信息,truncate不产生,因此无论表中的记录多少,truncate执行都很快

truncate 是 DDL,执行隐含的commit,truncate不能回滚

3. Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型有何区别? A:char是定长字符类型,varchar2是变长字符类型。“test”在char(10)中被补齐空格,存储

长度是10字节,在varchar2(10)中存储长度是4字节

4. 假如系统中有如下四张表: 1)文档表(DOC):编号(docid)、名称(docname)、描述(docdesc);docid为主键,docname有索引;

2)学生表(XS):学生代码(XSDM)、学生名称(XSMC); 3)学科表(XK):学科代码(XKDM)、学科名称(XKMC)、最高分数(ZGF); 4)成绩表(CJ):学生代码(XSDM)、学科代码(XKDM)、成绩(CJ)。

问题1 写出您最常用SQL语句的关键字

问题2以下查询的处理速度(返回数据量相同)从高到低排列?

A、select * from doc where docname=’test’ B、select * from doc where docid=50 C、select * from doc where docdesc=’test’

问题3 列出有不及格(<底于60分)的学生姓名(SQL语句)

问题4 统计每个学生的总分(SQL语句):

问题5 列出没有不及格(>=60分)的学生姓名及平均分(SQL语句):

Select b.XSMC,avg(a.CJ) FROM CJ a left join XS b on a.XSDM = b.XSDM group by a.XSDM