文档章节

JAVA面试必备的知识宝典(一)

 叶荷
发布于 2017/08/31 20:12
字数 1935
阅读 15
收藏 0

精选30+云产品,助力企业轻松上云!>>>

相关概念

面向对象的三个特征

封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象.

多态的好处

允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点:

可替换性:多态对已存在代码具有可替换性.

可扩充性:增加新的子类不影响已经存在的类结构.

接口性:多态是超累通过方法签名,想子类提供一个公共接口,由子类来完善或者重写它来实现的.

灵活性:

简化性:

代码中如何实现多态

实现多态主要有以下三种方式: 1. 接口实现 2. 继承父类重写方法 3. 同一类中进行方法重载

虚拟机是如何实现多态的

动态绑定技术(dynamic binding),执行期间判断所引用对象的实际类型,根据实际类型调用对应的方法.

接口的意义

接口的意义用三个词就可以概括:规范,扩展,回调.

抽象类的意义

抽象类的意义可以用三句话来概括:

为其他子类提供一个公共的类型

封装子类中重复定义的内容

定义抽象方法,子类虽然有不同的实现,但是定义时一致的 ## 接口和抽象类的区别

比较抽象类接口

默认方法抽象类可以有默认的方法实现,java 8之前,接口中不存在方法的实现.

实现方式子类使用extends关键字来继承抽象类.如果子类不是抽象类,子类需要提供抽象类中所声明方法的实现.子类使用implements来实现接口,需要提供接口中所有声明的实现.

构造器抽象类中可以有构造器,接口中不能

和正常类区别抽象类不能被实例化接口则是完全不同的类型

访问修饰符抽象方法可以有public,protected和default等修饰接口默认是public,不能使用其他修饰符

多继承一个子类只能存在一个父类一个子类可以存在多个接口

添加新方法想抽象类中添加新方法,可以提供默认的实现,因此可以不修改子类现有的代码如果往接口中添加新方法,则子类中需要实现该方法.

父类的静态方法能否被子类重写

不能.子类继承父类后,有相同的静态方法和非静态,这是非静态方法覆盖父类中的方法(即方法重写),父类的该静态方法被隐藏(如果对象是父类则调用该隐藏的方法),另外子类可集成父类的静态与非静态方法,至于方法重载我觉得它其中一要素就是在同一类中,不能说父类中的什么方法与子类里的什么方法是方法重载的体现.

什么是不可变对象

不可变对象指对象一旦被创建,状态就不能再改变。任何修改都会创建一个新的对象,如 String、Integer及其它包装类。

能否创建一个包含可变对象的不可变对象?

当然可以创建一个包含可变对象的不可变对象的,你只需要谨慎一点,不要共享可变对象的引用就可以了,如果需要变化时,就返回原对象的一个拷贝。最常见的例子就是对象中包含一个日期对象的引用.

java 创建对象的几种方式

采用new

通过反射

采用clone

通过序列化机制

前2者都需要显式地调用构造方法. 造成耦合性最高的恰好是第一种,因此你发现无论什么框架,只要涉及到解耦必先减少new的使用.

switch中能否使用string做参数

在idk 1.7之前,switch只能支持byte,short,char,int或者其对应的封装类以及Enum类型。从idk 1.7之后switch开始支持String.

Object中有哪些公共方法?

equals()

clone()

getClass()

notify(),notifyAll(),wait()

java当中的四种引用

强引用,软引用,弱引用,虚引用.不同的引用类型主要体现在GC上:

强引用:如果一个对象具有强引用,它就不会被垃圾回收器回收。即使当前内存空间不足,JVM也不会回收它,而是抛出 OutOfMemoryError 错误,使程序异常终止。如果想中断强引用和某个对象之间的关联,可以显式地将引用赋值为null,这样一来的话,JVM在合适的时间就会回收该对象

软引用:在使用软引用时,如果内存的空间足够,软引用就能继续被使用,而不会被垃圾回收器回收,只有在内存不足时,软引用才会被垃圾回收器回收。

弱引用:具有弱引用的对象拥有的生命周期更短暂。因为当 JVM 进行垃圾回收,一旦发现弱引用对象,无论当前内存空间是否充足,都会将弱引用回收。不过由于垃圾回收器是一个优先级较低的线程,所以并不一定能迅速发现弱引用对象

虚引用:顾名思义,就是形同虚设,如果一个对象仅持有虚引用,那么它相当于没有引用,在任何时候都可能被垃圾回收器回收。

好了同学们,我能介绍的也都全部介绍完给你们了,如果下获得更多JAVA教学资源,可以选择来我们这里共同交流,群:240448376,很多大神在这里切磋学习,不懂可以直接问,晚上还有大牛免费直播教学。

注:加群要求

1、具有一定工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加,有些应届生和实习生也可以加。

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。

5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

PS:现在主要讲解的内容是(反射原理枚举原理与应用注解原理常用设计模式、正规表达式高级应用、JAVA操作Office原理详解JAVA图像处理技术,等多个知识点的详解和实战)

6.小号或者小白之类加群一律不给过,谢谢。

最后,每一位读到这里的网友,感谢你们能耐心地看完。觉得对你有帮助可以给个喜欢!希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步

粉丝 0
博文 24
码字总数 41519
作品 0
私信 提问
加载中
请先登录后再评论。
【面试合辑】抓住金三银四涨薪好时机,这些进阶技术点必须掌握!

算法、Python、AI、测试、PHP篇传送门在此! 每年的三月和四月,企业释放招聘岗位、社会人员跳槽,汇集成年度人才招聘的一个高峰季节,行称“金三银四”! 脉脉数据显示,在全行业中,IT互联...

慕课网官方_运营中心
04/01
0
0
知乎千万级高性能长连接网关是如何搭建的

  之前,给大家发过三份Java面试宝典,这次新增了一份,目前总共是四份面试宝典,相信在跳槽前一个月按照面试宝典准备准备,基本没大问题。   《java面试宝典5.0》(初中级)   《350道J...

osc_h64nkmli
05/27
6
0
知乎千万级高性能长连接网关是如何搭建的

  之前,给大家发过三份Java面试宝典,这次新增了一份,目前总共是四份面试宝典,相信在跳槽前一个月按照面试宝典准备准备,基本没大问题。   《java面试宝典5.0》(初中级)   《350道J...

java进阶架构师
05/26
0
0
你在第几楼?泪目,80、90后扎心图鉴

   来源 | 央视新闻(ID: cctvnewscenter)                                 心若有梦,即可扬帆起航!   青春无悔,终将辉煌人生!   之前,给大家发过三份J...

java进阶架构师
04/05
0
0
不是我吹!超全面的权限系统设计方案面世了(附表设计)!

  点击上方“java进阶架构师”,选择右上角“置顶公众号”   20大进阶架构专题每日送达   End   作者:iceblow   来源:   https://www.cnblogs.com/iceblow/p/11121362.html  ...

osc_0atwpkmx
05/19
8
0

没有更多内容

加载失败,请刷新页面

加载更多

App Builder 2020中文版

教程: 1、断开网络连接,下载解压,运行对应操作系统App Builder 2020安装包; 2、在弹出的窗口中勾选同意条款协议,点击【Next】; 3、创建桌面快捷方式,点击【Next】; 4、一切准备就绪,...

osc_62a7f5bj
24分钟前
19
0
蚂蚁金服轻量级类隔离框架 Maven 打包插件解析 | SOFAArk 源码解析

SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 本文为《...

SOFAStack
03/19
11
0
Java 高级 面试题 及 参考答案

一、面试题基础总结 1、 JVM结构原理、GC工作机制详解 答:具体参照:JVM结构、GC工作机制详解 ,说到GC,记住两点:1、GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无...

osc_np3y0rbq
25分钟前
10
0
面试准备季——MyBatis 面试专题(含答案)

写在前面:2020年面试必备的Java后端进阶面试题总结了一份复习指南在Github上,内容详细,图文并茂,有需要学习的朋友可以Star一下! GitHub地址:https://github.com/abel-max/Java-Study-...

osc_1ipdqsf2
26分钟前
8
0
Redis 高频面试题:10w+QPS 的 Redis 真的只是因为单线程和基于内存?

你以为 Redis 这么快仅仅因为单线程和基于内存? 那么你想得太少了,我个人认为 Redis 的快是基于多方面的:不但是单线程和内存,还有底层的数据结构设计,网络通信的设计,主从、哨兵和集群...

osc_qgfjs4a5
27分钟前
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部