java三年经验面试题_Java三年经验 - 面试总结

一轮面试下来,由最初的自信什么都能做,到现在感觉什么都不会做;但是面对面试官,却更坦然。

对自己还能记得起来的面试题,稍微整理一下。欢迎指正。

private、默认、protected、public作用范围

1)private,同类

2)默认,同类、同包

3)protected,同类,同包,子类

4)public,所有

String trim的实现原理

去掉首尾ASCII码值小于' '(空格)的字符

StringBuffer、StringBuilder区别

StringBuffer线程安全

StringBuilder线程不安全

抽象类与接口的异同

同:具有抽象方法

异:1)抽象类可以有构造器,非抽象方法,非公有属性,仅可以单继承抽象类

2)接口仅有公有抽象方法或者公有静态常量,可以同时实现多个接口

个人使用经验:一般在控制层使用抽象类,提取公共初始化方法、框架定制化工具方法等

一般会在业务层使用接口

List、Set、Collections区别

1)List,有序可重复

2)Set, 无序不可重复

3)Collections,集合工具类

列举键值容器

1)HashMap,实现Map,异步

2)Hashtable,实现Map,同时继承旧的Dictionary类,同步

3)Properties,Hashtable的子类,系统参数

算法:快速排序

public static void quickSort(int a[], int start, intend) {inti, j;

i=start;

j=end;if ((a == null) || (a.length == 0))return;while (i < j) {//查找基准点下标

while (i < j && a[i] <=a[j])//以数组start下标的数据为key,右侧扫描

j--;if (i < j) { //右侧扫描,找出第一个比key小的,交换位置

int temp =a[i];

a[i]=a[j];

a[j]=temp;

}while (i < j && a[i]

i++;if (i < j) { //找出第一个比key大的,交换位置

int temp =a[i];

a[i]=a[j];

a[j]=temp;

}

}if (i - start > 1) { //递归调用,把key前面的完成排序

quickSort(a, start, i - 1);

}if (end - j > 1) {

quickSort(a, j+ 1, end); //递归调用,把key后面的完成排序

}

}

inner join、left join、 right join区别

1)inner join,两表字段值相同

2)left join,两表字段值相同,以及左表字段有值,右表字段值为null

3)right join,与上相反

需要写sql的试题

一般会让查出值是最大的,用到子查询、组函数等

Reads(id, ip, cnt) ip不唯一,查出访问量最大的前10个ip并排序

select r.ip, r.s, rownum from (select ip, sum(cnt) s from reads group by ip order by s desc) r where r.rownum <= 10

数据库性能调优

1)经常做查询条件的字段建立序列

2)关联查询时,关联结果集,替代直接关联整张表;或者使用exists

jsp表单js校验

var name = document.getElementById('userName').value;

if (name == '')

{

alert('用户名不能为空');

return false;

}

Struts的Action是单例吗

1)Struts1的Action是单例且线程安全

2)Struts2的Action不是单例,针对每一请求产生一个实例

Hibernate与Mybatis区别

1)Hibernate,使用pojo实现orm,查询速度相比较慢,插入/更新开发容易

2)Mybaits,使用纯sql开发,执行效率较快,比较适合统计、多表关联查询

Hibernate状态

瞬时态:new对象

持久态:实例与数据库中记录对应,拥有持久化标识

游离态:session关闭;session打开,游离态转成持久态

ibatis中#与$的区别

1)#,变量替换,即prepareStament设置字段值,并可以匹配变量类型

2)$,字符串拼接,需要小心依赖注入

事务特性

1)原子性:诸多操作要么全做,要么全不做

2)一致性:事务执行结果使数据库从一个一致性状态变到另一个一致性状态

3)隔离性:事务执行不被其他事务影响

4)持久性:一旦提交,对数据库的改变是永久性的

spring mvc与struts2的区别

1)struts2封装展示层与控制层,展示层提供标签库及验证器,请求与应答需要配置文件

2)spring mvc是单纯的控制层框架,url实现零配置,运行效率提高

Spring IOC注入方式

1)配置文件中,配置属性,提供setter/getter方法

2)零配置,@Autowired,统一配置根据名称或者类型注入

Spring AOP思想

针对请求做统一预处理,如有效性校验;或后处理,如记录处理结果;针对方法加before或after处理

Spring事务配置

1)使用tx:advice,针对业务接口层,如以do、get等命名的方法,作事务配置

WebService技术

1)axis、xfire、cxf,基于soap,传输xml

2)restful风格

jvm性能调优

tomcat性能调优

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值