Java面试技巧和重点分析

.前言

          虽然本人也是刚入行不久,但是之前也做过一些面试准备,刚好7--8月份,还有部分学生或者初入开发行业的潜在同行,正在找工作,所以把自己的感触分享给大家,希望能够帮助到大家,能够顺利的通过面试笔试,进入自己心仪的公司。

.重点

        做为一名应届生或者初入开发行业人员,应该注重基础知识和一些框架工具的使用。

       2.1:基础知识是系统原理和算法之类的,对这些原理理解的深度很重要,因为这是一种思维方式,所有的语言底层原理都差不多;一个人的技术上限是由他的基础决定的,在面试官面前展现的基础越扎实给面试官留下的印象更好。

       2.2:对框架工具的了解不说是所有的,但是针对目前主流的框架不说了解的很清楚,但是也应该知道一些,比如SSH、SpringBoot、SpringCloud这些框架你需要知道他们的使用和他们核心的实现原理。比如Spring,你要知道 ioc , aop 和他的工厂是怎么实现的吧?这个东西你平时不去深究,你使用再久Spring可能都不知道原理。但是你不去了解先进技术的实现原理你怎么可能研究出新的技术和框架?

     2.3:知识的了解不应该只浮于表面,应该有深度和广度。这点在我进入公司工作之前我没有任何认知,但是在进入公司后和领导、同事接触后,深深的发现自己对知识积累点的单薄,可能有的人会说,这些基础的东西这么简单,我早就学会了,平时一直都在写,没必要去专门再学。但是这样的,请问,天天在用String的你,知道它的实现,能理解应用那些设计模式吗?

      在面对面试官的时候,你永远不会知道他的下一个问题是什么,所以对知识点的储存,深挖永远都没有错,总结一下就是,打好基础底子,千万不要飘,深入学习,这样你面对面试官的时候,才能有更多的可以聊的话题,从容面对面试官的话题,更快的融入公司。

.总结

        以上我个人看法,并不一定是正确的。每个人的想法都不一样,毕竟自己目前也还是一个菜鸟,希望和大家在学习的道路上共同进步,另外以下是总结的一些面试题目,有兴趣可以看下,谢谢

1、面向对象的特征有哪些方面?
答:面向对象的特征主要有以下几个方面:
- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。
- 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。
- 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。
- 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1). 方法重写(子类继承父类并重写父类中已有的或抽象的方法);2). 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。

2、float f=3.4;是否正确?
:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。

3、成员变量与局部变量的区别?
   成员变量:有类成员变量(有static修饰)和实例成员变量(无static修饰)两种
   局部变量:有代码块局部变量,形参,方法局部变量三种
   区别:作用范围不同,成员变量对整个类有效,局部变量只对该方法或代码块有用
定义成员变量是可以不初始化,局部变量除了形参之外,必须初始化

4、Equals与 == 的区别
   ==既可以比较基本类型,也可以比较引用类型,比较引用类型时,必须是父子关系
   equals只能比较引用类型,比较是地址

5、接口与抽象类的区别
   区别:
相同点:
  1,都不能实例化
  2,都有抽象方法
不同点:
  1,接口只能定义常量,抽象类既可以定义常量也可以定义变量
  2,接口里没有构造器和初始化块,抽象类有构造器和初始化块
  3,接口里只有抽象方法,抽象类里有抽象方法和普通方法
  4,接口可以实现多个,抽象类的继承只能继承一个
  5,接口只能实现接口,不能实现其他类,抽象类即可实现接口,也可继承其他类
  6,接口定义用interface,抽象类定义用extends

上一篇:#情人节#“会玩”的程序员:爱代码爱机车也爱...(单身汪自觉避让)


下一篇:Java程序员的日常—— IOUtils总结