2018.5.28Java面试经验

1.斐波那契数列。 求第30个
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…… 

public class FeiBo{
    public static void main(String[] args) {
        int num1=0;
        int num2=1;
        int numn=1;
        int n=10;
        for (int i = 3; i <=n; i++) {
            numn=num1+num2;
            num1=num2;
            num2=numn;
        }
        System.err.println(n+"个数的结果为:"+numn);
    }
}

 

2.多态

 1 public int i = 3;
 2     /**
 3      * 
 4      * @Title: 测试Object会发生什么   
 5      * @Description: TODO(区别在10,11行)       
 6      * @return: Object多态,但是父类不能调用子类独有的方法,子类可以调用父类的方法。
 7      */
 8     public void test() {
 9         Object o = new Day1();//多态
10         Day1 test = (Day1)o;//父类强转成子类,拥有子类独有的变量和方法
11         Object test2 = (Day1)o;//多态,不能调用子类独有的方法属性
12         System.out.println(test.i);
13         //System.out.println(test2.i);//程序编译错误
14     }
15     public static void main(String[] args) {
16         Day1 dd = new Day1();
17         dd.test();
18     }

 

3.前序遍历中序遍历后续遍历(前序遍历也叫根序遍历)

前序遍历的规则:

(1)访问根节点

(2)前序遍历左子树

(3)前序遍历右子树

中序遍历的规则:

(1)中序遍历左子树

(2)访问根节点

(3)中序遍历右子树

(1)后序遍历左子树

(2)后序遍历右子树

(3)访问根节点

 

4.时间复杂度的计算

链接:https://blog.csdn.net/LF_2016/article/details/52453212

 

5.嵌套try catch inally

 1 /**
 2      * 
 3      * @Title: 嵌套try,Catch,Finally的finally怎么执行
 4      * @Description: TODO(看代码)       
 5      * @return: 先执行最里面的,从里往外
 6      */
 7     public void test2() {
 8         try {
 9             System.out.println("try1");
10             try {
11                 System.out.println("try2");
12             } catch (Exception e) {
13                 System.out.println("catch2");
14             }finally {
15                 System.out.println("finally2");
16             }
17         } catch (Exception e) {
18             System.out.println("catch1");
19         }finally {
20             i = i + 1;
21             System.out.println("finally1");
22         }
23     }

 

6.Mybatis的ognl表达式和el表达式的区别

链接:https://blog.csdn.net/u013399093/article/details/54095274

#{}:相当于JDBC中的PreparedStatement 
${}:是输出变量的值 
简单说,#{}是经过预编译的,是安全的;${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。

 

7.常用算法

8.htpp请求方法

地址:https://blog.csdn.net/ahaaaaa/article/details/51063598

HEAD 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
 GET 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在web app.中。其中一个原因是GET可能会被网络蜘蛛等随意访问。
 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
 PUT 向指定资源位置上传其最新内容。
 DELETE 请求服务器删除Request-URI所标识的资源。
 TRACE 返回显服务器收到的请求,主要用于测试或诊断。
 CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

9.mysql单索引和多索引区别

10.设计模式

 装饰着模式:嵌套把类放给父类存放

链接:https://www.cnblogs.com/suguowen/p/7773963.html

代理者模式:代理者存在真实者,代理方法其实是真实者调用的方法,但操作者的确是代理者

链接:https://www.cnblogs.com/suguowen/p/7774287.html

11.同步代码块,同步方法,同步静态方法,同步非静态方法的区别

https://blog.csdn.net/wang_keng/article/details/47837883

12.理解线程池的原理(臆想题)

https://blog.csdn.net/mine_song/article/details/70948223

13.drop和delete的区别是什么(臆想题)

当你不再需要该表时, 用 drop;
当你仍要保留该表,但要删除所有记录时, 用 truncate;
当你要删除部分记录时(always with a WHERE clause), 用 delete.
当你仍要保留该表,但要删除所有记录时, 用 truncate;
当你要删除部分记录时(always with a WHERE clause), 用 delete.

14.MySQL中MyISAM与InnoDB区别及选择(臆想题)

地址:https://blog.csdn.net/frycn/article/details/70158313

15.MySQL中的 MyISAM 读的效率高,InnoDB 写的效率高,原理是什么?(只针对这两种存储引擎的对比)

不存在这么简单的对比,如果这样,直接把要多读的表用MYISAM,要多写的表用InnoDB好了。

要考虑许多因素,我列举几条:

1、如果都可以缓存数据在内存中,速度不会有大的差异,此时获取数据的速度更决定于物理硬件的限制;

2、访问模式对访问速度有关系,如果并发高,表锁的表现一般比行锁差,因为你要处理并发冲突;

3、大部分小公司,或者早期的公司,用的是简单的MYISAM,他们对于性能的要求本来就不高,表的数据比较少,MYISAM此时“显得‘很块,如果数据量大了,公司发展了,业务逻辑关系复杂了。此时考验数据库的是缓存的设计,优化器的设计,一个这么简单的MYISAM引擎,怎么可能快得过InnoDB呢。MYISAM是借助操作系统来缓存数据的,操作系统是不知道优化数据库访问的,而InnoDB是用自己的缓存功能来加速访问的,要知道优化越靠近应用/数据侧才越有效果。


作者:Gary Chen
链接:https://www.zhihu.com/question/22146769/answer/225552882
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

16.

17.




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值