Java面试-基础篇之1

前言

由于年底失业,以及身体上的原因,所以一直懒着,没有找工作,也没有背八股文。当然背八股文对于一些原本基础较好的人来说,是一个回顾记忆的过程,但是对我这种基础本身就不牢靠的人来说,无异于是一个很痛苦的过程。所以面试前的知识回顾,应该是以理解为主的一个活动。我上大学时,Java语言还是当时比较热门的语言,我们的主修课程。我学习的时候只知道会用就行,加上第一份工作的工作性质,导致我与原本开发所要求的功能技能渐行渐远,当然,这也有我自己懒惰的功劳。现在市面上的机会很多,可是鉴于我本身的技术能力水平并没有达到要求,且自己嘴也笨,所以目前是没有什么好进展。趁现在有空,就把知识暂时捋一捋,也弥补了自己过去浪费的时间吧。最后劝一下刚入行的或者准备入行的战友们,一定要保持学习,不求每天大部分时间,投出一两个小时来学一个算法思想,学一个知识点也是好的。俗话说,积少成多,厚积薄发。切记。

正文

1.对Java语言的看法

我认为在了解Java语言的基础知识前,最好先对Java有一个自己的认知。下面是我个人对它的理解,如有疑问或者问题,欢迎留言区讨论。

首先,Java语言是一种高级语言,高级语言的来源就需要从硬件说起。众所周知,现在我们的硬件设备的底层是使用电信号来驱使。电信号也被称之为机器语言。机器语都是使用二进制进行编码,可重复利用率低,因为编辑一个小小的功能,就需要上千个01来代表,更别说复杂的功能了。在这个环境之下,催生了汇编语言。汇编语言比机器语言好一点,它倒是不用上千个01表示功能,它只用几个英文单词就可以代表一个功能。但是随着科技的发展,汇编语言对于更复杂的问题来说,编码的效率也不够看的,也遇到了机器语言的困境。这个时候,高级语言横空出世了。

最具代表性的高级语言便是我们熟悉的C语言,C++,Java...但是C语言和C++,Java语言不同,它是面向过程的语言,我觉得可以用哪痛打哪来形容,重复利用率也很低,不足以处理更加复杂多变的场景。而C++和Java语言是面向对象的语言,是将现实的事物抽象出来,然后模拟其动作,针对某一类对象进行映射和操作,利用率,可拓展性比较强。而不管是什么语言,我认为都是为了将数据更好的发挥它最大的作用。也就是说,从机器语言到高级语言,其实是一场数据的狂欢。我们通过这些个语言,以数据为依托解决各种格样的现实问题。

在这里,我们只讲一下Java,其他语言如有兴趣可自行研究。

前边提到Java是面向对象的,Java语言生态圈的的基本法则是四个词:抽象、封装、继承和多态。这四个词应该是连贯的,先将问题涉及的对象进行抽象,“抽象”是将事物共性拿出来指定一个顶级规则,然后将这些共性“封装”起来,也就是说,将共性藏起来,不能让其他人轻易的改变。再然后,有具体的事物时,就发生了“继承”,既有共性,又有自己独特的个性,那这个具体的事物就是一个完整的对象。上句说到事物的特性,俗话说一千个人就有一千个哈姆雷特,这表明虽然有共性哈姆雷特,但是每个人可能还有他独特的想法,这也就是我们所说的“多态”了。

通过查看Java语言类的祖宗类Object可以看出,Object类位于java.lang包中,它包含了很多可供继承的方法,但总体是分为两类:一类是关于操作对象的数据结构的,一类是关于线程的,从这个地方也可以印证Java语言的生态圈就是一场数据的狂欢。

看法就分享到这,有什么想法或者思考,欢迎交流。

只要有求知的心,什么时候都不晚。送给我,也送给迷茫的人。

下期再见。

热门相关:地球第一剑   豪门闪婚:帝少的神秘冷妻   薄先生,情不由己   刺客之王   天启预报