主要包含:java基础,简单算法,项目,逻辑
【面试情况不太好,但面试官很nice,给了一些很中肯的建议】
1. Float的存储
2. JVM调优
3. 详述2个项目
4. 权限控制,角色控制
5. 与hibernate有相似的架构mybaits
6. 是否看过jquery源码?
7. 是否看过各种框架的源码,了解其中思想?
8. 设计模式了解哪些,单例模式的应用场景?
9. 简单的sql
10. 逻辑:2个鸡蛋,确定最大高度?
11. 数组2层嵌套循环,大循环放在里面还是外面?
12. 画出基本的java容器结构
13. 计算出连续3个数最大和值?
for循环嵌套问题
1、两种写法,循环中的方法体执行的次数都是相同的,那么,两种方法的区别就只能从循环变量i、j的实例化、初始化、比较、自增等方面的耗时上进行分析。
2、在嵌套for循环中,将循环次数多的循环放在内侧,循环次数少的循环放在外侧,其性能会更好。如果在循环次数较少的情况下,其运行效果区别不大,但在循环次数较多的情况下,其效果就比较明显了。
3、很详细的1篇案例 http://cgs1999.iteye.com/blog/1596671
方式一:
for (int i = 0; i < 1000; i++)
for (int j = 0; j < 100; j++)
for (int k = 0; k < 10; k++)
testFunction (i, j, k);
变量 |
实例化(次数) |
初始化(次数) |
比较(次数) |
自增(次数) |
i |
1 |
1 |
1000 |
1000 |
j |
1000 |
1000 |
1000 * 100 |
1000 * 100 |
k |
1000 * 100 |
1000 * 100 |
1000 * 100 * 10 |
1000 * 100 * 10 |
方式二:
for (int i = 0; i < 10; i++)
for (int j = 0; j < 100; j++)
for (int k = 0; k < 1000; k++)
testFunction (k, j, i);
变量 |
实例化(次数) |
初始化(次数) |
比较(次数) |
自增(次数) |
i |
1 |
1 |
10 |
10 |
j |
10 |
10 |
10 * 100 |
10 * 100 |
k |
10 * 100 |
10 * 100 |
10 * 100 * 1000 |
10 * 100 * 1000 |
方式三
int i, j, k;
for (i = 0; i < 10; i++)
for (j = 0; j < 100; j++)
for (k = 0; k < 1000; k++)
testFunction (k, j, i);
变量 |
实例化(次数) |
初始化(次数) |
比较(次数) |
自增(次数) |
i |
1 |
1 |
10 |
10 |
j |
1 |
10 |
10 * 100 |
10 * 100 |
k |
1 |
10 * 100 |
10 * 100 * 1000 |
10 * 100 * 1000 |
参考:
JVM调优
http://hllvm.group.iteye.com/group/wiki/2858-JVM
单例模式应用场景
http://www.cnblogs.com/BrainDeveloper/p/3192417.html
Java中float的存储
http://blog.csdn.net/running8063/article/details/4093261
Sun JDK中gc算法
http://www.docin.com/p-417999249.html