java复制的函数会报错,2 面试题之面向对象

大纲:

b8bdfed8a41670c50bcdca4db5a28ba1.png

一、两个重要概念

① 请说明类和对象的区别

类是对某一类实物的描述,是抽象的;对象是一个实实在在的个体,是类的一个实例;

② 解释一下什么是类加载机制、双亲委派模型,好处是什么?

类加载机制:

76a80ed5ba1de20b887334994eb28ce8.png

0ebef30ebd5e3861a956a0119d34d9e7.png

双亲委派模型:

某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;

只有父类加载器无法完成此加载任务时,才自己去完成。

好处:

ef9421e13f6ce8c3868c24e0e2a417c9.png

二、java类及类的成员

① 重写(Overriding)与重载(Overloading)的区别?

重载:重载指的是同一个类中的两个方法,方法名相同,参数列表(参数的类型、个数、顺序)不同;对返回值类型没有要求;

重写:重写发生在子类与父类之间,子类重写父类的方法,要求与被重写的方法的参数列表和返回值相同;

具体不同:

1 重写与重载都是实现多态的方式,区别在于重载实现的是编译时的多态,重写实现的是运行时的多态;(在了解下)

2 重写后,子类方法的访问修饰权限不能小于父类的访问修饰权限;

3 重写后,子类不能比父类被重写方法声明更多的异常;

② 什么是构造函数?什么是构造函数重载?什么是复制构造函数?

构造函数(构造器):

当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序中没有给类提供构造函数的情况下,Java编译器会为这个类创建一个默认的构造函数 。

构造函数重载:

java中构造函数的重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数都必须有他唯一的参数列表。

复制构造函数:

java不支持像C++中那样的复制构造函数 , 这个不同点是因为如果你不自己写构造方法的情况下,Java不会创建默认的复制构造方法。

三、面向对象的三大特征

① 面向对象的特征,解释下?

d302c2e0449a47fd19be47487883d700.png

具体的注意点说明:

封装性:我们可以将类的属性私有化, 只有通过公共的get/set方法才能进行访问,在get/set方法中我们可以对内部逻辑进行封装处理,外部的调用方不必关心我们的处理逻辑。

继承性:

1 java不支持多继承;

2 类中的构造函数不能被继承;如果构造函数被private修饰 ,那么该类就不能被其他类继承;

3 方法的重写;

多态性:

1 方法的重载(与重写);

2 向上转型和向下转型;

参考链接:https://www.cnblogs.com/liyanyan665/p/11198602.html

四、java关键字

static关键字:

① 是否可以在static环境中访问非static变量?

9599aa509d2dbf0fb035bb04120e9c01.png

② 解释一下static关键字,java中是否可以重写一个private或者是static的方法?

static关键字:static是表示静态的意思,它可用来修饰成员变量和成员函数,被静态修饰的成员函数只能访问静态成员,

不能访问非静态成员。静态是随着类的加载而加载,因此可以直接用类进行访问。

private或者是static的方法都不能被重写:

覆盖,也就是我们常说的重写,是子类继承父类,且子类中的方法和父类中的方法,方法名、参数列表和返回值都相同。

private修饰的方法,不能被继承,所以也不存在重写(覆盖);

static修饰的方法,可以被继承,但不能被重写。 因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。

③ 静态与非静态的区别?

这里的静态,指以static关键字修饰的,包括类,方法,块,字段。静态变量和静态方法都属于静态对象非静态,指没有用static 修饰的。

31464227bf5e64d7a16b7deb08e7a270.png

静态有一些特点:

1.全局唯一,任何一次的修改都是全局性的影响

2.只加载一次,优先于非静态

3.使用方式上不依赖于实例对象。直接用 类名.静态方法名  或者  类名.静态变量名就可引用并且直接可以修改其属性值,不用get和set方法。

4.生命周期属于类级别,从JVM 加载开始到JVM卸载结束。

5.static final用来修饰成员变量和成员方法,可简单理解为“全局常量”。对于变量,表示一旦给值就不可修改;对于方法,表示不可覆盖。

6.静态方法和静态变量创建后始终使用同一块内存。

7.静态方法优点是效率高,缺点是不自动进行销毁。

final关键字:

④ 说明一下final、finally、finalize的区别?

final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。

⑤ 说明一下final怎么用的?

9331f5f42207103c537418a3cac789f6.png

五、其他知识点

① 请列举你知道的Object类的方法并简要说明

Object()默认构造方法。

clone() 创建并返回此对象的一个副本。

equals(Object obj) 指示某个其他对象是否与此对象“相等”。

finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

getClass()返回一个对象的运行时类。

hashCode()返回该对象的哈希码值。

notify()唤醒在此对象监视器上等待的单个线程。

notifyAll()唤醒在此对象监视器上等待的所有线程。

toString()返回该对象的字符串表示。

wait()导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。

wait(long timeout)导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量。

wait(long timeout, int nanos) 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。

六、抽象类和接口

① 抽象类和接口的区别?

抽象类:

1 抽象类必须在类前用abstract关键字修饰。如果一个类中有抽象方法,那么这个类也是抽象的;

2 子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也是抽象类,必须用 abstract 修饰 ;

3 抽象类默认的权限修饰符为public,可以定义为 public 或 procted,如果定义为 private,那么子类则无法继承;

4  抽象类不能创建对象, 抽象类就是为了继承而存在的;

接口( interface ):

1 接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误);

2 接口中的方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误);

3 接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法;

区别:

1 一个类只能继承一个抽象类,而一个类却可以实现多个接口;

2 抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;

3 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型;

4 接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;(java 8开始,接口中可以有静态方法)

② java是否支持多继承?

Java中类不支持多继承,只支持单继承(即一个类只有一个父类)。

但是java中的接口支持多继承,即一个子接口可以有多个父接口。(接口的作用是用来扩展对象的功能,一个子接口继承多个父接口,说明子接口扩展了多个功能,当类实现接口时,类就扩展了相应的功能)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql 除以_不可思议的SQL排名函数,被您无视了么?

经常写SQL脚本的朋友,对查询的多样化要求可能会经常头疼。数据库SQL的语法是固定的、但应用要求却是千差万别的。依靠我们所掌握的知识,大部分的查询需求我们还是有办法的解决的,但总有那么一些要求,把我们搞的非常被动。今天我们…

自制hdmi线一头改vga图_VGA连接线接口定义及引线焊接教程,VGA线不够长时可用网线代替?...

最近做的多媒体功能插座,含有VGA、HDMI、网口、音频输入等接口,由于穿线时没有穿成品线缆,VGA和HDMI接头需要焊接,那么怎么焊接呢?VGA接口15根针,其对应接口定义如下,其下图:一般在V…

sql 分组求和_数据仓库工具–Hive(归纳笔记第六部分:SQL练习)

写在开头:本章是Hive教程第六部分,着重于归纳SQL编写。文章内容输出来源:拉勾教育大数据高薪训练营。本章将介绍Hive中常见的面试题和自己的解答思路,以供大家训练和记忆。SQL面试题1、求连续7天登录的用户— 数据。uid dt status…

Tableau上面地图与条形图结合_何为计算的详细级别,认识Tableau中的Level of Detail...

何为详细级别详细级别,英文Level of detail,Tableau用它来描述计算发生的级别,或者说计算在哪个层级发生。由于BI工具的相似性,在Power BI里也可以用类似的思想对计算进行描述,但Power BI并没有与之对应的专门的词汇。…

java 异步读表,Java实现异步回调-Go语言中文社区

回调(callback)在我们做工程过程中经常会使用到,今天想整理一下回调的原理和使用方法。回调的原理可以简单理解为:A发送消息给B,B处理完后告诉A处理结果。再简单点就是A调用B,B调用A。那么是如何实现的呢?一般而言&…

mysql 按时间累计计算_精通MySQL索引背后的数据结构及算法原理

本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,mysql支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引&a…

matlab数据游标属性设置,将节点属性添加到图论图数据提示

绘制具有数据提示的 GraphPlot 对象创建随机有向图的 GraphPlot 图对象。将额外的节点属性 wifi 添加到该图。rng defaultG digraph(sprandn(20, 20, 0.05));G.Nodes.wifi randi([0 1], 20, 1) 1;h plot(G);向图中添加数据提示。利用数据提示,您能够选择图论图中…

matlab 邻近度 离群点_MATLAB自制迷宫游戏,快来试试吧!

前几天给大家介绍了“一行matlab代码可以做哪些匪夷所思的事情”,今天小编带给大家一款酷炫的私人订制版迷宫游戏。这款迷宫游戏包含以下功能:随机生成迷宫地图通过键盘手动求解生成的迷宫MATLAB自动求解生成的迷宫目前主流的生成迷宫的算法有&#xff1…

matlab中m文件的作用,M文件主要包含()_matlab中m文件的好处

M文件主要包含()答:M函数文件\n\nM命令文件(脚本文件)" src"" style"max-width: 100%; display: inline;">中国大学MOOC: 在缓冲区分析中二次模型的表示的主体对象对临近对象的影响随距离的增大呈线性衰减。答:错巡航速度是…

xcopy复制文件夹及其子文件_嗨学习:如何给电脑中文件夹设置密码

文件夹怎么设置密码,如何给文件夹设置密码?有些重要的文件或比较隐私的文件存放在电脑上,这些文件我们只希望自己能看到并使用,不希望别人访问。那么,最好的办法就是去对这些文件进行加密。 才不怕别人看到自己的隐私,设置密码&a…

php的修改数据库语句怎么写,php的数据库修改语句是什么

php的数据库修改语句是UPDATE,用于更新数据库表中已存在的记录,语法为【UPDATE table_name SET column1value, column2value2,...WHERE some_columnsome 】。本教程操作环境:windows7系统、PHP5.6版,DELL G3电脑。UPDATE 语句用于…

ubuntu20.04中安装划词翻译_教你轻松玩转免安装的网页翻译插件“有道网页翻译2.0”...

大家在日常网页浏览中肯定多多少少都会碰到英文网站,这时候往往需要花费非常多的时候去自行理解,效率低下,又或者借助浏览器自带的翻译功能进行翻译,但又可能遇到翻译不准的情况。现在这个问题可以解决啦!“有道网页翻…

python 主要内容,介绍一些有关python的重要内容

Python的参数传递方式是:位置,默认值,变量参数,关键词参数。传值究竟是函数的值传递还是引用传递,要分情况:不变参数用值传递:像整型和string这样的不变对象是通过拷贝来传递的,因为…

系统业务逻辑书籍_「樊登读书会强推:免费送10本绝密书」彻底改变你的逻辑思维能力...

哈喽~你好我是JS-冰冰今天在星巴克喝咖啡整理了一些巨大价值的绝密资料,从过往在樊登读书会整理的10本彻底改变《逻辑思维能力》的绝密电子书。非常实用,对我的改变和提升非常有帮助,所以想把这份改变命运的绝密大礼包也送给需要的小伙伴~(怎…

饿了么风神登录_海底捞首度登陆第三方外卖!联手饿了么全国配送“小火锅”...

近日,“海底捞”正式联手饿了么推出第三方外卖配送服务。据悉,这是海底捞首次与本地生活服务平台合作推出第三方外卖业务。包括上海、济南、福州、郑州等多个城市的用户登录饿了么平台,下单购买海底捞“小火锅”外送等产品后,便可…

数据相关的在职研究生_南方医科大学2020年招收在职博士研究生导师名单及复试考生名单!...

南方医科大学2020年在职博士研究生入围复试考生名单各位考生:根据我校招收2020年在职博士研究生相关工作规定,现就进入复试考生名单予以公示,请入围复试考生密切关注我校相关复试公告,做好复试准备。南方医科大学招收2020年在职博…

富文本++php+源码,自己实现富文本编辑器

【实例简介】网页中经常需要输入多种资料,自带的TextBox不够用【实例截图】【核心代码】//************************************************************************************//将texttemp内容移入iframeiframeDocument.body.innerHTML parent.document.getE…

gridlayoutmanager 设置间距_不设置主灯的客厅应当如何保证较好的灯光分布?

如果没有从事照明设计的专业人士或者是比较有经验的室内设计师协助业主做决策,个人不太建议普通业主自行设置“无主灯客厅”的灯光分布。在日常设计工作中,如果委托人确已考虑放弃主灯,通常我也会建议业主保留已有的客厅主灯的灯控线路及开关…

Oracle filter 函数,Oracle数据库之SQL单行函数---字符函数续

前一篇博客练习了一些字符函数,之后自己又去下查阅了相关的资料,上一篇博客中还有很多的字符函数没有练习到,这次主要是对上次的一些未用到的字符函数进行一些补充练习。ascii()返回与指定的字符对应的十进制数,若为字符串则返回字符串首字母…

怎么画单极交流放大电路波形图_珠海放大IC怎么样

容抗XC1/2πf c (f表示交流信号的频率,C表示电容容量)电话机中常用电容的种类有电解电容、瓷片电容、贴片电容、独石电容、钽电容和涤纶电容等。集成电路更着重电路的设计和布局布线,芯片更强调电路的集成、生产和封装。而广义的集成电路,当涉…