Java核心技术及面试指南 面向对象部分的面试题总结以及答案
问题2.7.1,开放性问题,说一下你对面向对象思想的了解。
要点1,先说基础概念,比如面向对象思想包括封装、继承、多态,然后说些语法,比如可以通过extends继承类、通过implement来实现接口。
要点2,得结合具体的实际,说一下在你做过的项目里,面向对象思想带来的具体好处,比如结合一个具体的例子(比如电信系统),说一下把方法都定义到父类里,然后通过继承子类来扩展,从而能改善代码结构,通过多态来减少代码修改后的维护量。这个切记别只说理论,说的时候一定得举些你项目里的例子。
问题2.7.2,接口和抽象类有什么差别?
这个基本都会问到,首先从语法角度分析,这时可以解释一下为什么接口和抽象方法Java编译器不让定义方法体,以及接口的属性为什么默认是public static final。
随后一定得说,抽象类是对逻辑的归纳,比如人类是中国人和美国人类的抽象类,而接口是对功能的抽象,比如把能发光的功能归纳到一个接口里。随后可以举些你项目里用到过的例子来说你定义过哪些接口和抽象类,由此通过案例来说明这两者的差别。
问题2.7.3,说下重载(overload)和覆盖(override)的差别。
这个也会经常问,重载是多态的一种体现,表现形式是方法同名但参数不同,而覆盖是子类方法覆盖掉父类方法。
随后请大家说出子类覆盖父类方法的两大局限,子类方法不能缩小父类方法的访问权限,而且,子类方法不能抛出比父类方法更多的异常。同时解释一下具体的原因。
问题2.7.4,this和super的含义。这个是语法问题,就不展开了。
问题2.7.5,finalize方法有什么作用?
第一,可以说出这个方法在类被回收时被调用;第二可以说,一般我们在项目里不会重写这个方法,因为会引发内存无法回收的问题。后面我们会详细提到 java的垃圾回收机制(GC),如果大家感觉可以,可以由这个问题展开回答一下你对GC的认识。
问题2.7.6,final关键的含义。
这时请分别说出final作用到类、方法和属性上分别有什么作用。随后最好结合你的实际项目,说下final类、final方法和final属性的应用场景。
问题2.7.7,构造函数能否被覆盖,能否被重载?
构造函数能重载,但不能覆盖,原因已经讲过。
接下来的问题只给出的题目,答案请到附录里去找。
问题2.7.8静态变量和实例变量的区别?
问题2.7.9是否可以从一个static方法内部发出对非static方法的调用?
问题2.7.10请说出作用域public,private,protected,以及不写时的区别。
Java核心技术及面试指南 面向对象部分的面试题总结以及答案的更多相关文章
- Java核心技术及面试指南 JDBC部分的面试题总结以及答案
5.5.1 你最近的项目里用到的是哪个数据?或你用过哪些数据库?或你对哪个数据库最熟悉? 通过这个问题,我们将会确认候选人是否在项目里用过数据库或JDBC. 5.5.2 你有没有建过表?或修改表里的字 ...
- Java核心技术及面试指南 集合部分总的面试题归纳以及答案
3.6.1ArrayList和LinkedList有什么差别?在哪种场景里应当用ArrayList(或LinkedList)? 大家如果学过数据结构,这个问题不难回答:前者是基于数组,数组比较擅长索引 ...
- Java核心技术及面试指南 设计模式部分的面试题总结以及答案
8.6.4.1请实现一个线程安全的单例模式. 1 public class MailListReader { 2 private static MailListReader ...
- Java核心技术及面试指南 IO部分的面试题归纳以及答案
4.6.1 java中有几种类型的流? Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStr ...
- Java核心技术及面试指南 多线程部分的基本面试题总结以及答案
7.1.5 (1) 如果某个类已经继承(extends)了一个类,那么让这个类具有多线程的特性? implements runnable类或通过线程池 7.1.5 (2)启动一个线程是用run()还 ...
- Java核心技术及面试指南 异常部分的面试题归纳以及答案
4.2.4.1 throw和throws有什么差别?异常(Exception)和错误(Error)有什么差别? throw语句表示抛出异常,由方法体内的语句处理.throws语句用在方法声明后面,表示 ...
- Java核心技术及面试指南 数据库方面的面试题归纳以及总结
5.1.7.1 事务的四大特性是什么? ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚. ⑵ 一致性(Consistency) 一致性是指事务必须使数据库 ...
- Java核心技术及面试指南:视频列表
如下是本书相关内容的视频列表,会动态更新 第一章 1 视频1.1 JDK和JRE和JVM的区别,安装Java开发环境 1.1.1 第2页 2 视频1.2 编写第一个HelloWorld程序 ...
- Java核心技术及面试指南的视频讲解和代码下载位置
都是百度云盘,均无密码 代码下载位置: https://pan.baidu.com/s/1I44ob0vygMxvmj2BoNioAQ 视频讲解位置: https://pan.baidu.com/s/ ...
随机推荐
- 关于sql优化的一些点
慢查询日志 参考:https://www.cnblogs.com/saneri/p/6656161.html 查询是否开启慢查询日志: show variables like '%slow_query ...
- 快速实现抖音的分享&登录(android)
快速实现抖音分享与第三方登录 准备工作 1.注册抖音的key到抖音开放平台,点击这里查看步骤: 2.集成ShareSDK到Mob官网文档页面查看即可,点击这里查看集成: 业务代码 分享要求: 视频: ...
- mysql数据库保存sesison会话
<?php header('Content-type:text/html;charset=gbk;'); date_default_timezone_set('PRC'); class db{ ...
- the default terminal(gnome-terminal) start up fail
Platform: Ubuntu 16.04 LTS Reason: variable $LANG on system is empty Solution: localectl set-locale ...
- python的文件读写笔记
读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...
- Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again
Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again https://ac.nowcoder.com/acm/contest/700/I 时间限制:C/C++ 1 ...
- EFLinq查询
1.无参数查询var model = db.Database.SqlQuery<UserInfo>("select* from UserInfoes ").ToList ...
- 20145232韩文浩 《网络对抗技术》 Web基础
Apache 因为端口号80已经被占用(上次实验设置的),所以先修改/etc/apache2/ports.conf里的端口为5232后重新开启 可以在浏览器中输入localhost:5208来检查是否 ...
- Educational Codeforces Round 61 Editorial--C. Painting the Fence
https://codeforces.com/contest/1132/problem/C 采用逆向思维,要求最大的覆盖,就先求出总的覆盖,然后减去删除两个人贡献最少的人 #include<io ...
- 阿里云,未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接.
阿里云主机使用SQL Server作为数据库服务器,连接数据库时候出现错误. 按照网上经验,检查SQL服务是否开启,sa用户权限,数据库安全性和连接权限: 关闭服务器防火墙,修改入站规则: 检查阿里云 ...