跳槽面临的第一个难关那就是面试吧。面试的好坏直接关乎着你年薪的多少。如何顺利完成面试的那些难题,今天我们就从java中复习一下。看看经常面试的知识点,为什么面试这些知识点,

如果你是初级的或刚毕业的java猿,请看下面:

1.java三大特性。封装,继承,多态。

这道题很明显的告诉你,学习java的特点。那么

封装特点:

封装减少耦合,

隐藏信息,实现细节

继承的特点:

实现代码的复用,扩展。

多态特点:

指向子类的父类引用由于向上转型,只能访问父类中拥有的方法和属性,会丢失子类中存在,而父类中不存真的方法。若子类重写了父类的某些方法,在调用方法的时候,必定会使用子类中定义的方法。(动态连接,动态调用。

2.使用序列化实现对象的拷贝的好处?

使用序列化来实现对象的深拷贝。在内存中通过字节流的拷贝是比较容易实现的。把母对象写入到一个字节流中,再从字节流中将其读出来,这样就可以创建一个新的对象了,并且该新对象与母对象之间并不存在引用共享的问题,真正实现对象的深拷贝。

3.什么时候用抽象类和接口?

抽象类

  • 抽象类不能被实例化
  • 抽象方法必须由子类重写
  • 子类中的抽象方法不能与父类的抽象方法同名。
  • abstract不能与final并列修饰同一个类
  • abstract 不能与private、static、final或native并列修饰同一个方法。

接口

接口是用来建立类与类之间的协议,它所提供的只是一种形式,而没有具体的实现

  • Interface所有方法自动生命为public,当然你可以显示的声明为protected、private,编译会出错!
  • 接口中德成员变量会自动变为为public static final。可以通过类命名直接访问:ImplementClass.name。
  • 实现接口的非抽象类必须要实现该接口的所有方法。抽象类可以不用实现。

抽象类和接口的区别

    • 语法层次
    • 设计层次 
      • 抽象层次不同。抽象类是对类进行抽象,接口是对行为的抽象。
      • 跨域不同。抽象类所跨域的是具有相似特点的类,而接口却可以跨域不同的类。我们知道抽象类是从子类中发现公共部分,然后泛化成抽象类,子类继承该父类即可,但是接口不同。实现它的子类可以不存在任何关系,共同之处。is-a和like-a
      • 设计层次不同。抽象类是自底向上抽象而来的,接口是自顶向下设计出来的。

4.为什么用内部类?

每个内部类都能独立继承一个(接口)实现,无论外围类是否已经继承了某个接口的实现,对于内部类没有影响。 
接口只是解决了部分问题,而内部类使得多重继承的解决方案变得更加完整。

    • 内部类可以用于多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。
    • 在单个外围类中,可以让多个内部类以不同的方式实现同一接口,或者继承同一个类。
    • 创建内部类对象的时刻并不依赖于外围类对象的创建。
    • 内部类并没有令人迷惑的“is-a”关系,他就是一个独立的实体。
      • 成员内部类

        • 成员内部类中不能存在任何static的变量和方法
        • 成员内部类是依附于外围类的,所以只有先创建了外围类才能够创建内部类。
        • 匿名内部类

          • 匿名内部类是没有访问修饰符
          • 匿名内部类是没有构造方法的。因为它连名字都没有何来构造方法。
          • 形参必须是final修饰的。
          • 使用匿名内部类我们必须要继承一个父类或者实现一个接口,当然也仅能只继承一个父类或者实现一个接口。同时它也是没有class关键字,这是因为匿名内部类是直接使用new来生成一个对象的引用。当然这个引用是隐式的。

            • 匿名内部类注意事项

              • 必须只能继承一个类或实现一个接口
              • 不能定义构造函数
              • 不能存在static变量和方法
              • 属于局部内部类
              • 不能抽象,必须实现所有抽象方法。
            • 使用的形参为何为final 
              当所在的方法的形参需要被内部类里面使用时,该形参必须为final。

java面试的那些事的更多相关文章

  1. Java 面试知识点解析(七)——Web篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  2. Java面试总结(面试流程及核心面试题)

    Java面试流程及核心面试题 面试整体流程 1.1 简单的自我介绍      我是xxxx,工作xxx年.我先后在xxxx公司.yyyy公司工作.先后做个xxxx项目.yyyy项目. 1.2 你简单介 ...

  3. java 面试 -- 4

    Java面试知识点总结   本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有 ...

  4. Java面试知识点总结及解析

    声明:有人说, 有些面试题很变态,个人认为其实是因为我们基础不扎实或者没有深入.本篇文章来自一位很资深的前辈对于最近java面试题目所做的总结归纳,有170道题目 ,知识面很广 ,而且这位前辈对于每个 ...

  5. Java 面试/笔试题神整理 [Java web and android]

    Java 面试/笔试题神整理 一.Java web 相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并 ...

  6. Java面试准备十六:数据库——MySQL性能优化

    2017年04月20日 13:09:43 阅读数:6837 这里只是为了记录,由于自身水平实在不怎么样,难免错误百出,有错的地方还望大家多多指出,谢谢. 来自MySQL性能优化的最佳20+经验 为查询 ...

  7. Java面试必刷常见真题200+ ,让你“过五关,斩六将”,轻松入大厂

    这份面试清单是我从 2015 年做 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘我在 Java 技术栈中的技术盲点,然后修复和完善它,以此来提高自己的技术水平.虽 ...

  8. Java面试宝典2017

    JAVA面试.笔试题(2017版)                 欲想成功,必须用功!   目录 一.                  HTML&CSS部分................ ...

  9. 武汉百得思维Java面试总结

    武汉百得思维Java面试总结 在一个愉快的下午,我们并不十分愉快地参加了宣讲会.那是国庆的前两天,大家正在为放假的愉悦所兴奋也在为找工作而紧张. 在听过一阵胡吹乱侃之后,大家都昏昏欲睡,于是终于迎来了 ...

随机推荐

  1. VUE的进阶 标签属性数据绑定和拼接

    在vue官网把文档扫了一遍后,就开始写网站项目了,没有设计,就百度里找了一个h5的助赢软件的网站把他copy下来,想想有点坏了,接着把内容改改吧.首先开始做一个列表展示vue实例好后,给对象添加默认数 ...

  2. poj 2324 Anniversary party(树形DP)

    /*poj 2324 Anniversary party(树形DP) ---用dp[i][1]表示以i为根的子树节点i要去的最大欢乐值,用dp[i][0]表示以i为根节点的子树i不去时的最大欢乐值, ...

  3. Swagger简介,轻松构造restful api的文档

    Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件. Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使 ...

  4. openssl/ssl.h file not found

    sample/le-proxy.c:33:10: fatal error: 'openssl/ssl.h' file not found mac下,在安装某些软件的时候提示如上错误,但是mac已经安装 ...

  5. ASP.NET MVC学习---(八)三个比较常用的方便的功能

    通过之前的了解 现在我们已经可以使用mvc进行一些简单的开发 但是还不够 哪里不够呢? 为什么现在的程序员喜欢用mvc进行开发 不就是因为它爽吗? 之前介绍的那些特点仅仅是mvc框架的一小部分 只是一 ...

  6. EffectiveJava(7)避免使用终结方法

    避免使用终结方法 1.使用终结方法会导致行为不稳定,性能降低,以及可移植性的问题.(终结线程的优先级过低) 终结方法不能保证被及时的执行(从一个对象变得不可到达开始,到中介方法被执行,所花费的时间是任 ...

  7. ionic - 运行起来

    更新时间: 2018-8-1 (首次更新) 1.首先下载python(至于为什么安装,看截图) https://www.python.org/downloads/release/python-370/ ...

  8. Unity里面的自动寻路(一)

    来自:http://www.narkii.com/club/forum.php?mod=viewthread&tid=269146&highlight=Unity%E9%87%8C%E ...

  9. java起源和基本数据类型

    1.Java起源于1994年的sun公司,起初并没有体现出它独特的优势.sun公司一度想要放弃这个项目.亏的领头人的力争.Java才的以存在.二十世纪末.随着互联网的兴起.交互式设计越来越多的应用,对 ...

  10. web前端性能优化汇总

    一.概述 web前端性能优化主要点为:减少HTTP请求,减小请求文件大小.其他优化. 二.优化细节 1.减少HTTP请求 (1)使用缓存 (2)雪碧图 (3)合并文件 (4)将javascript和c ...