java面试的主要问题有哪些?java常见面试问题

在进行java面试过程中,总有一些问题是经常问到的,用时这也说明这些问题很重要,作为面试人员需要掌握好,那java面试的主要问题有哪些?下面来我们就来给大家讲解一下。

1.String、StringBuffer、StringBuilder的区别?

他们都可以操作和存储字符串。

String是只读字符串,string引用的字符串内容是不能被改变的。

StringBuffer和StringBuilder类表示的字符串对象可以直接进行修改。

StringBuilder是java5之后引入的,与StringBuffer的区别是StringBuilder它是在单线程环境下使用的,所以效率要比StringBuffer高。

2..多态的原理是什么?

多态就是:允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。

原理是java的后期绑定。

3.简要描述面向对象编程的思想有哪些?

抽象:通过特定的实例抽取出共同的特征以后形成的概念的过程,它强调主要特征和忽略次要特征。

封装:把对象的属性和方法结合成一个独立的整体,隐藏实现细节,并提供对外访问的接口。

继承:从已知的一个类中派生出新的一个类,叫子类。子类实现了父类所有非私有化属性和方法,

并能根据自己的实际需求扩展出新的行为。

多态:多个不同的对象对同一消息作出响应,同一消息根据不同的对象而采用各种不同的行为方法。

4.hashcode和equals的用法是什么?

Java对于eqauls方法和hashCode方法是这样规定的:

如果两个对象相同,那么它们的hashCode值一定要相同;

如果两个对象的hashCode相同,它们并不一定相同(上面说的对象相同指的是用eqauls方法比较。)

一般在覆盖equals()方法的同时也要覆盖hashCode()方法,否则,就会违反Object.hashCode的通用约定,从而导致该类无法与所有基于散列值(hash)集合类(HashMap、HashSet和Hashtable)结合在一起正常运行。

5.如何优化一条sql?

第一步:理解sql业务,逻辑上是否可以优化;

第二步:explain sql执行计划,目测有没有该走的索引没有走;

第三步:查看有无常见影响效率的错误,如null,列上使用函数,or不走组合索引,join之前减少join列数;

第四步:增加合适的索引;

第五步:还不行,尝试限制需求(如只可以统计指定范围数据)或者其他方式实现(如定时任务定时分析一批);

第六步:数据量超大,只可以考虑分表分库等手段了。

其实在面试中,我们将java知识掌握好,并且从容面对,把自己做过的项目都说出来,这样面试还是很容易通过的,当然平时积累一些面试题也是有必要的。最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。

推荐阅读:

java小游戏如何制作?五子棋游戏实例开发

java中继承的例子是什么?java继承特征有哪些?

java语言能不能没有子对象?java如何创建子对象?