文章标题

  • 问题一: 简单介绍下你自己
  • 问题二: String为什么是final的?
  • 问题三: String、StringBuff、StringBuilder的区别
  • 问题四: abstract、final、static关键字的区别?抽象类可以继承实体类?抽象类可以实例化?
  • 问题五: 声明和定义的区别
  • 问题六: HashMap和HashTable的区别
  • 问题七: 解决Hash冲突的方法
  • 问题八: final、finally、finalize的区别
  • 问题九: equals和==的区别
  • 问题十: 重写(override)和重载(overload)的区别
  • 十一总结

   温馨提示: 本文大约3520字,阅读完大概需要3-5分钟,希望您能耐心看完,倘若你对该知识点已经比较熟悉,你可以直接通过目录跳转到你感兴趣的地方,希望阅读本文能够对您有所帮助,如果阅读过程中有什么好的建议、看法,欢迎在文章下方留言或者私信我,您的意见对我非常宝贵,再次感谢你阅读本文。

问题一: 简单介绍下你自己

  解题思路: 要回答好这个问题,首先要了解面试官询问的意图,而不是上来就像记流水账一样回答,这样给面试官的印象分就减少了。

  面试官询问这个问题,主要的意图大概有:

  1. 观察你是否有为面试提前做准备,如果有提前准备,回答的时候就不会磕磕巴巴的。
  2. 观察你的语言表达能力,如果你的回答东一点、西一点,印象分会减少。
  3. 为后面的面试问题做铺垫,面试官可能会根据你自我介绍的点进行相应的拓展进行面试,比如你说擅长处理大数据,他可能会问你与大数据相关的知识,如高并发情况下,大数据如何保障效率。
  4. 观察你的总结能力,面试官让你自我介绍,绝对不是让你把简历上的东西再说一遍,而是想看你如何通过简短的几分钟,能够将自己的优点以及和面试这份工作的契合度有多少,虽然只是简短的几分钟,但是也是让面试官留下好印象的机会。

  知道了面试官询问的意图,那么我们就要有相对应的处理方案:

  1. 提前准备

      仔细阅读面试岗位的招聘要求,列出自己擅长的技术点,这样自我介绍的时候才能够将自己的优点跟招聘的要求联合起来。

       如:招聘上要求掌握XX技术的优先,你在自我介绍的时候可以将这个XX技能联系你之前的工作项目介绍,这样会让面试官对你的印象大大加分,他会认为你是提前有准备,表明你是很重视这个工作的,但是一定要提前了解这个技术,因为面试官可能会通过这个进行深入的场景询问。

      格式如下: 我知道贵公司招聘这个岗位要求中提到要掌握XX技术,这个技术我自认为自己擅长/我有使用过,因为在之前的XX项目中,处理XX问题时,我独立使用XX技术完成的功能开发。

  2. 控制时间

      面试官让你简单的介绍自己,不是想在那里听你长篇大论,而是想通过你的表达,快速了解你和工作的契合度。时长最好控制在2-3分钟,所以在面试前一定要将自我介绍的问题摘抄到纸上,平常多多来练习。

      此时,你只需要简单介绍个人信息,然后简单介绍自己之前做过的项目和使用的技术。

      格式如下:我叫XXX,来自XX,毕业于XX学校XX专业,有XX年工作经验,参与过XX个项目,在XX项目中,我主要负责XX功能开发,使用了XX技术。

  3. 保持自信

      无论你对面试是否有把握,你都要时刻保持自信,因为面试是双向选择的过程,而不是去乞求,即使这个面试失败了,可以总结原因,下次面试时改进

      而不是,还没有开始面试就感觉低没有了自信,在面试官看来可能会认为你跟简历描述的不一样,在心里给你打了个大大的问号,从而让自己处于弱势方,即使面试成功了,后面谈论薪资的时候你也会处理弱势方,所以,无论如何,面试过程请一定保持自信

问题二: String为什么是final的?
  • 这个问题主要从安全性和效率两方面进行回答:
  • 安全性: String是最被使用的类之一,类中包含许多对于程序底层代码的调用,定义成为final类,不能被继承,所以不会被修改,从而避免了因为继承而带来的安全隐患。
  • 效率性: 定义成final类,保障了线程安全,在多线程时无需加锁,提升了效率。
  • 实现了String创建HashCode的不可变性: 因为String是不可变的,所以在创建String类的时候hashcode就被缓存了,调用时不需要重新计算。这也使得String很适合作为Map的key值,字符串处理的速度要远快于其他的键对象。
  • 为了实现字符串池: 只有字符是不可变时,字符串池才可以实现。
问题三: String、StringBuff、StringBuilder的区别
  • String是不可变的,而StringBuffer、StringBuilder是可变的。
  • String、StringBuffer是线程安全的,StringBuilder是线程不安全的。
  • 执行效率: StringBuilder > StringBuff > String
问题四: abstract、final、static关键字的区别?抽象类可以继承实体类?抽象类可以实例化?
  • abstract表示抽象的,可以用来修饰类、方法,分别表示抽象类,抽象方法,抽象类不可以直接创建对象实例,抽象方法需要被继承的子类重写。
  • abstract关键字不能与private、final关键字一起公用。
  • final表示最终的,可以用来修饰属性、方法、类,分别代表了属性不可以变(常量),方法不可被重写,类不能被继承。
  • final、private修饰的方法不能被覆盖,static修饰的方法可以被覆盖。
  • static表示静态的,能够修饰类、方法、变量、代码块,被它修饰的方法和变量可以直接通过类名进行访问。
  • 抽象类可以继承实体类,抽象类不能实例化。
问题五: 声明和定义的区别
  • 声明: 向编译器介绍"名字",相当于标识符,此时还没有分配有存储空间,如:Integer a;
  • 定义: 为声明的"名字"分配存储空间,如:Integer x= 10;
  • 区别联系: 把不需要建立存储空间的变量成为"声明",把需要存储空间的称为"定义"。
问题六: HashMap和HashTable的区别
  • 作者不一样
  • 产生的时间不一样(HashMap是JDK1.2时产生的,Hashtable是JDK1.0是产生的,且Hashtable不遵循驼峰命名)
  • HashMap不是线程安全的,Hashtable是线程安全的。
  • 继承的父类不一样,HashMap继承的父类是AbstractMap,Hashtable继承的父类是Dictionary
  • 对外提供的API不一样,HashMao提供的containsKey/containsValue来判断key/value是否存在,Hashtable提供了contains方法来判断key是否存在。
  • 对Null key和Null Value的支持不同: Hashtable不支持存在key和value为null,因为在put元素的时候,它会直接调用key.hashCode(),和判断value是否为空,为空则会抛出空指针异常。HashMap允许存在一个key为null,多个value为null的情况。
  • HashMap线程不安全,但效率高于Hashtable,Hashtable给每个方法都加上了synchronized,所以线程安全,但是效率比HashMap低。
  • 遍历方式不同,HashMap使用Entry数组方式进行遍历,而Hashtable使用Enumeration方式遍历,JDK1.8后使用fail-fast方式。
  • 初始化容量大小和扩容大小不同: HashMap的默认大小是16,扩容为原来的2倍。Hashtable默认大小是11,扩容为原来的2n+1。
  • 创建大小时如果有给定大小,则HashMap使用直接给定的值,而Hashtable则会将其扩容为2的幂次方。
问题七: 解决Hash冲突的方法
  • Hash冲突(碰撞): 两个不同的元素,但是Hash函数值一样。
  • 开放定制法
  • 再哈希法
  • 链地址池
  • 建立一个公共溢出区
问题八: final、finally、finalize的区别
  • final用于修饰属性、方法、类,分别表示属性不能被重新赋值(常量)、方法不可以被重写、类不能被继承。
  • finally是异常捕获语句的一部分,通常出现的形式是:try…catch…finally。finally表示总是执行。
  • finalize是Object中的一个方法,它是由垃圾回收器进行调用的,只有当垃圾回收器回收对象的时候,会调用该对象的finalize方法。
问题九: equals和==的区别
  • 针对基础数据类型,没有equals方法,只有==,==比较的是他们的值。
  • 针对引用类型,则分以下的情况:
    • 基础类型对应的包装类型(8种),因为重写了equals方法,所以它们的equals比较的是对象的值
    • "=="比较的是对象对应的内存地址值是否相等,equals默认比较的也是对象存在内存中地址值。
问题十: 重写(override)和重载(overload)的区别
  • 重写存在于继承关系下,private和final修饰的方法都不能被重写,构造方法也不能被重写。
  • 重写表示子类和父类中有方法名称、方法参数、返回值一样的方法,子类继承父类时可以重写这个方法的逻辑,当创建这个子类对象时,调用到这个方法的时候,就会去执行子类重写后的方法逻辑,相当于把与父类相同的方法的逻辑覆盖了,这是面向对象编程中多态性的一种表现。
  • 重写要遵循"两同两大一小原则","两同"表示:方法名称、参数类型(包括顺序)与父类方法一致,"两大"表示:子类返回值类型、子类抛出的异常类型要小于等于父类的返回值类型和异常,“一大”表示:子类的访问权限要大于等于父类抛出的异常。
  • 重载: 表示在一个类中有多个相同名称,但是参数列表不同的方法。
  • 重载中的参数列表不同包括: 参数个数不同,参数类型不同,和参数顺序不同。
  • 重载和参数的返回值类型无关
十一总结

  感谢你阅读本文,如果你觉得文章哪里存在错误,欢迎私信或者在下方留言指出。如果你觉得本文对你有一些帮助,可以给我一个点赞和关注,让我有更多动力给大家带来更多的文章,谢谢

  获取面试资料方式,关注公众号【是秘密呀joy】,回复: 面试资料即可获取。

关注公众号【是秘密呀joy】架构师视频、技术文章、面试资料、IDEA工具免费分享,不定时抽奖,只等你来!

面试宝典(二)之经典面试题(含详细答案)相关推荐

  1. 前端面试——那些web前端经典面试题大全及答案(html/css部分)

    阅读目录 HTML/CSS部分 JavaScript部分 JQuery部分 开发及性能优化部分 HTML/CSS部分 1.什么是盒子模型 在网页中,一个元素站有空间的大小由几个部分构成,其中包括元素的 ...

  2. 史上最全的前端开发面试题(含详细答案)

    本文由我收集网络 自己平时面试的 或者面试别人时的一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,切勿临时抱佛脚只求面试侥幸混过关. ...

  3. 游戏必备组件有哪些_面试必备:2019Vue经典面试题总结(含答案)

    点击右上方红色按钮关注"web秀",让你真正秀起来 面试必备:2019Vue经典面试题总结(含答案) 一.什么是MVVM? MVVM是Model-View-ViewModel的缩写 ...

  4. 深度学习 autoencoder_面试宝典之深度学习面试题(下)

    点击上方"Python全家桶","星标"或"置顶" 关键时刻,第一时间送达 今天已经是三月十一号,金三银四的金三已经过了三分之一,不知道大家 ...

  5. think in java interview-高级开发人员面试宝典(二)

    think in java interview-高级开发人员面试宝典(二) 分类: 面经2013-08-05 00:4318634人阅读评论(58)收藏举报 目录(?)[+] 从现在开始,以样题的方式 ...

  6. 【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)

    经典10道c/c++语言经典笔试题(含全部所有参考答案) 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n ...

  7. Java经典面试题整理及答案详解(八)

    简介: Java经典面试题第八节来啦!本节面试题包含了进程.线程.Object类.虚拟内存等相关内容,希望大家多多练习,早日拿下心仪offer- 了解更多: Java经典面试题整理及答案详解(一) J ...

  8. Java经典面试题整理及答案详解(三)

    简介: 以下是某同学面试时,面试官问到的问题,关于面试题答案可以参考以下内容- 上一篇:Java经典面试题整理及答案详解(二) Java面试真题第三弹接住!相信通过前两节的学习,大家对于Java多少有 ...

  9. c语言刘备关羽张飞的编程题,《三国演义》经典练习题汇总含参考答案

    <三国演义>经典练习题汇总含参考答案 一.填空 1.<三国演义>的作者是()代的(),本书与().().()合称"四大名著". 4."滚滚长江东逝 ...

  10. 小学四年级计算机上册考试试题及答案,四年级小学信息技术末试题含_答案.doc...

    四年级小学信息技术末试题含_答案 四年级上册信息技术期末考试试题 一.题1.要想输入"%",需要同时按住(??????)键和"%"号键. ???????A.空格 ...

最新文章

  1. centos7 修改mac地址
  2. 【以太坊】私有链和测试网的区别
  3. python里面temp是啥-请问Python里temp是什么意思?
  4. 用户态与内核态的区别
  5. PostgreSQL在何处处理 sql查询
  6. mysql数据库删除列数据_MySQL数据库-数据表、以及列的增删改查
  7. 不搞代码来搞我,我又动了谁的奶酪?
  8. Magento 获取当前店铺信息(首页,类别,地址等)
  9. TMS320VC5509片内ADC采集
  10. 荣耀Magic4 Pro延迟上市:全新一代LTPO超级四曲面屏加持
  11. 苹果考虑3月8日或前后发布5G iPhone SE
  12. [WARNING]考前必读?!
  13. VB6 用ODBC连接数据库
  14. Wed Nov 25 11:02:17 GMT+08:00 2020 WARN: Establishing SSL connection without server‘s identity verif
  15. java easing_[译] 动画中缓动(easing)的基础知识
  16. VS+QT编译出现QMYSQL driver not loaded
  17. 多媒体计算机主要有哪些基本特性,多媒体计算机的基本特性
  18. C语言_钩子函数(回调函数)
  19. opencv 旋转和平移的矩阵
  20. python中pymysql的小坑

热门文章

  1. macOS系统如何读写NTFS格式的硬盘
  2. Ubuntu14.04/16.04安装Dukto
  3. 金蝶kis专业版公网访问_金蝶KIS远程服务器端和远程客户端配置说明
  4. 爬取百度图片——详细思路
  5. vs2017安装qt插件及安装qt插件后的设置
  6. Java整合科大讯飞SDK实现语音转文字
  7. scratch编程体感游戏
  8. python深度学习基于pytorch——arange、linspace 函数生成数组
  9. 【概率论】极大似然估计和最大后验估计
  10. 微信小程序tabBar的开发设置