JAVA开发工程师面试(1)

  我已经有很长一段时间没有更新博客了,难道是博主我变懒惰了吗?哎,这样可不行啊,我还有好多知识要学习,要和你们分享。之后我须要更加努力,改掉本身的惰性。本人文采不怎么样,只能是把本身所想的说出来,想和你们一块儿分享知识,互相学习,丰富本身,因此在文采方面,你们多多体谅体谅。我尽量的去写好每一篇博客,让你们方便阅读和了解。html

  最近我去面试了几家公司,是关于JAVA开发工程师的职位。今天我就写一写关于在面试过程当中的一些问题,若是您看到了这篇博客,可能会对您面试的时候有一些帮助。mysql

  1.自我介绍面试

     关于自我介绍这方面的内容,每个人都有本身的介绍方式。我讲述自我介绍方式不必定适合全部人,这个只是表明我我的的见解。自我介绍就是把您给面试官的简历上面的内容的简介版,包含学历、以往公司、项目经历、证书,同时您也能够把我的兴趣爱好、性格也介绍一下,让面试官更加了解您本人,我也提醒一下在介绍本身性格的时候,你要考虑到你如今的面试职位是否与性格符合,面试官可能会抓住你的性格问题详细询问你引起出来的问题,若是你不能很好的回答这些问题的话,我建议你不要在自我介绍的时候说出本身的性格。sql

  2.技术问题数组

    关于技术问题的话,那就须要你有很好的技术知识和能力,这部分面试的时候是注重之重,由于这部分决定了公司是否聘你和入职后的薪资问题,下面我把面试个人一些技术问题列举出来,以供你们参考。安全

    (1)StringBuffer类初始容量及扩容是多少?数据结构

      (a)StringBuffer()的初始容量能够容纳16个字符,当该对象的实体存放的字符的长度大于16时,实体容量就自动增长。StringBuffer对象能够经过length()方法获取实体中存放的字符序列长度,经过capacity()方法来获取当前实体的实际容量。学习

      (b)StringBuffer(int size)能够指定分配给该对象的实体的初始容量参数为参数size指定的字符个数。当该对象的实体存放的字符序列的长度大于size个字符时,实体的容量就自动的增长。以便存放所增长的字符。ui

      (c)StringBuffer(String s)能够指定给对象的实体的初始容量为参数字符串s的长度额外再加16个字符。当该对象的实体存放的字符序列长度大于size个字符时,实体的容量自动的增长,以便存放所增长的字符。spa

    (2)String和StringBuffer有什么区别?

      (a)在这方面运行速度快慢为:StringBuilder > StringBuffer > String, 

      String最慢的缘由:

        String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦建立以后该对象是不可更改的,但后二者的对象是变量,是能够更改的。

      (b)在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的

    (3)collection集合?

    Collection集合(单点集合)包含:

      (a)List特色:元素有序;元素能够重复;元素都有索引(角标)

        Vector:内部是数组数据结构,是同步的(线程安全的)。增删查询都很慢。
           ArrayList:内部是数组数据结构,是不一样步的(线程不安全的)。替代了Vector。查询速度快,增删比较慢。
           LinkedList:内部是链表数据结构,是不一样步的(线程不安全的)。增删元素速度快。

      (b)Set 特色:元素无序;元素不能够重复;

        HashSet、TreeSet

      注意:set不能够重复是由于值是取得Map的key,key是不能重复的。

    与Collection相对应的是Map集合(键值对):

      HashMap、TreeMap

    (3)Spring MVC处理请求流程(详情介绍见这篇文章:http://www.javashuo.com/article/p-cqnlqjoa-bu.html

 

    (4)HashMap是键值对的形式存储值得,若是用对象做为key,怎么比较key是否同样?       

      HashMap的key是个对象的话,你们都是知道判断对象是否相等,直接使用“==”操做符是不能够的,这样比较的值是它们各自的地址,而不是对象属性的值,其实String类型也是一个对象,比较两个字符串是否相等,咱们使用的是对象中的equals方法。当HashMap的使用自定义对象做为key的时候,咱们须要重写对象的equals方法,能够经过重写对象中的toString()方法把属性转化成字符串的形式,而后在比较字符串是否相等,同时咱们也须要重写hashCode方法。String类型的底层已经重写了hashCode和equals方法。有一篇博客详细介绍了:http://www.javashuo.com/article/p-wmfkfqqi-bs.html.(后期补充:HashMap 的key和value均可以容许为空,key的去重是HashMap 是使用 hashCode 和 equals 实现去重的, 若是key是对象类型的话,须要在带对象中重写hashCode 和 equals 方法,不须要使用toString()方法让对象转化为字符串进行比较。使用toString()这个方法比较是我一次面试的时候考官说的,当时面试的时候我说重写hashCode 方法,他却不觉得然,就告诉了我toString()方法,那个时候的本觉得是这个方法是最好的,如今我才明白面试官考你的时候,也不必定知道,有时候也要相信本身。另外再说一个课外话:TreeMap 依靠 Comparable Comparator 来实现 Key 的去重 ,因此key是须要重写这个方法。)

 

    (5)mysql中的分页查询语句中limit两个参数分别表明什么意思?

select * from table [offset,] rows | rows OFFSET offset

      LIMIT 子句能够被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。若是给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)

    (6)Mybatis中#{}和${}的区别?

    点击看这篇博客:http://www.javashuo.com/article/p-vpgkafib-u.html

  3.最后会从我的写的项目引起出一些问题进行提问。

相关文章
相关标签/搜索