Java面试题精粹(基础知识)

本篇博文是自己针对网络上已出现的Java面试题帖子汇总,汇总并不是给出链接或直接转载内容,而是分析对比并整理出各帖子中常见、高频的面试题,这些经常露脸的面试题透出面试的趋势(为什么可以成为经典的面试题)及面试官的共通点。而作为求职者、技术爱好者的我们不仅要能够自信、精准得回答这些问题,更要知道为什么出这些问题,面试官想考察我们什么或希望我们给出怎样的回答,适当的再对回答进行拓展以达到更好的效果。面试本身包含了一些心理上的东西,面试官对于问题是有一个心中期许的答案,面试者若能够触摸到边缘或击中要害,结果自然不会差。更最要的是当我们能够清楚对手的出招套路时,我们能够全面地检视自己调整思路,面出最好的状态。

Java面试题精粹系列将分为基础知识、多线程、网站架构、数据结构、数据库、性能及安全、设计模式、Linux、算法(暂定),共计九个模块,本篇以基础知识为主,下面开始讲解具体的面试题。

1.面向对象的特征/特性/特点有哪些?

  先简答出四个点:抽象、封装、继承、多态,接着对每个点表达自己的见解。

  抽象:对同一群/同一类别事物根据实际业务需要将它们公共的特征和行为剥离出来构建成一个类,这一过程就称之为抽象,而抽象的结果就是得到一个类。然后刚刚前面提到的特征就对应类的属性,行为就对应类的方法。而在不同业务场景下所构建的类中的属性和方法存在细微上的差别。

  封装:把公共部分的/使用频繁的代码块/代码段整合到一个方法或一个类(例如工具类)中,来对外提供服务并隐藏具体实现。调用者只需关注该方法或该类如何使用而并不需要知道其内部是如何实现的,而对于提供者来说可以方便的对这些提供服务的代码进行维护,这种两者的不同表现是对代码最好的保护(所带来的益处)。

我们在实际开发中经常用到的第三方jar包就是封装的一种表现形式。

  继承:一个类A获得了另外一个类B的公共属性和方法,且A能够直接使用这些东西并在必要情况下按已所需改造这些东西,两者之间因此产生了一种关联关系,称之为继承。子承父业是对继承这个词语比较形象的比喻。

例如子类私家车、公交车、自行车、摩托车、货车都继承自父类车,它们从父类继承了属性方形盘、车轮、车座...继承了方法开车、载人、刹车...根据自身实际需要子类对这些属性和方法都进行了一定改造,所以有了不同表现。例如方向盘,私家车、公交车、货车都是圆形的,自行车、摩托车则是以把手形式表现,车轮各自需要的数量不一样,能够承载的人数也不一样,刹车的实现更不一样。

继承使得代码有了延续性,可以使用的就直接使用,不能使用的就改造,减少了对公共可复用部分的重复定义。

  多态:定义不够精炼,后需补充。

时间: 2024-12-25 11:29:29

Java面试题精粹(基础知识)的相关文章

Java中String的基础知识

Java中String的基础知识 ==与equal的区别 基本数据类型,指的是java中的八种基本数据结构(byte,short,char,int,long,float,double,boolean),一般的比较是使用的 ==,比较的是他们的值. 复合数据类型(类) ==比较的是两个对象的引用,可以理解为在内存中的地址,除非是同一个new出来的对象,他们的 ==为true,否则,都为false. equal是object中的方法.object中的实现如下,内部还是使用==实现,也就是说,如果一个

[基础] Java目录(摘自Java核心技术·卷1 基础知识)

Java核心技术·卷1 基础知识(原书第9版) 第1章 Java程序设计概述 1.1 Java程序设计平台 1.2 Java"白皮书"的关键术语 1.2.1 简单性 1.2.2 面向对象 1.2.3 网络技能 1.2.4 健壮性 1.2.5 安全性 1.2.6 体系结构中立 1.2.7 可移植性 1.2.8 解释型 1.2.9 高性能 1.2.10 多线程 1.2.11 动态性 1.3 Java applet与Internet 1.4 Java发展简史 1.5 关于Java的常见误解

Java多线程完整版基础知识

Java多线程完整版基础知识 (翟开顺由厚到薄系列) 1.前言 线程是现代操作系统中一个很重要的概念,多线程功能很强大,java语言对线程提供了很好的支持,我们可以使用java提供的thread类很容易的创建多个线程.线程很不难,我对之前学习过的基础,在这做了一个整理,本文主要参考的是Java研究组织出版的j2se进阶和张孝祥-java就业培训教材这两本书 2.概述 2.1线程是什么 主要是线程与进程的区别,这里不再阐述,自行网上搜索 为什么使用线程:操作系统切换多个线程要比调度进程在速度上快很

java面试题大全-基础方面

Java基础方面: 1.作用域public,private,protected,以及不写时的区别答:区别如下:作用域           当前类       同一package  子孙类       其他packagepublic            √              √                  √             √protected        √              √                  √             ×friendly

《java核心技术 卷1 基础知识》二

<Java核心技术 卷1 基础知识>第4-5章 在Java中没有类就无法做任何事情 new操作符的返回值是一个引用 在Java中,如果使用一个未初始化的指针,运行系统会产生一个运行时错误. Date 用来表示时间点 LocalDate 日历表示法 同时不推荐使用Date类来处理日历 推荐使用LocalDate来处理日历 每一个拥有名字的类都会被编译生成对应的class文件 所有的Java对象都是在堆中构造的,构造器总是随着new操作符一起使用 在Java中,所有的方法都必须在类的内部定义,但并

《Java核心技术 卷1 基础知识》三

<Java核心技术 卷1 基础知识> 第六章 接口和内部类 接口不是类,而是对类的的一组需求描述. 接口不能包含实例域--接口没有实例 可以将接口看作没有实例域的抽象类 要将类声明为实现某个接口,需要使用关键字implements. 类实现一个接口的具体步骤为: 1)使用implements关键字进行声明要实现的接口 2)对接口中的所有方法进行定义 接口中的所有方法默认为public 但在实现接口时需要声明为public 这里介绍了Comparable接口,该接口只有一个方法,compareT

《Java核心技术 卷1 基础知识》七

<Java核心技术 卷1 基础知识> 第10章 图形程序设计 在Java1.0刚出现时,就包含了一个基本GUI程序设计的类库,即抽象窗口工具箱(Abstract Window Toolkit,AWT) 基本AWT库采用将处理用户界面元素的任务委派给每个目标平台(如windows.Macintosh等)的本地GUI工具箱的方式, 由本地工具箱负责用户界面元素的创建和动作 但由于在不同的平台上,操作行为有一些微妙的差别 因此,AWT也由"一次编写,随处使用"变为"一次

《Java核心技术 卷1 基础知识 原书第9版》pdf

下载地址:网盘下载 内容简介 编辑 CayS.Horstmann等编著,公飞编译的<Java核心技术>(CoreJava)自第1版出版以来,一直备受广大Java程序设计人员的青睐,畅销不衰,是Java经典书籍.第8版针对JavaSE6平台进行了全面更新,囊括了Java平台标准版(JavaSE/J2SE)的全部基础知识,提供了大量完整且具有实际意义的应用实例,详细介绍了Java语言基础知识.面向对象程序设计.接口与内部类.事件监听器模型.swing图形用户界面程序设计.打包应用程序.异常处理.登

Java中浮点数的基础知识

偶然查看Math.round的JDK 1 public static int round(float a) { 2 if (a != 0x1.fffffep-2f) // greatest float value less than 0.5 3 return (int)floor(a + 0.5f); 4 else 5 return 0; 6 } 注释说0x1.fffffep-2f是最接近0.5的float类型的小数,咦,科学计数法用e表示指数我是知道的,但是这个p是什么鬼.可能有的读者还会问,