java软件工程师面试的内容大多是:
java、javascript、数据库三大块知识。
一、先说java部分:
会问到String、StringBuffer、StringBuilder的效率和区别:
1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String
String是“字符创常量”,也就是不可改变的对象,这就是String 和其他的区别。
2.重载和重写的区别:
1.重写必须继承,重载不用。 2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。 3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。 4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常二、数据库部分
1.truncate和delete的区别:
1.TRUNCATE TABLE是非常快的
2.TRUNCATE之后的自增字段从头开始计数了,而DELETE的仍保留原来的最大数值
相同点
truncate和不带where子句的delete, 以及drop都会删除表内的数据
不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).
4.速度,一般来说: drop>; truncate >; delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及
三、javascrtipt部分
- innerHTML 设置或获取位于对象起始和结束标签内的 HTML
- outerHTML 设置或获取对象及其内容的 HTML 形式
- innerText 设置或获取位于对象起始和结束标签内的文本
- outerText 设置(包括标签)或获取(不包括标签)对象的文本