A面试

来源:互联网 发布:mac safari打不开网页 编辑:程序博客网 时间:2024/06/02 04:18

主要包含: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、两种写法,循环中的方法体执行的次数都是相同的,那么,两种方法的区别就只能从循环变量ij的实例化、初始化、比较、自增等方面的耗时上进行分析。 

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 

Javafloat的存储

http://blog.csdn.net/running8063/article/details/4093261 

Sun JDKgc算法

http://www.docin.com/p-417999249.html